声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2239|回复: 9

[编程技巧] 如何求解微分方程x''+sinx=0

[复制链接]
发表于 2007-5-30 15:14 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
x''+sinx=0
用dsolve函数不行啊?
高手帮忙!

[ 本帖最后由 eight 于 2007-5-30 19:06 编辑 ]
回复
分享到:

使用道具 举报

发表于 2007-5-30 16:33 | 显示全部楼层
好像没有显式解析解啊.
 楼主| 发表于 2007-5-30 16:35 | 显示全部楼层

回复 #2 hunter_009 的帖子

那能不能把x关于自变量t的图像作出来呢?我只要图像。
ode45不知道可以解不?我没看过matlab的数值解法内容

[ 本帖最后由 wh1125 于 2007-5-30 16:37 编辑 ]
发表于 2007-5-30 16:37 | 显示全部楼层

回复 #3 wh1125 的帖子

用ode45可以作出数值解,画出图,只要你给出初始条件
 楼主| 发表于 2007-5-30 16:42 | 显示全部楼层

回复 #4 咕噜噜 的帖子

真的吗?初始条件是x(0)=0.5,x'(0)=0
程序怎么写啊?吐噜噜帮忙啊!:handshake

x''+9.8sinx=0
x(0)=0.5,x'(0)=0
整个就是这样的,求解把图出来。:handshake 谢啦!

[ 本帖最后由 ChaChing 于 2010-6-14 09:51 编辑 ]
发表于 2007-5-30 17:01 | 显示全部楼层
help ode45
 楼主| 发表于 2007-5-30 19:24 | 显示全部楼层

搞定了,哈哈!

微分方程:
function xd=hundun(t,x)
xd=[x(2);-9.8*sin(x(1))];

调用部分:
t_final=10; x0=[0.5;0]; [t,x]=ode45('hundun',[0,t_final],x0);
plot(t,x(:,1));

学会用ode45()解非线性微分方程了:))

虽然搞定,还有点不明白
最后那个绘图命令是plot(t,x(:,1))?画的是我的微分方程中的x与自变量t之间的曲线,绘图怎么是x(:,1),程序中的x不是列向量(x;x')吗,这里绘图应该是plot(t,x(1,:))才对啊?

[ 本帖最后由 ChaChing 于 2010-6-14 09:53 编辑 ]
发表于 2007-5-30 21:13 | 显示全部楼层
可能matlab可以自己调整到维数相同吧.
发表于 2007-5-30 21:20 | 显示全部楼层
这个一般不可能,楼主自己调试一下便知道了,估计某个函数的输出与你预想的不同,但刚好和 plot 的另一个变量维数吻合

[ 本帖最后由 ChaChing 于 2010-6-14 09:53 编辑 ]
发表于 2007-6-2 23:12 | 显示全部楼层

对头
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-6-2 12:45 , Processed in 0.094754 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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