matheraum.de
Raum für Mathematik
Offene Informations- und Nachhilfegemeinschaft

Für Schüler, Studenten, Lehrer, Mathematik-Interessierte.
Hallo Gast!einloggen | registrieren ]
Startseite · Forum · Wissen · Kurse · Mitglieder · Team · Impressum
Forenbaum
^ Forenbaum
Status Mathe
  Status Schulmathe
    Status Primarstufe
    Status Mathe Klassen 5-7
    Status Mathe Klassen 8-10
    Status Oberstufenmathe
    Status Mathe-Wettbewerbe
    Status Sonstiges
  Status Hochschulmathe
    Status Uni-Analysis
    Status Uni-Lin. Algebra
    Status Algebra+Zahlentheo.
    Status Diskrete Mathematik
    Status Fachdidaktik
    Status Finanz+Versicherung
    Status Logik+Mengenlehre
    Status Numerik
    Status Uni-Stochastik
    Status Topologie+Geometrie
    Status Uni-Sonstiges
  Status Mathe-Vorkurse
    Status Organisatorisches
    Status Schule
    Status Universität
  Status Mathe-Software
    Status Derive
    Status DynaGeo
    Status FunkyPlot
    Status GeoGebra
    Status LaTeX
    Status Maple
    Status MathCad
    Status Mathematica
    Status Matlab
    Status Maxima
    Status MuPad
    Status Taschenrechner

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Neuerdings beta neu
 Forum...
 vorwissen...
 vorkurse...
 Werkzeuge...
 Nachhilfevermittlung beta...
 Online-Spiele beta
 Suchen
 Verein...
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Dt. Schulen im Ausland: Mathe-Seiten:Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
StartseiteMatheForenMathe-SoftwareMehrdimensionales Newtonverfar
Foren für weitere Schulfächer findest Du auf www.vorhilfe.de z.B. Deutsch • Englisch • Französisch • Latein • Spanisch • Russisch • Griechisch
Forum "Mathe-Software" - Mehrdimensionales Newtonverfar
Mehrdimensionales Newtonverfar < Mathe-Software < Mathe < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Mathe-Software"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

Mehrdimensionales Newtonverfar: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 19:30 So 04.06.2006
Autor: Markustt

Hallo Ich sitze jetzt schon eine ganze Weile vor folgender Aufgabe und komme nicht weiter ,muss darüber aber ein Referat halten

f(x,y):=         2x³-x²y² =0
g(x,y):=3xy³ + x³y²-5 =0

In der folgenden Aufgabe soll eine Lösung (x,y) für das nichtlineare GLS bestimmt werden .Jede Lösung bestimmt eine krumme Kurve in der xy-Ebene. Deren Schnittpunkt S ist die gesuchte Lösung, siehe Skizze. Aus dieser liest man ganz grob ab : S liegt in der Nähe von (x0;y0) = (0.8;1.2). Dieser Wert soll jetzt verbessert werden. Linearisieren sie dazu die beiden Funktionen f und g im Punkt (x0;y0) (Tangentialebene). Setzen sie nun statt der ursprünglichen beiden nichtlinearen Gleichungen die beiden Linearisierungen gleich 0. Dies liefert ein lineares GLS dessen Lösungen (x1;y1) sich leicht bestimmen lässt, und die unter sehr allgemeneinen Bedingungen eine bessere Näherungfür den gesuchten Punkt S darstellt als (x0;y0). Bestimmen sie zur Probe die Werte f(x1;y1) und g(x1;y1).
Diese müssen näher bei 0 liegen als die WErte f(x0;y0) und g(x0;y0). Das geschilderte Verfahren kann man jetzt wieder auf (x1;y1) anwenden und erhält noch genauere Werte (x2;y2) usw. (for Schleife). Programmieren sie eine Schleife , die 5 Schritte des Newton Verfahrens automatisch , d.h ohne manuelle Eingriffe in das Programm ausführt.

(Zur Kontrolle die Lösung auf 9 Stellen genau : x=0.763406231, y = 1.23564253).


Wäre echt für jede Hilfe dankebar da ich mit Maple meine argen Probleme habe.


MFG und danke schon mal Markus



*  Ich habe diese Frage auch in folgenden Foren auf anderen    Internetseiten gestellt:

* Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.


        
Bezug
Mehrdimensionales Newtonverfar: Antwort
Status: (Antwort) fertig Status 
Datum: 00:08 Mo 05.06.2006
Autor: Martin243

Hallo,

schauen wir uns das doch mal an:

Zuerst solltest du wissen, dass man Funktionen in Maple folgendermaßen zuweisen sollte:

f:=(x,y) -> [mm] 2*x^3-x^2*y^2; [/mm]
g:=(x,y) -> [mm] 3*x*y^3 [/mm] + [mm] x^3*y^2-5; [/mm]


Nun weiß ich nicht, ob du nur Probleme mit Maple hast oder auch mit dem Ansatz. Also in aller Kürze:
Die erste Linearisierung erhalten wir durch Auswerten der Funktion an der Stelle [mm] (x_0,y_0) [/mm] und Addition der partiellen Ableitungen an dieser Stelle gewichtet mit den x- bzw. y-Differenzen. Also (Der Striche bedeute mal Linearisierung):
[mm] \overline{f}_0 [/mm] = [mm] f(x_0,y_0) [/mm] + [mm] (x-x_0)*\bruch{\partial{f(x,y)}}{\partial{x}}|_{(x_0,y_0)} [/mm] + [mm] (y-y_0)*\bruch{\partial{f(x,y)}}{\partial{y}}|_{(x_0,y_0)} [/mm]

Das müssen wir noch nicht mal ausrechnen. Das macht Maple natürlich für uns. Und damit wir nicht in jedem Schritt die Linearisierung neu ausrechnen müssen. versehen wir die Linearisierungsfunktion mit einem Parameter "step":
f_lin := (step,x,y) -> f(X[step],Y[step]) + (x - X[step])*eval(diff(f(x_,y_),x_),[x_=X[step],y_=Y[step]]) + (y - Y[step])*eval(diff(f(x_,y_),y_),[x_=X[step],y_=Y[step]]);

Entsprechend für g:
g_lin := (step,x,y) -> g(X[step],Y[step]) + (x - X[step])*subs([x_=X[step],y_=Y[step]],diff(g(x_,y_),x_)) + (y - Y[step])*subs([x_=X[step],y_=Y[step]],diff(g(x_,y_),y_));

Du siehst die Variablen x_ und y_, die ich eingeführt habe, damit Maple sie nicht mit den Funktionsvariablen verwechselt. Ebenso ist zu beachten, dass die Näherungen groß geschrieben werden, damit sie sich nicht ebenfalls mit den anderen Variablen vermischen. Also: X[0] und Y[0] !

Nun können wir beginnen:
step := 0;
X[0] := 0.8;
Y[0] := 1.2;


Nun erstellen wir das Gleichungssystem mit den linearisierten Funktionen, lösen diese und aktualisieren die Näherungswerte in einem Schritt:
assign(solve([f_lin(step,X[step+1],Y[step+1]),g_lin(step,X[step+1],Y[step+1])]));

Nach jedem Schritt muss nactürlich der Wert von step um 1 erhöht werden!

Nun kannst du die letzte Zeile z.B. in eine For-Schleife einbauen, die step von 0 bis 5 durchlaufen lässt und du hast deine Lösung.

Denkbar wäre etwas in der Art:
for step from 0 while step <= 5 do
  assign(solve([f_lin(step,X[step+1],Y[step+1]),g_lin(step,X[step+1],Y[step+1])]));
  [mm] printf("(x[\%d],y[\%d]) [/mm] = [mm] (\%f,\%f)\backslash{n}",step,step,X[step],Y[step]); [/mm]
end do;


Wenn du noch Fragen hast, dann melde dich. Sieh dir aber ruhig mal den Quelltext an und schlage ruhig die unbekannten Funktionen in der Maple-Hilfe nach.

Gruß
Martin

Bezug
                
Bezug
Mehrdimensionales Newtonverfar: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 00:15 Mo 05.06.2006
Autor: Markustt

Also ich habe soweit ich glaub schon mal alles hinbekommen für einen Durchlauf


Nur mit der For Schleife komme ich noch nicht zu recht wäre nett wenn jemand da mal nen Blick drauf werfen könnte

Ich habe die Datei mal hochgeladen

http://rapidshare.de/files/22222946/Maple_Ref.mws.html

danke und mfg markus

Bezug
                        
