Problemi con matlab
Ho fatto il plot di questa funzione $f(x)=4x^3-21x^2+24x+5-3/2sqrt(9x^2+6x+2)$ per $-0.7<=x<=4.5$
poi ho fatto il plot della sua derivata (a proposito... è giusta così?) $f'(x)=12x^2-42x+24-(27x+9)/sqrt(9x^2+6x+2)$ nello stesso intervallo:
c'è un problema con la funzione blu (la derivata) perchè quando f(x) cresce, f'(x) dovrebbe essere positivo invece va -infinito
Poi c'è un'altro problema perchè c'è una sorta di cuspide intorno a x=0 nella funzione blu (la derivata). Che significa?
HElp me, please!!
poi ho fatto il plot della sua derivata (a proposito... è giusta così?) $f'(x)=12x^2-42x+24-(27x+9)/sqrt(9x^2+6x+2)$ nello stesso intervallo:
f=inline('4*x.^3-21*x.^2+24*x+5-(3/2)*sqrt(9*x^2+6*x+2)','x'); df=inline('12*x^.2-42*x+24 - (27*x+9)/sqrt(9*x^2+6*x+2)','x'); X=[-0.7,4.5,100]; plot([0 0],[-5 9],'k'); %asse y hold on plot([-1 4.5],[0 0],'k'); %asse x fplot(f,X,'r'), grid on fplot(df,[-1,4,100],'b'), hold off
c'è un problema con la funzione blu (la derivata) perchè quando f(x) cresce, f'(x) dovrebbe essere positivo invece va -infinito
Poi c'è un'altro problema perchè c'è una sorta di cuspide intorno a x=0 nella funzione blu (la derivata). Che significa?
HElp me, please!!
Risposte
La derivata prima non è corretta, risulta:
$f'(x)=12x^2-42x+24-(27x+9)/(2sqrt(9x^2+6x+2))$
$f'(x)=12x^2-42x+24-(27x+9)/(2sqrt(9x^2+6x+2))$
se io voglio creare un vettore "a passo 0.1" per poi verificare a quale zero della funzione convergono i punti di tale vettore tremite un metodo iterativo (che so... Newton-Raphson) come scrivo il vettore? Così?
Secondo voi l'algoritmo è giusto per l'obiettivo preposto?
v=[-1, 0, 0.1]; % cioè "crea un vettore che va da -1 a 0 con passo 0.1 %Poi faccio un ciclo in cui prendo come valore iniziale ($x_0$) il numero presente in ogni celletta del vettore %"v" ( cioè v(k) ). Per ogni numero del vettore applico Newton
Secondo voi l'algoritmo è giusto per l'obiettivo preposto?
Grazie Cozza Taddeo per aver segnalato l'errore nella derivata prima.
Credo sia per questo che la funzione blu (derivata prima) non rispecchiava l'andamento della funz rossa ( f(x) ).
Credo sia per questo che la funzione blu (derivata prima) non rispecchiava l'andamento della funz rossa ( f(x) ).
"settembre":
se io voglio creare un vettore "a passo 0.1" per poi verificare a quale zero della funzione convergono i punti di tale vettore tremite un metodo iterativo (che so... Newton-Raphson) come scrivo il vettore? Così?
v=[-1, 0, 0.1]; % cioè "crea un vettore che va da -1 a 0 con passo 0.1 %Poi faccio un ciclo in cui prendo come valore iniziale $x_0$ il numero presente in ogni celletta del vettore v(k) %e per ogni numero applico Newton.
Secondo voi l'algoritmo è giusto per l'obiettivo preposto?
Per creare il vettore che ti serve devi scrivere
v=[-1:0.1:0];
L'idea alla base dell'algoritmo mi sembra corretta, non so se ci siano metodi piú efficienti, però il tuo dovrebbe funzionare.
grazie per la risposta fulminea!
grazie di avermi detto come scrivere il vettore. Avrei fatto un gran pasticcio altrimenti.
grazie di avermi detto come scrivere il vettore. Avrei fatto un gran pasticcio altrimenti.
Di niente.
Ti indico un link che potrebbe esserti utile in caso di ulteriori dubbi: c'è un tutorial utile per cominciare ad usare matlab ed è consultabile sia in rete che scaricabile anche in formato pdf (comunque facendosi aiutare da Google se ne trovano di manualetti in rete!
)
http://freeweb.supereva.com/programmare ... dex.html?p
Buona simulazione!
Ti indico un link che potrebbe esserti utile in caso di ulteriori dubbi: c'è un tutorial utile per cominciare ad usare matlab ed è consultabile sia in rete che scaricabile anche in formato pdf (comunque facendosi aiutare da Google se ne trovano di manualetti in rete!

http://freeweb.supereva.com/programmare ... dex.html?p
Buona simulazione!

la derivata di f(x) è la seguente?
$f''(x)=24x-42-(24(3x-1)(9x^2+6x+2))/(sqrt(9x^2+6x+2))$
$f''(x)=24x-42-(24(3x-1)(9x^2+6x+2))/(sqrt(9x^2+6x+2))$
La derivata seconda dovrebbe essere
$f''(x)=-42+24x-27/(2(9x^2+6x+2)^(3/2))$
Ti confesso però che l'ho fatta calcolare ad un programma, non l'ho fatta a mano e quindi non saprei dirti dove sabgli...
Prova a verificare i tuoi conti tenendo presente che questo è il risultato corretto.
$f''(x)=-42+24x-27/(2(9x^2+6x+2)^(3/2))$
Ti confesso però che l'ho fatta calcolare ad un programma, non l'ho fatta a mano e quindi non saprei dirti dove sabgli...

Prova a verificare i tuoi conti tenendo presente che questo è il risultato corretto.