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

Gradientenverfahren plotten

 

z0Nk

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.03.2013, 15:09     Titel: Gradientenverfahren plotten
  Antworten mit Zitat      
Hallo,
ich schreibe momentan mein erstes kleines Matlabprogramm und zwar versuch ich das gradientenverfahren zu implementieren.

Der Code sieht wie folgt aus und funktioniert auch im Grunde:

Code:

function g  = mygrad(b, A, x0)
%MYGRAD Summary of this function goes here
%   Detailed explanation goes here
clc;
close all;

n=10; %Anzahl der Iterationen
%kmax=50;
xk=x0
i=0;




for i=1:1:n
 
  r = b- A*xk;
  alpha=(transpose(r)*r)/(transpose(r)*A*r) ;
  xk=xk+alpha*r
  plot(x0(1), x0(2),'r-')
  plot(xk(1), xk(2),'r-')
  hold on;
 
  %axis([-6 6 -6 6])
  grid('on')

end
hold off;


 


jedoch kriege ich die Punkte (iterierten x werte) nicht miteinander Verbunden. Hat jdn. eine Idee?


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 16.03.2013, 17:32     Titel:
  Antworten mit Zitat      
Hallo,

die Punkte in einem Vektor sammeln und dann den Vektor plotten.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
z0Nk

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.03.2013, 15:56     Titel:
  Antworten mit Zitat      
jap das habe ich schon versucht. aber es klappt nicht kann die vektoren nicht in einer variablen speichern. kannst du mir das vllt an meinem beispiel zeigen?
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 17.03.2013, 16:09     Titel:
  Antworten mit Zitat      
Hallo,

und wie sehen diese Versuche aus?

Mir ist nicht klar, wie du die Funktion aufrufen willst, insofern kann ich nur raten.
Code:

alleIterationen = zeros(2,n);
for i=1:1:n
 
  r = b- A*xk;
  alpha=(transpose(r)*r)/(transpose(r)*A*r) ;
  xk=xk+alpha*r
  alleIterationen(:,i) = xk;
  plot(x0(1), x0(2),'r-')
  plot(xk(1), xk(2),'r-')
  hold on;
 
  %axis([-6 6 -6 6])
  grid('on')

end
plot(alleIterationen(1,:), alleIterationen(2,:))


Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
z0Nk

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.03.2013, 16:59     Titel:
  Antworten mit Zitat      
top! funktioniert.. vielen dank.

Mir fehlte einfach noch das Handwerkszeug für die deklaration mit



Code:


hast mir sehr geholfen!
 
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.