Serie in Matlab

Messaggioda Tagliafico » 31/10/2011, 11:47

Salve!!!
Un esercizio mi chiede: letto un valore x e uno n da tastiera, se ne calcoli il seno utilizzando la serie

\( \displaystyle {x}-\frac{{{x}}^{{3}}}{{3}}!+\frac{{{x}}^{{5}}}{{5}}!+\ldots \)

rendendo il programma iterattivo in modo che l'esecuzione continui nel caso si voglia assegnare a n un nuovo valore.

Io avrei fatto in questo modo:

x=input('Dai x:\n');
n=input('Dai n:\n');

while scelta==1
{ senx=x;
segno=-1;
for i=3:2:n
sin=sum(sinx+segno*(x^i)/i!);
segno=-segno;
end;
}
scelta=input('Vuoi continuare? si=0;no=1);
end;


il punto è che (x^i)/i! dovrei esprimerlo in altro modo, ma non saprei come..
Tagliafico
Junior Member
Junior Member
 
Messaggi: 100
Iscritto il: 30/08/2010, 13:02

Re: Serie in Matlab

Messaggioda apatriarca » 04/11/2011, 21:34

Un primo grosso problema del tuo codice è che il tuo ciclo non dipende da \(n\) e che scelta non sembra essere inizializzato. Io credo dovresti avere due cicli. In quello interno calcoli la serie fino ad un certo \(n\) mentre nel ciclo esterno si chiede se si vuole assegnare ad n un nuovo valore. Per cui qualcosa come:
Codice: Seleziona tutto
x = input('x = ');

while true
    n = input('n = ');
   
    % codice per calcolare la serie fino ad n

    doagain = input('Vuoi provare con un nuovo valore di n? Y/n [Y]: ', 's');
    if (doagain == 'n')
        break;
    end;
end;

Il ciclo interno potrà invece essere implementato semplicemente attraverso un ciclo for.
apatriarca
Moderatore
Moderatore
 
Messaggi: 2126
Iscritto il: 08/12/2008, 20:37
Località: Torino

Re: Serie in Matlab

Messaggioda Tagliafico » 01/12/2011, 21:00

^^ grazie per la risposta, ho risolto usando un modo un po' differente :)
Tagliafico
Junior Member
Junior Member
 
Messaggi: 100
Iscritto il: 30/08/2010, 13:02


Torna a Analisi Numerica e Ricerca Operativa

Chi c’è in linea

Visitano il forum: Nessuno e 0 ospiti