fminbnd() < Matlab < Mathe-Software < Mathe < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 19:14 Mi 25.01.2012 | Autor: | bandchef |
Frage dazu an dem Sinn hab ich nicht. Aber:
Ich hab diesen Code geschrieben:
1: |
| 2: | f = inline('2*x^3+5*x^2-4', 'x');
| 3: | x = fminbnd(@(x) f(x), -1, 0.5)
|
Dann ist das Ergebnis: x = 3.889690012497582e-006.
Wenn ich mir nun die Funktion in einem Zeichenprogramm zeichnen lasse, und das Intervall zwischen -1 und 0,5 anschaue gibts da eine lokales Minimum dessen bei[0,-4].
Ich hätte gedacht fminbnd berechnet genau diesen Punkt? Das Ergebnis stimt aber nicht mit dem überein was ich aus dem Graphen abgelesen habe! Was mache ich falsch, bzw. wo denke ich falsch?
Könnt ihr mir helfen?
|
|
|
|
> Frage dazu an dem Sinn hab ich nicht. Aber:
>
> Ich hab diesen Code geschrieben:
>
> 1: | > f = [mm]inline('2*x^3+5*x^2-4',[/mm] 'x');
| 2: | > x = fminbnd(@(x) f(x), -1, 0.5)
| 3: | > |
>
> Dann ist das Ergebnis: x = 3.889690012497582e-006.
Also fast Null
>
> Wenn ich mir nun die Funktion in einem Zeichenprogramm
> zeichnen lasse, und das Intervall zwischen -1 und 0,5
> anschaue gibts da eine lokales Minimum dessen bei[0,-4].
>
> Ich hätte gedacht fminbnd berechnet genau diesen Punkt?
Was heißt hier genau? Dir ist schon klar, dass Matlab das Problem numerisch löst.
> Das Ergebnis stimt aber nicht mit dem überein was ich aus
> dem Graphen abgelesen habe! Was mache ich falsch, bzw. wo
> denke ich falsch?
plotte doch einmal den Punkt dazu mittels
hold on
plot(3.8897e-006,-2.5,'*')
>
> Könnt ihr mir helfen?
Du kannst dir auch die Schritte anzeigen lassen
fminbnd(f, -1, 0.5,optimset('TolX',1e-12,'Display','iter'))
gruß
der wieschoo
|
|
|
|