请教matlab一个问题 function x=agui_bisect(fname,a,b,e)

functionx=agui_bisect(fname,a,b,e)%fname为函数名,a,b为区间端点,e为精度fa=feval(fname,a);fb=feval(... function x=agui_bisect(fname,a,b,e)
%fname为函数名,a,b为区间端点,e为精度
fa=feval(fname,a);
fb=feval(fname,b);
if fa*fb>0 error;
end
k=0
x=(a+b)/2
while(b-a)>(2*e)
fx=feval(fname,x);
if fa*fx<0
b=x;
fb=fx;
else
a=x;
fa=fx;
end
k=k+1
x=(a+b)/2
end完全照抄书了 但还是显示不行 ??? Input argument 'fname' is undefined.Error in ==> C:\MATLAB6p5p1\work\agui_bisect.m
On line 3 ==> fa=feval(fname,a);>>
展开
 我来答
匿名用户
2013-05-21
展开全部
这个是函数,不是直接运行的,要给一些参数,然后在命令行或者其他代码里调用它。比如你可以在命令行运行类似这样的agui_bisect(@sin, 0, 1, 1e-6) 其中agui_bisect是你这个函数保存时的文件名,有时保存的时候跟里面写的不一致,就要以文件名为准。当然,你这个保存的是agui_bisect.m,跟里面function后面定义的是相同的,就没问题了。 @sin是函数的句柄,这里用的是matlab的内部函数,正弦函数。可以用你需要的函数替换。做参数传递时,m文件那种函数需要加@,另外还有种inline函数,那个不加@。 后面还有3个参数,看样子像区间的边界a,b,以及精度e。 这些参数都可以换成别的值试试。 总之这种function开头的m文件,一般都不是直接运行的,大多是需要参数的,要由别的程序来调用。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式