Pagina 1 di 1

Matlab: Funzioni in forma letterale

Inviato: 1 set 2010, 6:57
da jhonny
Dovrei scrivere in matlab una funzione del tipo:

\sum_{a=1}^{4}=(a\cdot x_{1}+a\cdot x_{2})^{2}

Ovviamente un .m file del seguente tipo risponde alla mia richiesta:

function z=I(x)

z=(x(1)+x(2))^2+(2*x(1)+2*x(2))^2+(3*x(1)+3*x(2))^2+(4*x(1)+4*x(2))^2;

Mi chiedevo però se c'è un modo per fare replicare a matlab il primo termine senza doverlo ritrascriverlo? Ovviamente mi occorre perché la funzioni con cui ho a che fare sono ben più complesse!

Grazie anticipatamente.

Re: Matlab: Funzioni in forma letterale

Inviato: 3 set 2010, 15:38
da RenzoDF
Sperando di aver capito il problema, e supponendo di avere un vettore x che contiene i dati iniziali x(i),
io definirei una funzione, del tipo
y1.gif
y1.gif (13.35 KiB) Visto 922 volte

che avra' come parametri di input:
i dati x, l'indice iniziale della sommatoria b, e l'indice finale c
e potra' essere chiamata per esempio come segue
y2.gif
y2.gif (6.03 KiB) Visto 924 volte


Se poi gli elementi di x fossero piu' di due si potrebbe usare una forma piu' generale
y3.gif
y3.gif (13.39 KiB) Visto 923 volte



BTW non capisco quell'uguale dopo il segno di sommatoria :wink:

Re: Matlab: Funzioni in forma letterale

Inviato: 7 set 2010, 11:11
da jhonny
RenzoDF ha scritto:Y=\sum_{a=1}^{4}\left ( a\cdot x_{1}+a\cdot x_{2})


Ovvio che non capisci, ho scritto una boiata e non me ne sono accorto :D. Intendevo dire:

Y=\sum_{a=1}^{4}\left (  a\cdot x_{1}+a\cdot x_{2})^2

Ti ringrazio tardivamente per la risposta (mi ero perso come al solito nello studio degli zeri e dei poli delle ammettenze), avevi capito perfettamente ciò che mi occorreva. :wink: