|
|
Hilfe..... Newton verfahren |
|
kg270 |

Forum-Newbie
|
 |
Beiträge: 6
|
 |
|
 |
Anmeldedatum: 21.12.15
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 21.12.2015, 13:34
Titel: Hilfe..... Newton verfahren
|
 |
Ich brauche bitte ganz dringend Hilfe, denn ich muss in meinen Seminar eine Aufgabe zum Newton Verfahren programmieren und habe wirklich null Ahnung, wie man sowas macht.
Aufgabe ist:
Verwenden Sie das Newtonverfahren, um den Umkreis eines gegebenen Dreiecks sowie die möglichen Schnittpunkte zweier gegebener Kreise näherungsweise zu bestimmen. Diskutieren Sie außerdem das lokale Konvergenzverhalten für verschiedene Dreiecke und Kreise.
Für jede Hilfe bin ich sehr dankbar.
|
|
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 21.12.2015, 17:12
Titel: Re: Hilfe..... Newton verfahren
|
 |
Hallo kg270,
Wie können wir Dir helfen?
Hast Du schon mal in Matlab programmiert? Fehlt Dir ein bestimmter Schritt oder eine mathematische Definition? Was hast Du bisher versucht?
Auf "ganz dringend" und "wikrlich null Ahnung" kann man nichts sinnvolles antworten. Wir können die Aufgabe nicht einfach für Dich lösen, denn Du könntest das ja nicht abgeben ohne zu täuschen.
Viele Grüße, Jan
|
|
|
kg270 |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 6
|
 |
|
 |
Anmeldedatum: 21.12.15
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 22.12.2015, 12:06
Titel:
|
 |
