www.vorhilfe.de
Vorhilfe

Kostenlose Kommunikationsplattform für gegenseitige Hilfestellungen.
Hallo Gast!einloggen | registrieren ]
Startseite · Forum · Wissen · Kurse · Mitglieder · Team · Impressum
Forenbaum
^ Forenbaum
Status Vorhilfe
  Status Geisteswiss.
    Status Erdkunde
    Status Geschichte
    Status Jura
    Status Musik/Kunst
    Status Pädagogik
    Status Philosophie
    Status Politik/Wirtschaft
    Status Psychologie
    Status Religion
    Status Sozialwissenschaften
  Status Informatik
    Status Schule
    Status Hochschule
    Status Info-Training
    Status Wettbewerbe
    Status Praxis
    Status Internes IR
  Status Ingenieurwiss.
    Status Bauingenieurwesen
    Status Elektrotechnik
    Status Maschinenbau
    Status Materialwissenschaft
    Status Regelungstechnik
    Status Signaltheorie
    Status Sonstiges
    Status Technik
  Status Mathe
    Status Schulmathe
    Status Hochschulmathe
    Status Mathe-Vorkurse
    Status Mathe-Software
  Status Naturwiss.
    Status Astronomie
    Status Biologie
    Status Chemie
    Status Geowissenschaften
    Status Medizin
    Status Physik
    Status Sport
  Status Sonstiges / Diverses
  Status Sprachen
    Status Deutsch
    Status Englisch
    Status Französisch
    Status Griechisch
    Status Latein
    Status Russisch
    Status Spanisch
    Status Vorkurse
    Status Sonstiges (Sprachen)
  Status Neuerdings
  Status Internes VH
    Status Café VH
    Status Verbesserungen
    Status Benutzerbetreuung
    Status Plenum
    Status Datenbank-Forum
    Status Test-Forum
    Status Fragwürdige Inhalte
    Status VH e.V.

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:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
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.vorhilfe.de