WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Gauß-Newton-Methode

 

Hard Harry
Forum-Anfänger

Forum-Anfänger


Beiträge: 24
Anmeldedatum: 12.10.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.10.2011, 15:31     Titel: Gauß-Newton-Methode
  Antworten mit Zitat      
Ich habe das folgende Problem:

Code:

_Peter_: Code entfernt. Bitte Copyright beachten!
 


Ich bekomme es einfach nicht hin diese Methode zu progemmieren. Habe dieses Beispiel aus dem Buch "Numerische Mahematik für Ingeneure". Könnte mir bitte jemand helfen?
Private Nachricht senden Benutzer-Profile anzeigen


_Peter_
Moderator

Moderator


Beiträge: 537
Anmeldedatum: 08.12.10
Wohnort: ---
Version: 7.10, 2010a
     Beitrag Verfasst am: 24.10.2011, 16:12     Titel: Re: Gauß-Newton-Methode
  Antworten mit Zitat      
Hard Harry hat Folgendes geschrieben:
Habe dieses Beispiel aus dem Buch "Numerische Mahematik für Ingeneure".


Hallo Hard Harry,
Bücher kosten Geld, von diesem Geld leben die Authoren, deswegen sollte man das Copyright beachten und nicht einfach Auszüge posten. Wenn man Auszüge aus Büchern postet, dann bitte mit Nachweis, dass nicht gegen geltendes Copyright verstoßen wird.

Dein Posting gibt aber dennoch nicht viel her. Du beschreibst leider kein Problem, sondern postest du nur einen Beispielcode.
Versuche konkrete Probleme zu schildern. Da kann man dir leichter helfen.
_________________

Gruß
Peter
_________________
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht? Oder der MATLAB Hilfe?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
Private Nachricht senden Benutzer-Profile anzeigen
 
Hard Harry
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 24
Anmeldedatum: 12.10.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.10.2011, 16:25     Titel:
  Antworten mit Zitat      
Alles klar, weiss das nächste mal bescheid Smile. Dennoch hier meine Quelle ohne Verletzung irgendwelcher Schutzrechte:
http://www.igpm.rwth-aachen.de/Down.....usken/Folien/Kapitel6.pdf

Gegeben Sei:
Code:

%Stützpunkte:
t=[0.1 0.3 0.7 1.2 1.6 2.2 2.7 3.1 3.5 3.9]
b=[0.558 0.569 0.176 -0.207 -0.133 0.132 0.055 -0.090 -0.069 0.027];

%Modell:  
F=a*exp(-b*t)*sin(c*t+d)

%Startwert:
x0=[1 2 2 1]
 


Nun soll die G-N-Methode angewandt werden:

Algorithmus (Gauß-Newton). Wähle Startwert xk, hier x0 .
Für k = 0, 1, 2, ...:
Berechne F (xk)und J(xk), J(xk)=F'(xk) ist Jacobi Matrix
Bestimme Minimum nach Kleinste Quadrate Prinzip: Summe(F(ti;a,b,c,d)-bi)^2
Setze xk+1 = xk + sk .
wobei sk = -[J(xk)'J(xk)]^-1 J(xk)'F(xk)
Abbruchkriterium: ||F(xk)'F(xk)|| <= e , e möglichst klein Wählen

Mein Problem fängt schon hier an, z.B. die Bestimmung von sk:
Code:

syms a b c d
F=a*exp(-b*t)*sin(c*t+d)
J=jacobian(F)
sk=inv(-J'*J)*J'*F
 
Private Nachricht senden Benutzer-Profile anzeigen
 
Hard Harry
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 24
Anmeldedatum: 12.10.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.10.2011, 17:32     Titel:
  Antworten mit Zitat      
nun kann ich den Startvektor in die Matritzen von sk nicht einsetzen, da diese weiterhin symbolisch sind...wie könnte ich dies mit einem Befehl fertig bringen....google scheint hier keine gute hilfe zu sein Sad
Private Nachricht senden Benutzer-Profile anzeigen
 
Hard Harry
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 24
Anmeldedatum: 12.10.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.10.2011, 12:23     Titel:
  Antworten mit Zitat      
Code:

% Programm: Gauss-Newton
clc
clear all
format LONGENG
 
t=[0.1 0.3 0.7 1.2 1.6 2.2 2.7 3.1 3.5 3.9]; %Zeitpunkt
b=[0.558 0.569 0.176 -0.207 -0.133 0.132 0.055 -0.090 -0.069 0.027]; %Messwert
 
m=length(t);
 
syms x1 x2 x3 x4 real %Betrachtete Parameter
 
f=0;
for i=1:m
f=x1*exp(-x2*t)*sin(x3*t(i)+x4); %Modellfunktion
end
 
v=[x1 x2 x3 x4];
j=jacobian(f,v);                 %Jacobimatrix der Modellfunktion
xk=[1,2,2,1];
J=subs(j,[x1,x2,x3,x4],[1,2,2,1]);
F=subs(f,[x1,x2,x3,x4],[1,2,2,1]);
sk1=-inv(J'*J);
sk2=J'*F';
sk=sk1*sk2;
xk1=xk'+sk

FF=0
for i=1:m
FF=FF+xk1(1)*exp(-xk1(2)*t)*sin(xk1(3)*t(i)+xk1(4))-b(i))^2
hier müsste für FF=0.35035332090089 rauskommen...

 


Kann mir keiner helfen? Sad Sad Sad
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 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.