matlab!Input argument "f" is undefined.Error in ==> agui_bis
来源:学生作业帮 编辑:神马作文网作业帮 分类:综合作业 时间:2024/11/12 05:43:03
matlab!Input argument "f" is undefined.Error in ==> agui_bisect at 3 fa=feval(f,a);
function x=agui_bisect(f,a,b,e)
fa=feval(f,a);
fb=feval(f,b);
if fa*fb>0
error('两端函数值为同号');
end
k=0
x=(a+b)/2
while(b-a)>(2*e)
fx=feval(f,x);
if fa*fx
function x=agui_bisect(f,a,b,e)
fa=feval(f,a);
fb=feval(f,b);
if fa*fb>0
error('两端函数值为同号');
end
k=0
x=(a+b)/2
while(b-a)>(2*e)
fx=feval(f,x);
if fa*fx
agui_bis" />
从功能上看,这个是二分法求根的程序.程序自身没有太大问题,楼主遇到的错误是因为直接从编辑器里面点运行了吧?
这个程序必须要提供具体的输入参数才可以:第一个参数是待求根的函数,第二、三个是根的区间,第四个是精度.
示例(求函数f(x)=1-x^2在0-3区间的根,程序保存为文件agui_bisect.m):
>> f=inline('1-x^2');
>> agui_bisect(f,0,3,1e-6)
ans =
0.999999761581421
但需要注意,这个函数有个BUG,如果区间的中点刚好就是函数的根,则算法没有终止,继续计算下去而得到错误的结果:
>> f=inline('1-x^2');
>> agui_bisect(f,0,2,1e-6)
ans =
1.99999904632568
要改正这个BUG,加入一行代码即可:
function x=agui_bisect(f,a,b,e)
fa=feval(f,a);
fb=feval(f,b);
if fa*fb>0
error('两端函数值为同号');
end
k=0;
x=(a+b)/2;
while(b-a)>(2*e)
fx=feval(f,x);
if abs(fx) <= eps, break, end
if fa*fx<0
b=x;
fb=fx;
else
a=x;
fa=fx;
end
k=k+1;
x=(a+b)/2;
end
此时求解就没问题了:
>> f=inline('1-x^2');
>> agui_bisect(f,0,2,1e-6)
ans =
1
>> agui_bisect(f,0,3,1e-6)
ans =
0.999999761581421
这个程序必须要提供具体的输入参数才可以:第一个参数是待求根的函数,第二、三个是根的区间,第四个是精度.
示例(求函数f(x)=1-x^2在0-3区间的根,程序保存为文件agui_bisect.m):
>> f=inline('1-x^2');
>> agui_bisect(f,0,3,1e-6)
ans =
0.999999761581421
但需要注意,这个函数有个BUG,如果区间的中点刚好就是函数的根,则算法没有终止,继续计算下去而得到错误的结果:
>> f=inline('1-x^2');
>> agui_bisect(f,0,2,1e-6)
ans =
1.99999904632568
要改正这个BUG,加入一行代码即可:
function x=agui_bisect(f,a,b,e)
fa=feval(f,a);
fb=feval(f,b);
if fa*fb>0
error('两端函数值为同号');
end
k=0;
x=(a+b)/2;
while(b-a)>(2*e)
fx=feval(f,x);
if abs(fx) <= eps, break, end
if fa*fx<0
b=x;
fb=fx;
else
a=x;
fa=fx;
end
k=k+1;
x=(a+b)/2;
end
此时求解就没问题了:
>> f=inline('1-x^2');
>> agui_bisect(f,0,2,1e-6)
ans =
1
>> agui_bisect(f,0,3,1e-6)
ans =
0.999999761581421
matlab!Input argument "f" is undefined.Error in ==> agui_bis
MATLAB 程序错误?Input argument "f" is undefined.Error in ==> jun
matlab错误:Input argument "x" is undefined.Error in ==> overla
matlab程序运行出现?Input argument "x" is undefined.Error in ==> my
MATLAB报错,为什么?Input argument "x" is undefined.Error in ==> m1
matlab?Input argument "a" is undefined.
MATLAB:Input argument "x" is undefined
matlab老是显示input argument '' is undefined
MATLAB:Input argument "x" is undefined.
matlab问题?Input argument 'X' is undefined.
matlab ? Input argument "t" is undefined.
matlab Input argument "x" is undefined.