二分法求解方程组的MATLAB代码实现

该代码段介绍了如何使用二分法(Bisection_method)求解方程f(x)=x^3-exp(-x),在给定区间[0,1]内,以绝对误差n=0.5*10^(-3)进行迭代,展示了每一步的解和误差。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

function [T,D]=Bisection_method(f,a,b,n)
% 二分法求解方程
% f为方程
% a,b为区间
% n为绝对误差
format long;
k=0;
c=(a+b)/2;
while abs(b-c)&&abs(a-c)>n    
    if  f(c)==0
        break
    elseif  f(c)*f(a)>0
        a=c;       
    else
        b=c;
    end
    c=(a+b)/2;
    k=k+1;
    d(k)=c;
    e(k)=f(c); 
end
T=[k,c,f(c)];
D=[1:k;d;e];
plot(d,e,'r*')
hold on
line([0 1],[0 0]);
x=linspace(0,1,1000);
y=x.^3-exp(-x);
plot(x,y)
end

 将其存储为Bisection_method.m文件。

命令窗口输入以下命令:

f=@(x)x^3-exp(-x);
a=0;
b=1;
n=0.5*10^(-3);
[T,D]=Bisection_method(f,a,b,n)

结果如下

T =

  10.000000000000000   0.772949218750000   0.000149340042114

D =

   1.000000000000000   0.750000000000000  -0.050491552741015
   2.000000000000000   0.875000000000000   0.253059855321492
   3.000000000000000   0.812500000000000   0.092629643043920
   4.000000000000000   0.781250000000000   0.019003796431511
   5.000000000000000   0.765625000000000  -0.016247869530541
   6.000000000000000   0.773437500000000   0.001250424434990
   7.000000000000000   0.769531250000000  -0.007530414722720
   8.000000000000000   0.771484375000000  -0.003147942264169
   9.000000000000000   0.772460937500000  -0.000950748703868
  10.000000000000000   0.772949218750000   0.000149340042114

D的第一列为迭代次数,第二列为对应的解的结果,第三列为误差

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值