PDA

View Full Version : AIUTO MATLAB


jim86
12-12-2007, 14:05
salve...qualcuno sa come si fa a fare uno studio di funzione in matlab?dovrei trovare max,min,punti di accumulazione,ecc..potreste spiegarmelo passo passo?non sono molto esperto e ne ho un urgente bisogno...grazie mille

Ziosilvio
12-12-2007, 15:01
Se stai preparando Analisi 1, più che Matlab ti serve un libro.
Matlab, tutt'al più, può aiutarti a capire se le soluzioni che hai trovato tu sono giuste.

Comunque: parlando con un collega, ho scoperto che esiste una routine fminsearch, che trova il minimo di una funzione su un insieme.
Per il massimo, puoi usare la relazione max {x in A} f(x) = -min {x in A} (-f(x)).

jim86
12-12-2007, 15:10
Grazie...cmq analisi uno lo ho gia dato.....il problema è che lo ho dato da troppo tempo e nn mi ricordo più molto :rolleyes: e per altre materie mi seve fare lo studio della funzione per capire bene.....ho provato ma non capisco una cosa:io ho scritto la mia funzione cosi:

f=sqrt((4*x^(2))/(x^(2)+1));

poi ho fatto

fminsearch(f)

ma matlab dice questo

"??? Error using ==> fminsearch
FMINSEARCH requires at least two input arguments"

cosa devo mettere?
e per il massimo?
scusa l'ignoranza ma sono le prime volte che metto le mani su matlab

Ziosilvio
12-12-2007, 15:44
io ho scritto la mia funzione cosi:

f=sqrt((4*x^(2))/(x^(2)+1));

poi ho fatto

fminsearch(f)

ma matlab dice questo

"??? Error using ==> fminsearch
FMINSEARCH requires at least two input arguments"
E sì, perché tu gli hai detto di quale funzione cercare il minimo, ma non gli hai detto su quale insieme cercare questo minimo; e il minimo dipende sia dalla funzione sia dall'insieme.
sono le prime volte che metto le mani su matlab
Allora prova anche Maxima (http://maxima.sourceforge.net/) che è software libero.

jim86
12-12-2007, 15:47
c'è qualche buon anima che ha voglia di spiegarmi con parole povere come si fa?
non mi risulta molto chiaro l'help...alcune cose da li le ho capite ma questa proprio no

jim86
12-12-2007, 15:49
grazie Ziosilvio

checcot
12-12-2007, 18:28
La sintassi è questa:

x = fminsearch(@(x)sqrt((4*x^(2))/(x^(2)+1)), x0);

dove x0 è il punto di partenza dell'algoritmo.

jim86
12-12-2007, 20:25
@ è la funzione?come faccio a sapere da dove inizia l'algoritmo?lo so, la mia ignoranza nn ha limiti....:muro:

checcot
12-12-2007, 20:35
@ è la funzione?come faccio a sapere da dove inizia l'algoritmo?lo so, la mia ignoranza nn ha limiti....:muro:

Un'occhiata al grafico?

http://img160.imageshack.us/img160/9458/funzioneex4.th.jpg (http://img160.imageshack.us/my.php?image=funzioneex4.jpg)

La sintassi @(x)f(x) serve per definire una funzione in matlab senza dover creare un nuovo file .m

Cmq ti consiglio di guardare l'help. Le cose che ti sto dicendo non le ho certo imparate per grazia divina.

-Slash
13-12-2007, 09:17
scaricati wxmaxima che è meglio :D

jim86
13-12-2007, 17:07
ho scaricato maxima ma nn c'è la funzione per ricavare il massimo di una funzione

-Slash
13-12-2007, 22:36
ho scaricato maxima ma nn c'è la funzione per ricavare il massimo di una funzione
Ma basta che calcoli la derivata e l'equazione della derivata che ti viene con wxmaxima la poni uguale a 0. i risultati che ti vengono sono punti di massimo, minimo, o flessi a tangente orizzontale, avendo il grafico sott'occhio però ti accorgi qual'è il massimo :D

jim86
14-12-2007, 11:53
ok...grazie per il rapido ripasso:D