Bezug
Mehrdimensionales Newtonverfar: Antwort
Status: (Antwort) fertig Status 
Datum: 00:22 Mo 05.06.2006
Autor: Martin243

Hallo,

wichtig ist, dass du bei der Eingabe nicht <RETURN> sondern <SHIFT>+<RETURN> benutzt. Dann wird die Zeile nicht sofort ausgeführt und du kannst einen ganzen Block tippen.

Sonst gibt es bei der For-Schleife nix Kompliziertes:
for i from 0 while i <= 5 do
  TuDiesTuJenes...
end do;


Gruß
Martin

Bezug
                                
Bezug
Mehrdimensionales Newtonverfar: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 00:53 Mo 05.06.2006
Autor: Markustt

Ja ich habe ja bei meinem Programm die Endwerte in den Variablen [mm] Erg_X [/mm] und [mm] Erg_Y [/mm] gespeichert wie kann ich die Werte jetzt beim nächsten Durchlauf wieder verwenden ?


mfg und danke Markus

Bezug
                                        
Bezug
Mehrdimensionales Newtonverfar: Antwort
Status: (Antwort) fertig Status 
Datum: 01:05 Mo 05.06.2006
Autor: Martin243

Am Ende jedes Schleifendurchlaufs einfach:

X_Wert := [mm] Erg_X; [/mm]
Y_Wert := [mm] Erg_Y; [/mm]

Und weiter geht's mit den neuen Werten!


Gruß
Martin

Bezug
                                                
Bezug
Mehrdimensionales Newtonverfar: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 01:15 Mo 05.06.2006
Autor: Markustt

fehlt da noch viel bei dem programm wo ich schon haben ?




mfg markus

Bezug
                                                        
Bezug
Mehrdimensionales Newtonverfar: Antwort
Status: (Antwort) fertig Status 
Datum: 16:02 Mo 05.06.2006
Autor: Martin243

Hi,

du bist praktisch fertig!

Du musst noch Folgendes tun:

1. Schreib alles ab dem for... in eine Execution Group, will heißen: Jedesmal, wenn du in die nächste Zeile springst, musst du <SHIFT>+<RETURN> benutzen.
Am Ende muss die gesamte For-Schleife hinter einem einzigen >-Zeichen stehen. Bei dir steht dieses Zeichen im Moment vor jeder Zeile!

2. Ergänze die beiden Zeilen von meinem vorigen Beitrag, damit die Näherungswerte aktualisiert werden.

3. Schließe die Schleife mit "end do;" ab.

FERTIG! Schon funktioniert dein Code!


Gruß
Martin

Bezug
                                                                
Bezug
Mehrdimensionales Newtonverfar: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 16:28 Mo 05.06.2006
Autor: Markustt

So hab das jetzt mal gemacht so wie ich denke , aber irgendwie klappt da was noch ned wirklich

http://rapidshare.de/files/22272755/Maple_Re_forf.mws.html

wär super wenn du nochmal nen blick drauf werfen könntest

betsen dank markus

Bezug
                                                                        
Bezug
Mehrdimensionales Newtonverfar: Antwort
Status: (Antwort) fertig Status 
Datum: 17:54 Mo 05.06.2006
Autor: Martin243

Den Code hast du ja nun komplett zusammen, aber du musst ihn im richtigen Format eingeben.
Also nochmal: <SHIFT> + <RETURN> benutzen!

1. Markiere die Zeile "F_eing := ...."
2. Schneide sie aus
3. Klicke mit der Maus hinter das For-Statement
4. Drücke <SHIFT>+<RETURN>
5. Füge in die neue Zeile den eben ausgeschnittenen Inhalt ein

nun mit der nächsten Zeile fortfahren
1. Markiere die Zeile "G_eing :=. ..."
2. Schneide sie aus
3. Klicke mit der Maus hinter die "F_eing := ...."-Zeile
4. Drücke <SHIFT>+<RETURN>
5. Füge in die neue Zeile den eben ausgeschnittenen Inhalt ein

usw. usf.


Die For-Schleife wird wirklich nur dann funktionieren, wenn alle Zeilen ab der For-Zeile in EINEM Block stehen.


Gruß
Martin

Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Mathe-Software"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
www.matheraum.de
[ Startseite | Forum | Wissen | Kurse | Mitglieder | Team | Impressum ]