Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
|
![]() |
#1 |
初级会员
注册日期: 2008-02-21
年龄: 40
帖子: 4
声望力: 0 ![]() |
![]()
我要用ode45求解一个常微分方程
比如:x'=-x.^2;x(0)=1 创建一个函数并保存文件名为xprimt的m文件 function xprim=xprim1(t,x) xprim1=-x.^2; 一运行就提示x未定义,x该怎么定义 |
![]() |
![]() |
![]() |
#2 |
高级会员
注册日期: 2008-02-26
年龄: 38
帖子: 158
声望力: 25 ![]() ![]() ![]() |
![]()
你没有发现你定义的函数很奇怪吗,输入变量中还要有个t,但你下面根本没有用到。你看看问题应该是处在这。
__________________
学我想学,用我所学。:lovely: |
![]() |
![]() |
![]() |
#3 |
初级会员
注册日期: 2008-02-21
年龄: 40
帖子: 4
声望力: 0 ![]() |
![]()
t去掉后结果还是一样,它只是一个时间变量
|
![]() |
![]() |
![]() |
#4 |
高级会员
注册日期: 2008-02-26
年龄: 38
帖子: 158
声望力: 25 ![]() ![]() ![]() |
![]()
不会呀,你试一下。
去掉m文件中的分号, >> xprim1(1) xprim1 = -1
__________________
学我想学,用我所学。:lovely: |
![]() |
![]() |
![]() |
#5 |
初级会员
注册日期: 2008-02-21
年龄: 40
帖子: 4
声望力: 0 ![]() |
![]()
我错了,我一开始就没明白创建函数的意思,我把创建的函数按F5运行,:(
创建的函数在调用的时候会有值传递给函数里的变量,所以创建时不用定义变量,因此单独运行创建的函数肯定会显示变量没有定义 ps:t是不能去掉的,因为我用ode45调用该函数,去掉后ode45没法运行, 可以这样 >> xprim1(1,1) ans = -1 t只要随便给一个值就行,反正函数是-x.^2跟t没有关系 一直以来困扰我多日的问题终于解决了,好轻松啊 |
![]() |
![]() |