Also in jedem Schritt(while-Schleife) werden die Zeilenindex i, zwei Vektoren u und v und die Menge der Zeilenindex P erneuert. a wird zum Begin jeder Iteration aus der Input gewählt, und dann von der bereits ausgerechneten Approximationsmatrix (u*v) abgezogen.
In Latex-Sprache heißt es a=a- \sum\limits_{l=0}^k u_l (i) v_l. Nun wie kann man die Summe in einer For-Schleife mit l einpacken. Bisher kann ich nur eine forschleife so vorstellen, in dem man die Laufindex l in die Summe einpacken, z.B.
Eine dumme Idee von mir ist, dass ich die While-Schleife dafür anwende und anstatt Vektoren u und v zwei Matrizen u(i,j) v(i,j) erneuern. Aber da taucht wieder das Problem mit der Aufwand. Also
ich bin mir nicht ganz sicher was du machen willst.
sum ist übrigens ein matlab befehl und sollte nicht überschrieben werden und als variablen name verwendet werden. bringt dir der befehl
ich bin mir nicht ganz sicher was du machen willst.
sum ist übrigens ein matlab befehl und sollte nicht überschrieben werden und als variablen name verwendet werden. bringt dir der befehl
Deinen Latex Code habe ich wie folgt verstanden:
Du multiplizierst jedes Element in der Matrix ul mit dem Wert vl und addierst es auf und dann ziehst du die summe ab von a. Stimmt das?
Deinen Latex Code habe ich wie folgt verstanden:
Du multiplizierst jedes Element in der Matrix ul mit dem Wert vl und addierst es auf und dann ziehst du die summe ab von a. Stimmt das?
Jep, so etwa, wobei u_l, v_l zwei Vektoren sind. Der "l" bei u_l heißt "l"-te Spalte, bei v_l andersrum, "l"-te Zeile.
Also jede Multiplikation u(i)*v heißt eigentlich: u_l(i) die l-te Spalte von u an der Spaltenstelle i(also ein Zahl, da hast du völlig recht) mal v_l also der l-te Zeile. Der Indexzahl i wird bei der while-environment bestimmt und spielt hier keine große Rolle. Eigentlich ist das Problem, dass bei jeder while-Iteration(äußerste Schleife) werden neue u_k, v_k ausgerechnet, und hierfür gespeichert werden. Deshalb denke ich, obwohl auf Paper u,v überhaupt nicht zu speichern brauchen, die sollen durch solche for-schleife automatisch ausgerechnet sein, speicher ich die Vektoren in Matrixform u(:,l) und v(l,. Spalte u_5 kommt zb. in der 5. Spalte in der Matrix u rein rein, Zeile v_3 in der 3. Zeile der Matrix v rein. Nun ist aber das Problem wie speicher ich solche Matrizen? Lade hier mein bisherigen Code hoch und hoffe ihr könnt mir dabei hlefen.
while k <= n
a=M(i,:);
add=0;
temp=k;
while temp >= 1
add=add + u(i,temp)*v(temp,:);
temp=temp-1 ;
end
a=a-add;
P=union(P,i);
ifnorm(a)>10^(-13) [c,j]=max(abs(a));
v(k,:)=1/c*a;
u(:,k)=M(:,j); %[u] Hier schon mal das erste Definitionsproblem[/u]
kemp=k;
sdd=0;
while kemp >=1
sdd=sdd+v(kemp,j)*u(:,kemp);
kemp=kemp-1;
end
u(:,k)=u(:,k)-sdd;
[g,i]=max(abs(u));
ifismember(i,P)==1
g=0;
[g,i]=max(abs(u));
end elsebreak end
k=k+1;
fehl= norm(u(:,k))*norm(v(k,:));
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
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.