matlab编了个函数死活说语句无效,debug无能求大神指点,
来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/11/18 12:55:42
matlab编了个函数死活说语句无效,debug无能求大神指点,
function bisect_sub(f,a,b,eps,N)
u=zeros(1,N);
v=zeros(1,N);
k=1;
p=a+(b-a)/2;
q=a;
while abs(p-q)0)
a=p;
f1=fp;
q=p;
u(k)=p;v(k)=fp;
p=a+(b-a)/2;
elseif(f2*fp>0)
b=p;
f2=fp;
q=p;
u(k)=p;v(k)=fp;
p=a+(b-a)/2;
end
fprintf('k=%d,x(%d)=%14.12e,y(%d)=%18.12e\n',k,k,u(k),k,v(k))
k=k+1;
end
end
function bisect_sub(f,a,b,eps,N)
u=zeros(1,N);
v=zeros(1,N);
k=1;
p=a+(b-a)/2;
q=a;
while abs(p-q)0)
a=p;
f1=fp;
q=p;
u(k)=p;v(k)=fp;
p=a+(b-a)/2;
elseif(f2*fp>0)
b=p;
f2=fp;
q=p;
u(k)=p;v(k)=fp;
p=a+(b-a)/2;
end
fprintf('k=%d,x(%d)=%14.12e,y(%d)=%18.12e\n',k,k,u(k),k,v(k))
k=k+1;
end
end
subs作用是对变量进行替换,f的表达式是什么,这里并没有定义,然后subs(f,x,a)说明f中包含x吗?
再问: 我在命令窗口输入 syms x f=x.^3-x.^2-x-1; bisect_sub(f,1,2,1e-4) 就是没办法出来。。。。
再答: lz是想用二分法解方程,但是while循环的条件错了,应该是abs(p-q)>eps!否则取法循环,所以程序没有运行就终止了
再问: 我在命令窗口输入 syms x f=x.^3-x.^2-x-1; bisect_sub(f,1,2,1e-4) 就是没办法出来。。。。
再答: lz是想用二分法解方程,但是while循环的条件错了,应该是abs(p-q)>eps!否则取法循环,所以程序没有运行就终止了