古詩詞大全網 - 成語查詢 - matlab編程題:用二分法求方程x^3-3*x-1=0的根

matlab編程題:用二分法求方程x^3-3*x-1=0的根

先建立二分法的fun.m文件,代碼如下:

function fun(a,b,e)

%f是自定義的函數

%a為隔根區間左端點,b為隔根區間右端點,e為絕對誤差限

if nargin==2

e=1.0e-6;

elseif nargin<2

input('變量輸入錯誤!');

return;

end

if a>=b

input('隔根區間輸入錯誤!');

return;

end

a1=a;

b1=b;

c1=(a1+b1)/2;

n=0; %叠代計數器,初值為0

while (b-a)/(2^(n)) >= 1/2*e

c1

if f(c1)==0

c1

elseif f(a1)*f(c1)>0

a1=c1;

c1=(a1+b1)/2;

n=n+1;

elseif f(b1)*f(c1)>0

b1=c1;

c1=(a1+b1)/2;

n=n+1;

end

end

n

再建立所要求函數的f.m文件:

function y=f(x)

y=x^3-3*x-1;

運行:fun(-100,100,10^(-4))

-100 100 為根所在該區間,10^(-4)表示精度要求。

結果:c1 =

0

c1 =

50

c1 =

25

c1 =

25/2

c1 =

25/4

c1 =

25/8

c1 =

25/16

c1 =

75/32

c1 =

125/64

c1 =

225/128

c1 =

475/256

c1 =

975/512

c1 =

1925/1024

c1 =

988/529

c1 =

2494/1331

c1 =

640/341

c1 =

1189/633

c1 =

171/91

c1 =

1357/722

c1 =

109/58

c1 =

1013/539

c1 =

701/373

n =

22

最後結果為 701/373

歡迎指錯。