Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
回复
 
主题工具 显示模式
旧 2008-03-12, 18:12   #1
bingolb
初级会员
 
注册日期: 2008-02-21
年龄: 40
帖子: 4
声望力: 0
bingolb 正向着好的方向发展
默认 【求助】ode中创建函数问题

我要用ode45求解一个常微分方程
比如:x'=-x.^2;x(0)=1
创建一个函数并保存文件名为xprimt的m文件

function xprim=xprim1(t,x)
xprim1=-x.^2;

一运行就提示x未定义,x该怎么定义
bingolb 当前离线   回复时引用此帖
旧 2008-03-12, 18:52   #2
shiqiang
高级会员
 
shiqiang 的头像
 
注册日期: 2008-02-26
年龄: 38
帖子: 158
声望力: 25
shiqiang 身上有一圈迷人的光环哦shiqiang 身上有一圈迷人的光环哦shiqiang 身上有一圈迷人的光环哦
默认

你没有发现你定义的函数很奇怪吗,输入变量中还要有个t,但你下面根本没有用到。你看看问题应该是处在这。
__________________
学我想学,用我所学。:lovely:
shiqiang 当前离线   回复时引用此帖
旧 2008-03-12, 19:06   #3
bingolb
初级会员
 
注册日期: 2008-02-21
年龄: 40
帖子: 4
声望力: 0
bingolb 正向着好的方向发展
默认

t去掉后结果还是一样,它只是一个时间变量
bingolb 当前离线   回复时引用此帖
旧 2008-03-12, 19:35   #4
shiqiang
高级会员
 
shiqiang 的头像
 
注册日期: 2008-02-26
年龄: 38
帖子: 158
声望力: 25
shiqiang 身上有一圈迷人的光环哦shiqiang 身上有一圈迷人的光环哦shiqiang 身上有一圈迷人的光环哦
默认

不会呀,你试一下。
去掉m文件中的分号,
>> xprim1(1)

xprim1 =

-1
__________________
学我想学,用我所学。:lovely:
shiqiang 当前离线   回复时引用此帖
旧 2008-03-12, 20:10   #5
bingolb
初级会员
 
注册日期: 2008-02-21
年龄: 40
帖子: 4
声望力: 0
bingolb 正向着好的方向发展
默认

我错了,我一开始就没明白创建函数的意思,我把创建的函数按F5运行,:(
创建的函数在调用的时候会有值传递给函数里的变量,所以创建时不用定义变量,因此单独运行创建的函数肯定会显示变量没有定义
ps:t是不能去掉的,因为我用ode45调用该函数,去掉后ode45没法运行,
可以这样
>> xprim1(1,1)

ans =

-1
t只要随便给一个值就行,反正函数是-x.^2跟t没有关系
一直以来困扰我多日的问题终于解决了,好轻松啊
bingolb 当前离线   回复时引用此帖
回复


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码



所有时间均为北京时间。现在的时间是 12:59


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.