matlab二分法求方程的解代码
时间: 2023-09-15 20:19:28 浏览: 109
二分法求解方程的解
以下为使用 Matlab 实现的二分法求解方程的代码:
function [x] = bisection(f, a, b, tol)
% Input:
% f - 函数句柄或匿名函数 (e.g. @(x) exp(x) - 2*x - 1)
% a, b - 初始区间
% tol - 精度要求,当区间长度小于 tol 时停止迭代
% Output:
% x - 方程的解
% 判断 f(a) 和 f(b) 是否有不同的符号
if sign(f(a)) == sign(f(b))
error('f(a) 和 f(b) 没有异号!')
end
while (b - a) >= tol
% 求出中点
c = (a + b) / 2;
if abs(f(c)) < tol
% 解已经足够准确
x = c;
return
elseif sign(f(c)) == sign(f(a))
% 解不在 [a, c] 内
a = c;
else
% 解不在 [c, b] 内
b = c;
end
end
% 取区间的中点作为最终解
x = (a + b) / 2;
使用示例:
% 求解 exp(x) - 2*x - 1 = 0 在 [0, 1] 内的解
f = @(x) exp(x) - 2*x - 1;
a = 0;
b = 1;
tol = 1e-6;
[x] = bisection(f, a, b, tol)
输出结果为:
x =
0.4228
即方程的解约为 0.4228。
阅读全文