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

Newton-Verfahren --- fehlerhafte Funktion

 

Gi87
Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 07.03.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.03.2015, 08:28     Titel: Newton-Verfahren --- fehlerhafte Funktion
  Antworten mit Zitat      
Halo zusammen,

ich habe ein kleines Problem. Ich habe unten stehende Funktion geschrieben (Newton-Verfahren).
Zu Beginn habe ich innerhalb der Funktion eine Abfrage erstellt, um die
verschiedenen Parameter zu definieren.
Wenn ich nun im Commandfenster allerdings eine Parameter setze und die Abfrage in der Funktion entferne, bekomme ich nur Fehler heraus.
Die ersten Probleme gibt es bei der Erstellung des Startvektors bzw
den Bestimmungen dass x=x0 und y=y0 sei.

Kann mir jemand weiter helfen??
Habe alle Varianten ausprobiert. Confused


Code:
function [ K,R ] = newton(x0,y0,TOL,NMAX )
clear
clc
disp('--Newton Verfahren--')


%Abfrage der Parameter
%x0= input('X-Startwert:');
%y0= input('Y-Startwert:');
%TOL= input('Toleranzbereich:');
%newton(0.6NMAX= input('Maximale Durchläufe:');
n = 0;
x=x0;
y=y0;
fprintf('Der Startvektor lautet:');
a = [x;y];
Res = 1;
    while  TOL < norm(Res) && n < NMAX %&
    n = n+1;
    %Funktionen voreingestellt
    f = (x^2)+(y^2)+0.6*y-0.16;
    g = (x^2)-(y^2)+x-1.6*y-0.14;

    F0 = [f;g];

    %Ableitungen
    i1 =  2*x;
    i3 =  2*x+1;
    i2 =  2*y+0.6;
    i4 =  -2*y-1.6;

    %Jacobimatrix
    J0 = [i1 i2;i3 i4];

    Res = J0\F0;

    a = a-Res;

    x = a(1);
    y = a(2);
    R(n)=norm(Res);
    K(n)=n;
    end

plot(K,R)
fprintf('Anzahl der Durchläufe: %d',n)
fprintf('\n Toleranz: %d',norm(Res))
end

edit winkow: bitte die code umgebung verwenden
Private Nachricht senden Benutzer-Profile anzeigen


laternenjoe
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 83
Anmeldedatum: 25.02.15
Wohnort: Bochum
Version: ---
     Beitrag Verfasst am: 27.03.2015, 10:05     Titel:
  Antworten mit Zitat      
Die aufgabe kommt mir bekannt voe. Ich glaub, du musst u.a. auch noch i2 und i3 vertauschen oder? Und das clear muss weg.
Laternenjoe
Private Nachricht senden Benutzer-Profile anzeigen
 
Gi87
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 07.03.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.03.2015, 11:46     Titel:
  Antworten mit Zitat      
Hallo Laternenjoe,

vielen Dank für deine Hilfe.
an clear habe ich nicht mehr gedacht, vielen Dank.

i2 und i3 habe ich bei den Ableitungen schon vertauscht und
sollte jetzt ebenfalls stimmen.

Die Aufgabe hat vor kurem jemand hier mit 2 weiteren Aufgaben gepostet als Programmierauftrag.
Ist eine Hausübung, welche wir bekommen haben.
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 - 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.