Naja, ich glaube ich weiß was ich machen soll, aber ich weiß halt nicht, wie man das bei Matlab schreiben soll.
Meine Vorgehensweise wäre jetzt zum Umkreis von Dreiecken:
Ich nehme mir ein beliebiges Dreieck, was ich auch schon hinbekommen habe:
function f = dreieck( x1,y1,x2,y2,x3,y3 )
xInt=[x1,x2,x3,x1];
yInt=[y1,y2,y3,y1];
f=plot(xInt,yInt);
end
Dann muss ich ja jetzt um den Umkreis zu bestimmen "nur" den Schnittpunkt der Mittelsenkrechten finden, was bedeutet ich muss irgendwie diese Mittelsenkrechten programmieren.
Wenn ich das denn habe, wird dann der Schnittpunkt der Mittelsenkrechten auf die x-Achse verschoben und ich kann dann das Newton Verfahren anwenden.
Jetzt ist aber die Frage, wie soll ich das denn Matlab beibringen =(
|
|
|
Friidayy |

Forum-Century
|
 |
Beiträge: 225
|
 |
|
 |
Anmeldedatum: 17.12.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: R2012b
|
 |
|
|
 |
|
Verfasst am: 22.12.2015, 12:21
Titel:
|
 |
Ich beziehe mich jetzt erstmal auf die erste Aufgabe
Zitat: |
Verwenden Sie das Newtonverfahren, um den Umkreis eines gegebenen Dreiecks zu bestimmen |
Die analytische Lösung kannst du hier https://de.wikipedia.org/wiki/Umkreis unter dem Punkt Radius einsehen (dient später zur Überprüfung).
Soweit so gut, ich schätze du solltest folgendes machen. Du hast drei gegebene Punkte (die des Dreiecks). Drei Punkte definieren einen Kreis eindeutig! Such dir am besten mal die Kreisgleichung raus. Mit den drei Punkten und der Kreisgleichung kannst du dann ein Gleichungssystem aufstellen, welches du mit dem Newton-Verfahren löst.
Stell erst mal das Gleichungssystem mit Zettel und Stift auf, dann reden wir über das Newton-Verfahren
|
|
|
kg270 |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 6
|
 |
|
 |
Anmeldedatum: 21.12.15
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 22.12.2015, 12:51
Titel:
|
 |
Na gut, dass bekomme ich hin :
I: (x1 - m1)^2 + (y1 - m2)^2 = r^2
II: (x2 - m1)^2 + (y2 - m2)^2 = r^2
III: (x3 - m1)^2 + (y3 - m2)^2 = r^2
mit den Punkten: A = (x1;y1) B = (x2;y2) C = (x3;y3)
Und wie löst man das jetzt???
|
|
|
Friidayy |

Forum-Century
|
 |
Beiträge: 225
|
 |
|
 |
Anmeldedatum: 17.12.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: R2012b
|
 |
|
|
 |
|
Verfasst am: 22.12.2015, 13:06
Titel:
|
 |
Das sieht ja schonmal gut aus. Du hast jetzt also ein Gleichungssystem mit 3 Gleichungen und 3 Unbekannten. Bring es noch in die Form:
F(m1,m2,r)=0 <- Nullvektor
Jetzt kannst du es mit Newton lösen. Sollst du das Verfahren selber programmieren oder kannst du Matlab-Befehle verwerden? Das Newton-Verfahren ist in Matlab unter dem Befehl fsolve http://de.mathworks.com/help/optim/ug/fsolve.html realisiert.
EDIT: Falls du es selber programmieren sollst, unter Das Newton-Verfahren im Mehrdimensionalen auf https://de.wikipedia.org/wiki/Newton-Verfahren findest du alles was du brauchst.
Gruß
|
|
|
kg270 |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 6
|
 |
|
 |
Anmeldedatum: 21.12.15
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 22.12.2015, 13:39
Titel:
|
 |
Ich weiß, dass ich mich gerade super dumm anstelle , aber ich weiß gerade nicht, wie ich das in diese Form mit dem Nullvektor bekomme.
Klar ich muss das r^2 rüberholen, aber dann habe ich doch immer noch kein schönes Gleichungssytem.
Ich bin verzweifelt....
|
|
|
Friidayy |

Forum-Century
|
 |
Beiträge: 225
|
 |
|
 |
Anmeldedatum: 17.12.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: R2012b
|
 |
|
|
 |
|
Verfasst am: 22.12.2015, 14:01
Titel:
|
 |
Mit "Schönem Gleichungssystem" meinst du wahrs den linearen Fall,
A*x=b , wobei A eine quadratische Matrix ist und x der Vektor mit den Unbekannten.
Die Lösung davon kann man easy mit x=A\b berechnen in Matlab. Leider hast du hier aber ein nichtlineares Gleichungssystem, welches man in der Form F(x)=0 schreibt. Nichtlineare GS löst man mit dem Newton-Verfahren.
Wenn du r² rübergeholt hast, hast du alles richtig gemacht und die Form passt schonmal. Gib mal in die Matlab Konsole "ver" ein und schau ob du die optimization toolbox hast.
Beschreibung: |
|
 Download |
Dateiname: |
kg270solution.m |
Dateigröße: |
659 Bytes |
Heruntergeladen: |
454 mal |
|
|
|
huhu0815 |

Forum-Century
|
 |
Beiträge: 141
|
 |
|
 |
Anmeldedatum: 20.02.14
|
 |
|
 |
Wohnort: Dresden
|
 |
|
 |
Version: R2013b, R2014b, R2016b, R2018a
|
 |
|
|
 |
|
Verfasst am: 22.12.2015, 15:23
Titel:
|
 |
Hi
ich hatte mal einen ähnlichen Fall. Ich habe mir den NewtonRaphson Algo selbst fix zusammen programmiert, ohne den beliebten und sehr mächtigen Solver der optimiziation Toolbox. Aber für das kleine Problem brauchst du den eig nicht.
GLS zu 0 setzen, Jacobi Matrix bilden, alles in den folgenden Code werfen bzw ersetzen und anschmeißen
P.S.: google einfach mal nach NonLinear Equation with matlab...da kommen schon einige pdf's raus
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 22.12.2015, 16:45
Titel:
|
 |
Hallo kg270,
Wieso meinst Du, dass Du dann "kein schönes Gleichungssystem" hast?
Poste doch mal den Matlab Code, den Du damit hinbekommst.
Gruß, Jan
|
|
|
kg270 |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 6
|
 |
|
 |
Anmeldedatum: 21.12.15
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 24.12.2015, 12:10
Titel:
|
 |
Okay, irgendwas stimmt bei meinem Code nicht.
wie kann ich denn die Koordinaten des Mittelpunktes definieren. Da zeigt er mir ständig Error an...
[EDITED, Jan, Bitte Code-Umgebung verwenden - Danke!]
|
|
|
kg270 |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 6
|
 |
|
 |
Anmeldedatum: 21.12.15
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 24.12.2015, 12:12
Titel:
|
 |
das Newton verfahren mit der Jacobi Matrix muss da ja auch noch irgendwie rein... ich bin wieder mal ratlos.....
|
|
|
Friidayy |

Forum-Century
|
 |
Beiträge: 225
|
 |
|
 |
Anmeldedatum: 17.12.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: R2012b
|
 |
|
|
 |
|
Verfasst am: 24.12.2015, 12:42
Titel:
|
 |
Hallo kg270,
dem Code nach, würde ich sagen du bist noch ein Matlab-Einsteiger und hast noch wenig mit Funktionen gearbeitet.
Schau dir mal das Video hier auf Youtube an, ab ca. min. 24.
https://www.youtube.com/watch?v=zlpAhB_uiSs
Nach dem Video solltest du wissen, wie man Funktionen erstellt und mit diesen arbeitet. Danach brauchst du dann folgende FUnktionen:
1) Main: hier rufst du das Newton-Verfahren und lässt dir das Ergebnis ausgeben
2) Newton-Verfahren: hiermit löst du das nichtlineare Gleichungssystem
2+) Jacobi: numerische Berechnung der Jacobi-Matrix
3) NLGS: hier definierst du das nichtlineare Gleichungssystem
meld dich bei Problemen
Gruß
|
|
|
huhu0815 |

Forum-Century
|
 |
Beiträge: 141
|
 |
|
 |
Anmeldedatum: 20.02.14
|
 |
|
 |
Wohnort: Dresden
|
 |
|
 |
Version: R2013b, R2014b, R2016b, R2018a
|
 |
|
|
 |
|
Verfasst am: 25.12.2015, 00:39
Titel:
|
 |
Hallo,
das NLGS sind einfach schon deine nach 0 umgestellten Gleichungen. Wie im obigen Beispiel ersetzt du einfach die Gleichungen (das habe ich schonmal gemacht) und bildest weiterhin die Jacobi Matrix abgeleitet nach den Unbekannten m1, m2 und r.
Hier die modifizierte Version:
Da hier nur geholfen werden soll, musst du nur die Jacobi-Matrix bilden und an den Orten einsetzen. Man kann die Jacobi-Matrix selbstverständlich auch numerisch lösen, aber das scheint als Einstieg doch etwas zu schwierig. Von daher solltest du diese hier einsetzen. Diese ändert sich ja für das Problem nicht.
Wenn du damit fertig bist, bildet du deine x und y vektoren, die deine Punkte repräsentieren.
Viele Grüße
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2025
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|