函數fun(a,b,e)
%f是自定義函數。
%a是根區間的左端點,b是根區間的右端點,e是絕對誤差限。
如果nargin==2
e = 1.0e-6;
elseif nargin & lt2
輸入('變量輸入錯誤!');
返回;
結束
如果a & gt=b
輸入(“根區間中的輸入不正確!”);
返回;
結束
a 1 = a;
b 1 = b;
c 1 =(a 1+b 1)/2;
n = 0;%叠代計數器,初始值為0。
while(b-a)/(2^(n))& gt;= 1/2*e
c1
如果f(c1)==0
c1
elseif f(a1)*f(c1)>0
a 1 = c 1;
c 1 =(a 1+b 1)/2;
n = n+1;
elseif f(b1)*f(c1)>0
b 1 = c 1;
c 1 =(a 1+b 1)/2;
n = n+1;
結束
結束
n
然後建立所需功能的f.m文件:
函數y=f(x)
y=x^3-3*x-1;
Run: fun (-100,100,10 (-4))
-100 100是根所在的區間,10 (-4)表示精度要求。
結果:c1 =
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。
歡迎指出錯誤的方法。
另外站長群上有團購產品,便宜又有保障。