Infimum einer Funktion berechn < Maple < Mathe-Software < Mathe < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 21:44 Mo 15.06.2009 | Autor: | laraS |
Hallo, ich versuche eine Rückwärtsrekursion in MAPLE eingeben und zwar:
for k from 0 to K do # Initialisierung der Variablen
x[k];
u[k,1]; u[k,2]; u[k,3];
w[k,1]:=0; w[k,2]:=1; w[k,3]:=2;
p(w[k,1]):=.1: p(w[k,2]):=.7: p(w[k,3]):=.2:
for i from 1 to n do
y[k,i]:=x[k]+u[k,i];
print(y[k,i]);
od;
for k from K-1 by -1 to 0 do
for i from 1 to n do
EW1[k,i]:=sum(p(w[k,s])*(w[k,s]-y[k,i]),s=1..n);
EW2[k,i]:=sum(p(w[k,t])*(y[k,i]-w[k,t]),t=1..n);
f(x[k],u[k,i],w[k,j]):=x[k]+u[k,i]-w[k,j];
x[k+1]:=unapply(f(x[k],u[k,i],w[k,j]),x[k+1]);
J[k](x[k],u[k,i]):=c*y[k,i]+d*EW1[k,i]+h*EW2[k,i]+sum(p(w[k,t])*J[k+1](x[k+1],u[k+1,i]),t=1..n);
Jetzt muss ich Infimum dieser Funktion bzgl. u[k,i] finden? Ich habe mit minimize versucht, aber da bekomme ich nichts brauchbares raus. Was kann ich den weitermeichen?
Ich habe diese Frage in keinem anderen Forum gestellt.
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 09:01 Di 16.06.2009 | Autor: | Denny22 |
Hallo,
Ich moechte Dir vorwege einen Tipp geben, der Dir die Wahrscheinlichkeit erhoeht, dass Dir in diesem Forum jemand antwortet: Du solltest uns entweder Dein vorliegendes Problem erlaeutern oder einen funktionierenden Quellcode liefern. Die Betonung hierbei liegt auf "funktionierenden". Kopiere einmal Dein Quellcode und fuehre Ihn mal bei Dir aus. Zunaechst einmal hast 3 for-Schleifen, die nicht beendet wurden, u.s.w. Behebe bitte diese Maengel.
Im allgemeinen ist es in Maple nicht so einfach das Infimum (bzw. Extremstellen) einer Funktion berechnen zu lassen. Es gibt zwar die Funktion "extrema", aber diese vergisst haeufig einige der Extremstellen. Falls Deine Funktion zweimal differenzierbar ist, so kannst Du auch den Weg zu Fuss einschlagen, d.h. die aus der Schule bekannte Kurvendiskusion. Dazu musst Du folgende Kriterien ueberpruefen:
Hochpunkt (Maximum):
[mm] $f'(x_0)=0$ [/mm] (notwendige Bedingung)
[mm] $f''(x_0)<0$ [/mm] (hinreichende Bedingung) [mm] $\Longrightarrow$ $x_0$ [/mm] relatives Maximum
[mm] $f(x)\leqslant f(x_0)$ [/mm] fuer alle $x$ im Definitionsbereich von $f$ [mm] $\Longrightarrow$ $x_0$ [/mm] globales Maximum
Tiefpunkt (Minimum):
[mm] $f'(x_0)=0$ [/mm] (notwendige Bedingung)
[mm] $f''(x_0)>0$ [/mm] (hinreichende Bedingung) => [mm] x_0 [/mm] relatives Minimum
[mm] $f(x)\geqslant f(x_0)$ [/mm] fuer alle $x$ im Definitionsbereich von $f$ [mm] $\Longrightarrow$ $x_0$ [/mm] globales Minimum
Beispiel (mit zwei globalen Maxima und einem Minimum, [mm] f(x)=-x^4+x^2):
[/mm]
1. Moeglichkeit:
f := x -> [mm] -x^4+x^2;
[/mm]
solve(diff(f(x), x)=0, x); (notwendige Bedingung)
diff(f(x), x$2);
[mm] -12*0^2+2; [/mm] (hinreichende Bedingung)
[mm] -12*(1/2*sqrt(2))^2+2; [/mm] (hinreichende Bedingung)
[mm] -12*(-1/2*sqrt(2))^2+2; [/mm] (hinreichende Bedingung)
assume(x, real);
is(f(x)>=f(0));
is(f(x)<=f(1/2*sqrt(2)));
is(f(x)<=f(-1/2*sqrt(2)));
2. Möglichkeit: (Nachteil: kein Test auf Globalitaet)
f := x -> [mm] -x^4+x^2;
[/mm]
solve(diff(f(x), x)=0, x); (notwendige Bedingung)
with(Student[MultivariateCalculus]):
SecondDerivativeTest(f(x), [x]=[0]);
SecondDerivativeTest(f(x), [x]=[1/2*sqrt(2)]);
SecondDerivativeTest(f(x), [x]=[-1/2*sqrt(2)]);
Gruss
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 12:57 Di 16.06.2009 | Autor: | laraS |
Jetzt muss es stimmen: Diese möglichkeit mit der Bestimmung der Extrema wenn die Ableitungen existieren kenne ich.
Bei mir ist es aber nicht der Fall, was kann ich da noch machen?
for k from 0 to K do
x[k];
u[k,1]; u[k,2]; u[k,3];
w[k,1]:=0; w[k,2]:=1; w[k,3]:=2;
p(w[k,1]):=.1: p(w[k,2]):=.7: p(w[k,3]):=.2:
od;
for i from 1 to n do
y[k,i]:=x[k]+u[k,i];
print(y[k,i]);
od;
for k from K-1 by -1 to 0 do
for i from 1 to n do
EW1[k,i]:=sum(p(w[k,s])*(w[k,s]-y[k,i]),s=1..n);
EW2[k,i]:=sum(p(w[k,t])*(y[k,i]-w[k,t]),t=1..n);
for j from 1 to n do
f(x[k],u[k,i],w[k,j]):=x[k]+u[k,i]-w[k,j];
x[k+1]:=unapply(f(x[k],u[k,i],w[k,j]),x[k+1]);
J[k](x[k],u[k,i]):=c*y[k,i]+d*EW1[k,i]+h*EW2[k,i]+sum(p(w[k,t])*J[k+1](x[k+1],u[k+1,i]),t=1..n);
od;
od;
od;
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 15:29 Di 16.06.2009 | Autor: | Denny22 |
Hast Du Deinen Quellcode jetzt schon einmal getestet? Ich bekomme immer noch drei Fehlermeldungen:
Error, final value in for loop must be numeric or character
Eine verschwindet wenn ich $K$ zu Beginn festlege, z.B.: $K:=2$. Die anderen solltest Du noch beheben. Aber mal unabhaengig davon: Von welcher Funktion moechtest Du die Extremstellen wissen? Denn ich sehe in Deinem Quellcode keine Funktion. Ebenso wenig erzeugt Dein Quellcode eine Funktion.
Gruss
|
|
|
|