Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
回复
 
主题工具 显示模式
旧 2008-10-16, 01:14   #1
xxuffei
初级会员
 
注册日期: 2008-10-16
年龄: 44
帖子: 3
声望力: 0
xxuffei 正向着好的方向发展
默认 大家帮我看一个程序呗,谢了

各位方家好:
我写了一段程序,大家给看看有什么毛病
function y=ceshi(x)
if x>=0
y=1;
else y=0
end
然后把它保存为ceshi.m
接着用数值积分
quad('ceshi',0,1)
这时出现错误
??? Attempted to access y(7); index out of bounds because numel(y)=1.

Error in ==> quad at 71
if ~isfinite(y(7))
这是怎么回事呀?
谢谢!
xxuffei 当前离线   回复时引用此帖
旧 2008-10-16, 10:34   #2
zqh0260
初级会员
 
注册日期: 2008-10-13
年龄: 41
帖子: 11
声望力: 17
zqh0260 正向着好的方向发展
默认 回复: 大家帮我看一个程序呗,谢了

quad采用逼近法来求函数积分,它要求ceshi函数值在数值逼近过程中为一个矩阵,但是原ceshi函数只能得到一个元素,而它用该方法无法求的结果。用int可得到正确积分。
zqh0260 当前离线   回复时引用此帖
旧 2008-10-16, 11:14   #3
xxuffei
初级会员
 
注册日期: 2008-10-16
年龄: 44
帖子: 3
声望力: 0
xxuffei 正向着好的方向发展
默认 回复: 大家帮我看一个程序呗,谢了

谢谢zqh0260。
我用int做过,也不行。如果把quad改为int,会有如下出错信息
??? Function 'ge' is not defined for values of class 'sym'.

Error in ==> ceshi4 at 2
if x>=0。
另外,如果我把上面那段程序改为
function y=ceshi(x)
if x>=0
y=x;
else y=0
end
然后运行quad('ceshi',0,1)则完全没有问题。
很奇怪。
xxuffei 当前离线   回复时引用此帖
旧 2008-10-16, 22:23   #4
xiezhh
普通会员
 
注册日期: 2007-08-07
帖子: 64
声望力: 20
xiezhh 是一个将要出名的人
默认 回复: 大家帮我看一个程序呗,谢了

用不着那么麻烦

quad('x>=0',0,1)

ans =

1
xiezhh 当前离线   回复时引用此帖
回复

主题工具
显示模式

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

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



所有时间均为北京时间。现在的时间是 17:32


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