seven3069 发表于 2016-10-12 23:05

用对分法解超越方程

范例:用对分法求方程http://latex.codecogs.com/gif.latex?%5Cinline%20e%5E%7Bx%7D+10x-2%3D0在(0,1)内的根,要求误差不超过0.1;
求解程序如下:clear;clc;close
% n=input('请输入迭代次数:');
% qujian=input('请输入初始区间:');
n=100;
wucha=0.005;
qujian=;
a(1)=qujian(1);
b(1)=qujian(2);  
a0=a(1);
b0=b(1);
x=qujian;
y=exp(x)+10*x-2;
y1=y(1);  %小于0
y2=y(2);  %大于0
for i=1:n   %总迭代次数
    c(i)=(a+b)/2;
    f(i)=exp(c(i))+10*(c(i))-2;
    kesai_k(i)=(b-a)/2;
    if f(i)>0
        b=c(i);
        b1(i)=c(i);
        a1(i)=a;
    elseif f(i)<0
        a=c(i);
        a1(i)=c(i);
        b1(i)=b;
    elseif f(i)==0||kesai_k(i)<=wucha
        disp('精确值解为:');
        disp(c(i));
        break;
    end
end
disp('迭代次数:');
fprintf('%d次\n\n',n);
fprintf('要求误差%f\n\n',wucha);
disp('输出矩阵为:');
A=';
B=';
format long
data_out=
xlswrite('二分法处理数据.xls',data_out);结果输出情况:精确值解为:
    0.0905

迭代次数:
100次

要求误差0.005000

输出矩阵为:

data_out =

                   0   1.000000000000000   0.500000000000000   4.648721270700128   0.500000000000000
                   0   0.500000000000000   0.250000000000000   1.784025416687741   0.250000000000000
                   0   0.250000000000000   0.125000000000000   0.383148453066826   0.125000000000000
                   0   0.125000000000000   0.062500000000000  -0.310505541082140   0.062500000000000
   0.062500000000000   0.125000000000000   0.093750000000000   0.035785140307826   0.031250000000000
   0.062500000000000   0.093750000000000   0.078125000000000  -0.137492192550960   0.015625000000000
   0.078125000000000   0.093750000000000   0.085937500000000  -0.050886782461907   0.007812500000000
   0.085937500000000   0.093750000000000   0.089843750000000  -0.007559167670695   0.003906250000000
   0.089843750000000   0.093750000000000   0.091796875000000   0.014110895592678   0.001953125000000
   0.089843750000000   0.091796875000000   0.090820312500000   0.003275341789827   0.000976562500000
   0.089843750000000   0.090820312500000   0.090332031250000  -0.002142043419492   0.000488281250000
   0.090332031250000   0.090820312500000   0.090576171875000   0.000566616557439   0.000244140625000
   0.090332031250000   0.090576171875000   0.090454101562500  -0.000787721586963   0.000122070312500
   0.090454101562500   0.090576171875000   0.090515136718750  -0.000110554553871   0.000061035156250
   0.090515136718750   0.090576171875000   0.090545654296875   0.000228030491991   0.000030517578125
   0.090515136718750   0.090545654296875   0.090530395507813   0.000058737841614   0.000015258789063
   0.090515136718750   0.090530395507813   0.090522766113281  -0.000025908387990   0.000007629394531
   0.090522766113281   0.090530395507813   0.090526580810547   0.000016414718847   0.000003814697266
   0.090522766113281   0.090526580810547   0.090524673461914  -0.000004746836563   0.000001907348633
   0.090524673461914   0.090526580810547   0.090525627136230   0.000005833940644   0.000000953674316
   0.090524673461914   0.090525627136230   0.090525150299072   0.000000543551916   0.000000476837158
   0.090524673461914   0.090525150299072   0.090524911880493  -0.000002101642354   0.000000238418579
   0.090524911880493   0.090525150299072   0.090525031089783  -0.000000779045227   0.000000119209290
   0.090525031089783   0.090525150299072   0.090525090694427  -0.000000117746657   0.000000059604645
   0.090525090694427   0.090525150299072   0.090525120496750   0.000000212902629   0.000000029802322
   0.090525090694427   0.090525120496750   0.090525105595589   0.000000047577986   0.000000014901161
   0.090525090694427   0.090525105595589   0.090525098145008  -0.000000035084336   0.000000007450581
   0.090525098145008   0.090525105595589   0.090525101870298   0.000000006246825   0.000000003725290
   0.090525098145008   0.090525101870298   0.090525100007653  -0.000000014418755   0.000000001862645
   0.090525100007653   0.090525101870298   0.090525100938976  -0.000000004085965   0.000000000931323
   0.090525100938976   0.090525101870298   0.090525101404637   0.000000001080430   0.000000000465661
   0.090525100938976   0.090525101404637   0.090525101171806  -0.000000001502767   0.000000000232831
   0.090525101171806   0.090525101404637   0.090525101288222  -0.000000000211169   0.000000000116415
   0.090525101288222   0.090525101404637   0.090525101346429   0.000000000434631   0.000000000058208
   0.090525101288222   0.090525101346429   0.090525101317326   0.000000000111731   0.000000000029104
   0.090525101288222   0.090525101317326   0.090525101302774  -0.000000000049719   0.000000000014552
   0.090525101302774   0.090525101317326   0.090525101310050   0.000000000031006   0.000000000007276
   0.090525101302774   0.090525101310050   0.090525101306412  -0.000000000009357   0.000000000003638
   0.090525101306412   0.090525101310050   0.090525101308231   0.000000000010825   0.000000000001819
   0.090525101306412   0.090525101308231   0.090525101307321   0.000000000000734   0.000000000000909
   0.090525101306412   0.090525101307321   0.090525101306866  -0.000000000004311   0.000000000000455
   0.090525101306866   0.090525101307321   0.090525101307094  -0.000000000001789   0.000000000000227
   0.090525101307094   0.090525101307321   0.090525101307207  -0.000000000000527   0.000000000000114
   0.090525101307207   0.090525101307321   0.090525101307264   0.000000000000103   0.000000000000057
   0.090525101307207   0.090525101307264   0.090525101307236  -0.000000000000212   0.000000000000028
   0.090525101307236   0.090525101307264   0.090525101307250  -0.000000000000054   0.000000000000014
   0.090525101307250   0.090525101307264   0.090525101307257   0.000000000000025   0.000000000000007
   0.090525101307250   0.090525101307257   0.090525101307254  -0.000000000000015   0.000000000000004
   0.090525101307254   0.090525101307257   0.090525101307255   0.000000000000005   0.000000000000002
   0.090525101307254   0.090525101307255   0.090525101307255  -0.000000000000005   0.000000000000001
   0.090525101307255   0.090525101307255   0.090525101307255                   0   0.000000000000000
页: [1]
查看完整版本: 用对分法解超越方程