[Matlab] Metodo di Newton
Ciao, ho un problema con l'implementazione su matlab del metodo di Newton, in pratica, la mia funzione è $y=1/2x-sin(x)$ ho scelto come punto iniziale $x_0=2$, la mia implementazione della funzione è :
in Matlab scrivo:
e ottengo come errore :
Non riesco a capire come andrebbe fatto, anche perché la soluzione del mio professore è praticamente uguale.. Dove sbaglio?
Grazie in anticipo
function [z] = tangenti (fun,df,x1,k) z=x1; for i=1:k z=z-fun(z)/df(z); end
in Matlab scrivo:
>> syms x real >> y=1/2.*x-sin(x); >> y1=diff(y); >> z=tangenti(y,y1,2,20)
e ottengo come errore :
Error using mupadmex Error in MuPAD command: Index exceeds matrix dimensions. Error in sym/subsref (line 687) B = mupadmex('symobj::subsref',A.s,inds{:}); Error in tangenti (line 4) z=z-fun(z)/df(z);
Non riesco a capire come andrebbe fatto, anche perché la soluzione del mio professore è praticamente uguale.. Dove sbaglio?
Grazie in anticipo

Risposte
Ciao migno,
a prima vista mi sembra di capire dal messaggio di errore che tu stia usando l'ambiente mupad, di calcolo simbolico, ma il metodo di newton-raphson è un integrazione numerica... bada bene in che ambiente lavori, tu devi creare uno script nell'editor "normale" di matlab dove prima crei un file con l'estensione della tua funzione che si chiamerà tangenti.m e poi in un altro script la richiami con i dati in input e la usi per la tua funzione specifica
a prima vista mi sembra di capire dal messaggio di errore che tu stia usando l'ambiente mupad, di calcolo simbolico, ma il metodo di newton-raphson è un integrazione numerica... bada bene in che ambiente lavori, tu devi creare uno script nell'editor "normale" di matlab dove prima crei un file con l'estensione della tua funzione che si chiamerà tangenti.m e poi in un altro script la richiami con i dati in input e la usi per la tua funzione specifica
Grazie mille
ora è tutto più chiaro

Di nulla,
ciao!
