f(x)=x^3+1.1*x^2+0.9*x-1.4
二分法求近似解
区间为【0,1】
根据参考资料,我们可以使用nargin来获取函数输入参数的个数。下面是一个使用nargin来判断输入参数是否正确的示例代码:
function y = f(x) % 求解函数f(x) % 输入:x % 输出:y
% 判断输入参数个数是否正确 if nargin ~= 1 error('输入参数个数不正确'); end
y = x.^3 + 1.1x.^2 + 0.9x - 1.4;
end
在调用这个函数时,只要输入一个参数即可:
f(0) ans = -1.4000
如果调用这个函数时不输入任何参数,或者输入多个参数,就会报错:
f() Error using f (line 8) 输入参数个数不正确
f(0, 1) Error using f (line 8) 输入参数个数不正确
因此,我们可以通过nargin来判断输入参数个数是否正确,从而进行有效的处理。
function root = bisection_method(f, a, b, eps)
% f是需要求根的函数句柄,a和b分别是区间左右端点,eps是精度要求
% root是近似解
fa = f(a);
fb = f(b);
if fa * fb > 0
error('区间两端函数值符号相同,无法使用二分法求解!');
end
while (b - a) > eps
c = (a + b) / 2;
fc = f(c);
if fc == 0
root = c;
return;
elseif fa * fc < 0
b = c;
fb = fc;
else
a = c;
fa = fc;
end
end
root = (a + b) / 2;
end
% 声明函数句柄
f = @(x) x^3 + 1.1 * x^2 + 0.9 * x - 1.4;
% 调用二分法函数求解
root = bisection_method(f, 0, 1, 0.0001);
disp(root);