How to use my numeric array results as input values for an ODE?
2 ビュー (過去 30 日間)
古いコメントを表示
So I have the following code:
n = 10 ;
result = zeros(n,5 );
for k=1:n ;
A0=1;P0=29;g=rand;p=rand;B=rand ;
result(k,:) = [A0,P0,g,p,B ];
end;
Which produces a 10x5 numeric array as the result.
And I'd like to use my results from there as the input values to solve this equation ten times:
tspan=[1 7];
[t,x] = ode45(@(t,x) [-g*x(1) + p*x(1); -x(1)*x(2)+ B*x(2)], tspan, [A0 P0]);
Is this possible?
Thanks in advance!
0 件のコメント
採用された回答
Star Strider
2019 年 6 月 4 日
Try this:
n = 10 ;
result = zeros(n,5 );
for k=1:n ;
A0=1;P0=29;g=rand;p=rand;B=rand ;
result(k,:) = [A0,P0,g,p,B ];
end
for k = 1:size(result,1)
tspan=linspace(0,7,50);
ODE = @(t,x,g,p,B) [-g*x(1) + p*x(1); -x(1)*x(2)+ B*x(2)];
[t,x(:,:,k)] = ode45(@(t,x) ODE(t,x,result(k,3),result(k,4),result(k,5)), tspan, [result(k,1) result(k,2)]);
end
It saves the output to a 3D matrix, as previously.
4 件のコメント
その他の回答 (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!