查看: 6489|回复: 4|关注: 1

[已解决] 差分方程求解

[复制链接]

新手

9 麦片

财富积分


050


2

主题

7

帖子

0

最佳答案
clear all
q(1)=1;b(1)=1;e=0.1;q(10001)=1;
h=0.1;n=10001;t=0:0.1:1000;
for k=1:n-1   
m=fsolve(@(m)-(q(k)-b(k)*h-h*h*q(k)/2+e*(m-q(k))^2/h),0,optimset('Display','off'));
q(k+1)=subs(m);
b(k+1)=b(k)+h*(q(k+1)+q(k))/2-e*((q(k+1)-q(k))^2)/(h^2);
end
q
format long g
figure(1);
plot(t,q);
xlabel('t'), title ('q')

[size=13.3333px]结果不符合系统变量变化规律,应该为正弦曲线,大家帮我看看。

运行结果

运行结果

方程

方程

论坛优秀回答者

入门

140 麦片

财富积分


50500


0

主题

318

帖子

30

最佳答案
  • 关注者: 7
发表于 2018-9-20 15:46:11 | 显示全部楼层
如图所示的结果?
untitled.jpg

新手

9 麦片

财富积分


050


2

主题

7

帖子

0

最佳答案
 楼主| 发表于 2018-9-21 07:11:35 | 显示全部楼层

对呀,这个结果是对的,您是怎么改的呢?期待中......

论坛优秀回答者

入门

140 麦片

财富积分


50500


0

主题

318

帖子

30

最佳答案
  • 关注者: 7
发表于 2018-9-21 20:01:16 | 显示全部楼层 |此回复为最佳答案
答案如下
clear all
q1=1;b1=1;e=0.1;
h=0.1;n=1000;t=0.1:0.1:100;
for k=1:n
q(k)=q1;
q2=fsolve(@(x) (q1-b1*h-h*h*q1/2+e*(x-q1)^2/h)-x,0,optimset('Display','off'));
b2=b1+h*(q2+q1)/2-e*(q2-q1)^2/h;
q1=q2;
b1=b2;
end
q
figure(1);
plot(t,q);
xlabel('t'), title ('q')

新手

9 麦片

财富积分


050


2

主题

7

帖子

0

最佳答案
 楼主| 发表于 2018-9-21 21:41:03 | 显示全部楼层
wjb986555360 发表于 2018-9-21 20:01
答案如下
clear all
q1=1;b1=1;e=0.1;

非常感谢您的帮助,我已经运行出来结果。:handshake
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /3 下一条

快速回复 返回顶部 返回列表