Nun wollte ich ersteinmal eine Funktion schreiben, dir mir das ganze dann löst mit ode45:
Code:
function[x,t] = odeSolver(M,D,S,F,T,x0,RelTol,AbsTol) % Matrices: % M - Mass-Matrix (ASSUMPTION: M not equal to 0) % D - Absorbability-Matrix % S - Stiffness-Matrix % F - Force-Vector % Time-Vector: T; Initial-Value-Vector: x0 % RelTol - Is one vector % AbsTol - Vector with the same size as x0
ich glaube es gibt mehrere Fehler in deinen Überlegungen:
Bereits bei der Definition der DGL passiert der "Hauptfehler". Du hast vergessen den Parameter t für die Zeit zu übergeben; alle DGL Definitionen müssen die Form y'=f(t,y) haben, also besser:
Code:
function y = basicODE(t,x,M,D,S,F)
y=zeros(2,1);
y(1) = x(2);
y(2)=F/M-D/M*x(2)-S/M*x(1);
end
function[x,t] = odeSolver(M,D,S,F,T,x0,RelTol,AbsTol) % Matrices: % M - Mass-Matrix (ASSUMPTION: M not equal to 0) % D - Absorbability-Matrix % S - Stiffness-Matrix % F - Force-Vector % Time-Vector: T; Initial-Value-Vector: x0 % RelTol - Is one vector % AbsTol - Vector with the same size as x0
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.