关于ode45解微分方程过程中参数传递的问题
我在用ode45解微分方程的时候,需要把一个参数进行传递,但是这个参数又是随时间变化的,不知道可以传递不?因为参数在>0和<0时,微分方程的表达式不一样,所以我想用参数把它传递进去。。。
希望高手可以给予解答!先谢谢了!! 我也在考虑如何向ode函数里面传递变量参数的问题,我们可以讨论一下:
举个二维的例子:
function dx=ode5(t,x)
dx=zeros(2,1);
n=randn(1,1);
dx(1)=(3*x(1)+x(2))+(3*x(1)+0.2*x(2))*n;
dx(2)=x(2)+x(2)*n;
main 函数就是用ode45来解这个微分方程。
这里面n就相当于一个随机数,但是这并不符合我的要求,这个里的n应该代表随机过程,它是随时间的变化而变化的才可以,比如说在main函数里 t=(0:0.1:10),n=randn(1,length(t)).敢问各位大侠,用ODE45解这个问题的时候该怎么描述呢? 看了相关的帖子后,我用如下函数来编写:
function dx=examplemao(t,x,n)
%global n
dx=zeros(2,1);
dx(1)=(3*x(1)+x(2))+(3*x(1)+0.2*x(2))*n;
dx(2)=x(2)+x(2)*n;
主程序:clear
global n
sn=randn(1,1000);
xx=[];
for i=1:length(sn)
n=sn(i);
=ode15s(@examplemao,,,[],n);
xx=;
end
plot(t,x)
但是感觉得到的结果还是不对 请参考http://forum.vibunion.com/forum/viewthread.php?tid=42369&extra=page%3D1%26amp%3Bfilter%3Ddigest
虽然那个帖子主要是讨论参数积分,但是问题都是如何传递参数的问题。里面很多方法都可以借鉴。 谢谢你,我去学习一下
回复 板凳 limengiiii 的帖子
你的解决办法是什么啊
页:
[1]