Matlab: Funzioni in forma letterale

Strumenti informatici per la matematica applicata, le simulazioni, il disegno: Mathcad, Matlab, Scilab, Microcap, PSpice, AutoCad ...

Moderatori: Foto Utenteg.schgor, Foto Utentedimaios

Avatar utente
Foto Utentejhonny
29 2 5
New entry
New entry
Messaggi: 79
Iscritto il: 22 mag 2007, 15:58
0
voti

[1] Matlab: Funzioni in forma letterale

Messaggioda Foto Utentejhonny » 1 set 2010, 6:57

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.

Avatar utente
Foto UtenteRenzoDF
55,9k 8 12 13
G.Master EY
G.Master EY
Messaggi: 13189
Iscritto il: 4 ott 2008, 9:55
0
voti

[2] Re: Matlab: Funzioni in forma letterale

Messaggioda Foto UtenteRenzoDF » 3 set 2010, 15:38

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 918 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 920 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 919 volte



BTW non capisco quell'uguale dopo il segno di sommatoria :wink:
"Il circuito ha sempre ragione" (Luigi Malesani)

Avatar utente
Foto Utentejhonny
29 2 5
New entry
New entry
Messaggi: 79
Iscritto il: 22 mag 2007, 15:58
0
voti

[3] Re: Matlab: Funzioni in forma letterale

Messaggioda Foto Utentejhonny » 7 set 2010, 11:11

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:


Torna a “Programmi applicativi: simulatori, CAD ed altro”