爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 5800|回复: 7

[程序设计] MATLAB解ODE求助

[复制链接]

新浪微博达人勋

发表于 2014-10-3 06:57:45 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
最近刚开始接触MATLAB主要为了搭建一个简单的气候模式,在尝试解ODE组的时候出现了问题。

syms R r a I1 I2 g h1(t) h2(t)
S=dsolve(I1-r^2*sqrt(2*g*h1)-a^2*sqrt(2*g*(h1-h2))==diff(h1),I2-r^2*sqrt(2*g*h2)+a^2*sqrt(2*g*(h1-h2))==diff(h2));

用这个运行显示:“Warning: Explicit solution could not be found. ” 即没有显示解。

数学上来说当这个ODE组有解即稳定,则微分=0,把diff替换成0,做下面这个代替尝试
syms R r a I1 I2 g h1 h2
S=solve(I1-r^2*sqrt(2*g*h1)-a^2*sqrt(2*g*(h1-h2))==0,I2-r^2*sqrt(2*g*h2)+a^2*sqrt(2*g*(h1-h2))==0);
S.h1
S.h2


即可以得到解。

不知道为什么,求教。谢谢!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-10-3 13:30:01 | 显示全部楼层
气候模式不是fortran的吗?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-10-3 14:14:57 | 显示全部楼层
是想说下面那个代数方程有解能说明上面的ODE有解吗?我觉得dsolve作为MATLAB自带的函数不会有问题。

这种东西没有解析解很正常,而且通常不能指望气候模式有解析解,毕竟不是应用题。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 成长值: 32430
发表于 2014-10-3 14:16:55 | 显示全部楼层
说实话,matlab 的符号计算功能很有限,而且这里h1和h2都是隐函数,估计计算机是搞不定的。
楼主如果非常想用符号计算可以试一下mathematic的wolfrom语言。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-10-3 14:31:03 | 显示全部楼层
最近也想解一个很简单的常微分方程。希望和楼主多交流交流!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-10-3 22:02:25 | 显示全部楼层
沙颖凯 发表于 2014-10-3 14:14
是想说下面那个代数方程有解能说明上面的ODE有解吗?我觉得dsolve作为MATLAB自带的函数不会有问题。

这 ...

上下两个方法只是把右边的diff变成0,当h1,h2稳定也就是diff=0的时候就是方程的解。数学上来说是的。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-10-3 22:06:20 | 显示全部楼层
二爷名声在外 发表于 2014-10-3 14:16
说实话,matlab 的符号计算功能很有限,而且这里h1和h2都是隐函数,估计计算机是搞不定的。
楼主如果非常 ...

谢谢提醒,本来准备说用matlab简单,还是老老实实回fortran算。。。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-10-3 22:22:32 | 显示全部楼层
沙颖凯 发表于 2014-10-3 14:14
是想说下面那个代数方程有解能说明上面的ODE有解吗?我觉得dsolve作为MATLAB自带的函数不会有问题。

这 ...

当然我也把符号替换成常数,还是不行
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

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