Verfasst am: 06.12.2012, 14:45
Titel: Loesung eines nicht linearen Gleichungssystems mit Jacobi
Hallo,
ich bin ganz neu hier und muss sagen ich find des Forum hier spitze!
Nun zu meinem Problem:
Ich moechte in der Uni ein thermodynamisches Problem loesen, bei dem ich ein Gleichungssystem der Form A*x=b erhalte. Der x Vektor enthaelt diverse Temperaturen, Waermestroeme und Druecke an den Orten 1,2,3,..., die ich bestimmen moechte. Die Matrix A enthaelt die zugehoerigen Energiebilanzen und weiteren Gleichungen. Insgesamt erhalte ich 12 Gleichungen fuer 12 Variablen.
Soweit nicht so schwierig.
Da die einzelnen Werte in der Matrix A allerdings von Werten aus x abhaengen, wollte ich eine quasilineare jacobi Iteration machen, bei der nach jeder Iteration die Matrix A neu berechnet wird. (Siehe angehaengter Code)
Dieses Verfahren divergiert allerdings. (Der spektralradius der Iterationsmatrix ist groesser als 1).
Gibt es eine andere Moeglichkeit dieses Problem zu loesen? Oder mache ich was falsch? (Sorry ich bin noch nicht sonderlich fortgeschrittener matlab user)
Danke Schonmal!
Gruesse
Matthias
Hier der Code
Code:
%Properties
R=8.314 %KJ/Kmol K
%geometrical
dm=200E-6; %thickness of membrane in [m]
dh=1E-4;%m
dv=1E-2;
dw=1E-3;
r=0.2E-6% [m]
tau=sqrt(3);
epsilon=0.7; %check that again! this is from technical data for PTFE (in documents)
M=18.01528 %Kg/Kmol
%check rank ifrank(A)~= length(A)
'error: check number of variables and equations'
end
b1=A*x_alt
[L,U,per]=lu(A);
w=eig(A); %Eigenvalues of A
D=diag(w);
d=det(D); %check if the determinante of the eigenvalue matrix is not zero
if d==0
'error: check matrix and the eigenvalues'
end
Di=inv(D);
du kannst den Spektralradius mit Hilfe von Shifts verschieben, oder aber du nimmst einfach fsolve().
Grüße, Marc
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
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.