我为Bisection Method编写了以下代码:
f1=input('Enter the equation:','s');
f=inline(f1);
e1=input('Enter the first end:');
e2=input('Enter the first end:');
acc=input('Enter the accuracy:');
disp('*******************************');
m=(e1+e2)/2;
i=0;
while abs(f(m))>acc
i=i+1;
fprintf('%d)\t%f\tf(x)=%f\n',i,m,f(m));
if (f(m)*f(e2))<0
e1=m;
else
e2=m;
end
m=(e1+e2)/2;
end
fprintf('%d)\t%f\tf(x)=%f\n',i,m,f(m));
disp ('************************');
fprintf('The root of equation by bisection method (Accuracy Type) = %f\n',m);
这适用于一些简单的方程式(Ex; x^2-6
),但它不适用于复杂的方程式,例如:e-x(3.2 sin(x) - 0.5 cos(x))
的区间[3, 4]
。
我收到以下错误:
答案 0 :(得分:0)
错误的原因是你错过了一些乘法符号(*
)而e
不是任何内置变量。
您输错了e-x(3.2 sin(x) - 0.5 cos(x))
。它意味着像这样输入:
exp(1) - x*(3.2*sin(x) - 0.5*cos(x))
除此之外,在代码的第4行,您可能需要改为写下:
e2=input('Enter the last end:');
即 last
而不是 first