MATLAB二分法求解方程的解

clear,clc
wc=1e-6; %误差大小
f_left=0; %函数左区间
f_right=1; %函数右区间
syms x;
f=x^3+x^2+3*x-4; %函数表达式
n=0; %统计迭代次数
while (f_right-f_left)>wc %小于设定误差
    f_middle=(f_right+f_left)/2; %二分法
    if subs(f,x,f_middle)==0 %如果将新值代入得0,则就是方程解
        x_0=f_middle;
        break
    end
    if subs(f,x,f_middle)*subs(f,x,f_right)<0 %看情况替换
        f_left=f_middle;%用新值替换左区间
    else
        f_right=f_middle;
    end
    n=n+1;
end
x_0=f_middle;
n
x_0

上述代码是求解f=x^3+x^2+3x-4方程的 代码,如需解其他方程,自行替换即可。

你可能感兴趣的