Beispiel 41
Results 1 to 7 of 7

Thread: Beispiel 41

  1. #1
    dj_m.o.h.t.'s Avatar
    Title
    Elite
    Join Date
    Jan 2002
    Posts
    428
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Beispiel 41

    Angabe:

    Mit der Methode der sukzessiven Approximation berechne man für y'=x-y^2 und y(0)=1 den Wert y(0.1) auf 3 Dezimalstellen genau.

    Lösung:

    Für dieses Beispiel habe ich leider keine Lösung. Was heißt eigentlich sukzessive? Approximation ist Annäherung. Wie geht das eigentlich?

  2. #2
    VTEC's Avatar
    Title
    Baccalaureus
    Join Date
    Feb 2002
    Location
    Wien
    Posts
    674
    Thanks
    0
    Thanked 1 Time in 1 Post
    Naja sukzessive heißt irgendwas wie "fortlaufend" oder "immer wieder", sowas hatten wir in der HTL schon gehört, aber Verfahren für dieses Beispiel haben wir keines kennengelernt oder? Dieser Begriff ist eher allgemein einzusetzen, bei dem Beispiel müss ma uns wahrscheinlich selber ein Verfahren ausdenken (oder einen Mathematiker fragen :-) ).

    [edit] also ich gebs auf, hab bis jetzt Bücher durchgelesen und im Internet geschaut und versucht mit Mathematica was zu machen (*grrrrr* warummußdasnursokompliziertsein) aber komm nicht weiter (vor allem find ich nix über Anfangsprobleme in Mathematica )

    DSolve[ y'[x] == x - y[x]^2, y, x]
    \!\({{y ->
    Function[{x}, \(-\(\((\(-BesselJ[\(-\(1\/3\)\),
    2\/3\ \[ImaginaryI]\ x\^\(3/2\)]\)\ C[
    1] + \[ImaginaryI]\ x\^\(3/2\)\ \((\(-2\)\ \
    BesselJ[\(-\(2\/3\)\), 2\/3\ \[ImaginaryI]\ x\^\(3/2\)] -
    BesselJ[\(-\(4\/3\)\),
    2\/3\ \[ImaginaryI]\ x\^\(3/2\)]\ C[1] +
    BesselJ[2\/3, 2\/3\ \[ImaginaryI]\ x\^\(3/2\)]\ C[
    1])\))\)/\((2\ x\ \((BesselJ[1\/3,
    2\/3\ \[ImaginaryI]\ x\^\(3/2\)] +
    BesselJ[\(-\(1\/3\)\),
    2\/3\ \[ImaginaryI]\ x\^\(3/2\)]\ C[
    1])\))\)\)\)]}}\)

    Mehr bring ich nicht zam

    [edit2]

    irgendwie spinnt mein Mathematica, jedenfalls hab ich ne Lösung mit der Anfangsbedingung rausbekommen, die aber so lang ist, daß ich sie Euch ersparen möchte (geht übrigens mit: DSolve [{y'[x] == x - y[x]^2, y[0] == 1}, y[x], x]). Wenn man das "x-" wegläßt kommt y[x]=1/1-x raus und wenns dabei ist, wirds ein Mörder Ausdruck also ohne Trick wird das Beispiel nicht zu lösen sein.
    Last edited by VTEC; 06-06-2002 at 15:07.
    HaRdCoRe HaS JuSt BeGuN!

  3. #3
    shabby's Avatar
    Title
    Elite
    Join Date
    Jan 2002
    Location
    Schrödinger, 1040 Wien
    Posts
    267
    Thanks
    2
    Thanked 9 Times in 8 Posts

    lösungsansatz

    Zur Feier es Moz-Release einmal ein konstruktiver Beitrag von mir.

    Die Angabe aufgeschlüsselt:
    Sie y' = F(x,y) = x-y^2
    Sei y(x0) = y0 mit x0 = 0 und y0 = 1
    Berechnen Sie y(0,1) auf drei Dezimalstellen genau

    Die Formel: (rekursiv)
    y<SUB>n+1</SUB>(x) = y<SUB>0</SUB> + integral(von x0 bis x) F(t,y<SUB>n</SUB>(t))dt

    Weiters Sei y1(x) konstante Funktion mit y1(x) = y0 = 1

    Nun berechnet man y2(x) folgendermaßen:

    y2(x) = 1 + integral(x,x0) [ t - y1(t)^2 ] dt

    = 1+ integral (x,x0) [ t - y0^2] dt

    (da ja y1(x) als konstante Funktion definiert ist !)

    = 1 + [t^2/2 - y0^2 * t] zwischen (x0,x)

    (integriert nach t)

    = 1+ ( x^2/2 - y0^2 x ) - ( x0^2/2 - y0^2 x0)

    (weil x0 = 0 fällt zweiter teil weg)

    y2(x) = x^2/2 - x + 1
    y2(0,1) = 0,1^2/2 - 0,1 + 1 = 0.905

    ich würde nun meinen der nächste schritt ist

    y3(x) = 1 + integral(x,x0) [t - y2(t)^2] dt
    = 1+ integral (x,x0) [t- ( t^2/2 - t + 1 )^2] dt
    = 1+ integral (x,x0) [-t^4/4 ....... ] dt
    = 0.914358 (mathematica )

    ich habe allerdings (noch) keine ahnung, wieviele iterationen notwendig sind

    hoffe der ansatz stimmt und hilft

    mfg
    ____________________

  4. #4

    Title
    Principal
    Join Date
    Feb 2002
    Posts
    57
    Thanks
    0
    Thanked 0 Times in 0 Posts
    Der Ansatz scheint mir richtig.
    Ein weiterer Wert:
    y4(0.1)=0.913767...
    Last edited by PliniusSecundus; 09-06-2002 at 11:27.

  5. #5
    shabby's Avatar
    Title
    Elite
    Join Date
    Jan 2002
    Location
    Schrödinger, 1040 Wien
    Posts
    267
    Thanks
    2
    Thanked 9 Times in 8 Posts

    exakte Lösung

    ich habe y2 - y7 berechnet (wobei ich letztes weglassen möchte, da es ein polynom 74.grades ist (viel platz )

    ich hoffe die pngs sind zu lesen.

    Die Lösung lautet: 0.913794




  6. #6
    lj_scampo's Avatar
    Title
    Baccalaureus
    Join Date
    Mar 2002
    Posts
    582
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Anzahl der Iterationen

    Soviel ich verstanden habe, lautet die Abbruchbedingung:
    <FONT FACE=Symbol>|</FONT>y<sub>n</sub>-y<sub>n-1</sub><FONT FACE=Symbol>|</FONT> &lt; 0.001
    (d.h. die Annaeherung ist auf 3 Dezimalstellen genau)

  7. #7
    shabby's Avatar
    Title
    Elite
    Join Date
    Jan 2002
    Location
    Schrödinger, 1040 Wien
    Posts
    267
    Thanks
    2
    Thanked 9 Times in 8 Posts

    und noch ein kleines hilfsprogramm

    hmm, erst sechs in der frua ?

    ein perl skript zum berechnen von Polynom-Lösungen für dieses Problem (x0,y0 frei wählbar) und anschließender spezieller Berechnung (in den ersten zehn iterationen auch nicht ungenauer als mathematica).

    ___________________________________________
    und was werden wir nächsten abend machen, pinky ?

    Code:
    #!usr/bin/perl
    print "Berechnung spezieller Lösungen für:dy/dx=x+y^2\n"."x0 [return] y0 eingeben(double): \n";
    $x0=&lt;STDIN&gt;;$y0=&lt;STDIN&gt;;
    print 'Maximalen Grad des Polynoms eingeben(real!)';$maxdegree=&lt;STDIN&gt;;$y[0]=$y0;$degree=1;$temp=1;
    while ($degree &lt;= $maxdegree) { @lasty=@y;undef @y;for($i=0;$i&lt;=$degree;$i++) { if($lasty[$i]) {
    for($j=0;$j&lt;=$degree;$j++) { if($lasty[$j]) {  $y[$i+$j]+= $lasty[$i] * $lasty[$j];
    if(($i+$j)&gt;$degree) { $degree = $i+$j;}}}}}
    $y[1]--; @lasty=@y;undef @y; for($i=0;$i&lt;=$degree;$i++) { if($lasty[$i]) {
    $y[$i+1]=$lasty[$i]/(-($i+1)); } } $degree++; $x0calc=0;
    for($i=1;$i&lt;=$degree;$i++) { if($y[$i]) { $x0calc += $y[$i] * ($x0**$i);}}
    $y[0]=$y0; $y[0]-=$x0calc;}
    print "Das Nährungspolynom lautet: ";for($i=0;$i&lt;=$degree;$i++) { if($y[$i]) {
    print $y[$i] . " x^$i(+)"; } }
    print "\n Die Rechung ergab ein Polynom $degree ten Grades !\n";
    print "wollen Sie einen konkreten y-Wert berechnen ?? Bitte geben Sie das y ein: ";
    $xinput = &lt;STDIN&gt;; $yresult = 0; for($i=0;$i&lt;=$degree;$i++) { if($y[$i]) { $yresult += $y[$i] * ($xinput**$i);}}
    print("Das Ergebniss: $yresult\n");
    Attached Files Attached Files
    Last edited by shabby; 10-06-2002 at 07:11.

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •