ODE Solver with array value parameter
3 ビュー (過去 30 日間)
古いコメントを表示
I need to solve the following differential equations:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/243678/image.png)
where x1 and x2 are the states of the system and y is the input of the system and it is represented by a 1002x1 vector. How is it possible to solve this system of differential equations?
3 件のコメント
Star Strider
2019 年 10 月 21 日
What you describe is not the correct approach, in part because MATLAB uses adaptive ODE solvers, not fixed-step ODE solvers.
採用された回答
Star Strider
2019 年 10 月 21 日
Try this example:
yv = randn(1002,1); % Create ‘y’
tv = 0:numel(yv)-1; % Create Corresponding Time Vector
Eqns = @(t,x,tv,yv) [x(2)-interp1(tv(:), yv(:), t); -3*x(2)-2*x(1)+3*interp1(tv(:), yv(:), t)];
tspan = linspace(0, 10, 50);
ic = [0; 1]; % Use The Correct Initial Conditions
[T, X] = ode45(@(t,x)Eqns(t,x,tv,yv), tspan, ic);
figure
plot(T, X)
grid
Provide your own vectors for ‘y’ (that I call ‘yv’ here) and the time vector (‘tv’ here) that corresponds to it.
Make other appropriate changes to reflect the actual values you intend to use.
3 件のコメント
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Ordinary Differential Equations についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!