作业帮 > 综合 > 作业

非线性随机常微分方程的matlab模拟

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/05/10 03:36:37
非线性随机常微分方程的matlab模拟
用matlab应该怎么写?微分方程为:
dx/dt=x-(x^3/3)-y
dy/dt=x+a+εw
其中w是白噪声,ε是噪声的强度
我想用matlab画出这个微分方程的关于初值问题的解的轨线的数值模拟,并根据模拟研究解的收敛性质,应该怎样操作?
还需要知道时间t的范围和xy的初值
还有各个参数的具体的值
再问: 。。。我知道,先当参数用可以么。。。我想知道怎么去写,用参数带着就行。以及研究收敛性质的话需要选好初始点后跑一段时间再开始间隔时间打点,这个如何操作啊?
再答: clear all
clca=1;
e=1;
w=1;
f=@(t,y)([y(1)-y(1)^3/3-y(2);y(1)+a+e*w]);
[t Y]=ode45(f,[0 1000],[0 0]);
plot(Y(:,1),Y(:,2))
xlabel('x'),ylabel('y')

再问: 恩谢谢,那我想取定步长,假如从第100秒开始打点,然后每隔1秒打一个点,应该怎么做啊?
再答: [0 1000]改成100:500,表示从100到500每一秒计算出一组xy
再问: 前面那个不对诶,w是一个高斯白噪声,不是数值参数
再答: 反正εw的值必须是一个跟时间无关的常数
程序需要改一下:
clear all
clca=1;
e=1;
w=1;
f=@(t,y)([y(1)-y(1)^3/3-y(2);y(1)+a+e*w]);
[t Y]=ode45(f,0:1000,[0 0]);
figure(1)
plot(t,Y(:,1),t,Y(:,2)),legend('x','y')
figure(2)
plot(Y(100:end,1),Y(100:end,2),'.')
xlabel('x'),ylabel('y')

计算结果为:

收敛于点(-2,2/3)