數值計算方法之1 三種迭代公式對比

2021-10-09 17:05:06 字數 2208 閱讀 5845

matlab的版本為matlab r2019b;這篇筆記的全部內容是基於上課時老師布置的小小小作業;個人能力有限筆記當中難免會有錯誤,如有發現煩請指正,謝謝!

構造3種迭代公式,求解方程x2−

3=0x^2-3=0

x2−3=0

的根x∗=3

x^*=\sqrt3

x∗=3

​,以x0=

2x_=2

x0​=

2分別迭代100次。以下為三種迭代公式:

x k+

1=3x

kx_ =\frac }

xk+1​=

xk​3​xk

+1=x

k+14

(xk2

−3)x_ =x_+\frac (x_^2-3)

xk+1​=

xk​+

41​(

xk2​

−3)xk+

1=12

(xk+

3xk)

x_ =\frac (x_+\frac})

xk+1​=

21​(

xk​+

xk​3

​)

fun1 = @(x)

3./x;

fun2 = @(x) x+1./

4.*(x.^2-

3);fun3 = @(x)1./

2.*(x+3.

/x);

x1 =

zeros(1

,101);

x1(1)

=2;x2 = x1;

x3 = x1;

for i=1:

1:101x1

(i+1)=

fun1(x1

(i));x2

(i+1)=

fun2(x2

(i));x3

(i+1)=

fun3(x3

(i))

;end

myfigure =

figure(1

);clf(myfigure)

myaxes =

axes

("parent"

,myfigure)

;myline1 =

line

(myaxes,0:

1:101,x1)

;myline1.color =

'k';

myline1.linestyle =

'-';

myline1.linewidth =

0.5;

myline2 =

line

(myaxes,0:

1:101,x2)

;myline2.color =

'r';

myline2.linestyle =

'--'

;myline2.linewidth =

0.5;

myline3 =

line

(myaxes,0:

1:101,x3)

;myline3.color =

'b';

myline3.linestyle =

'-.'

;myline3.linewidth =

0.5;

myaxes.fontname =

"宋體"

;myaxes.fontsize =12;

myaxes.xlim =[0

101]

;myaxes.ylim =

[1.55]

;myaxes.xlabel.string =

"迭代次數k"

;myaxes.ylabel.string =

"迭代結果x_k"

;myaxes.box =

"on"

;myaxes.linewidth =

0.5;

leg =

legend

('迭代公式1'

,'迭代公式2'

,'迭代公式3'

)leg.fontname =

"宋體"

從圖中可以明顯看出只有迭代公式3是收斂的,且收斂的速度很快

分拆數的第三種計算方法

我們考慮從 ferrers diagram 的原點引出一條 y x y xy x 的直線,它離開這個圖的位置就框處了乙個 h h h times h h h 的正方形,這個正方形被稱為乙個整數拆分的 durfee square。那麼如果我們確認了正方形的邊長是 h hh,它兩側放置的就都是 h le...

php判斷閏年的三種方法 閏年計算方法

1,php閏年計算方法一 普通年能被4整除而不能被100整除的為閏年。如2004年就是閏年,1900年不是閏年 世紀年能被400整除而不能被3200整除的為閏年。如2000年是閏年,3200年不是閏年 year mt rand 1900,2200 從1900年到2200,可以自己改,也可以給乙個定值...

php判斷閏年的三種方法 閏年計算方法

1,php閏年計算方法一 普通年能被4整除而不能被100整除的為閏年。如2004年就是閏年,1900年不是閏年 世紀年能被400整除而不能被3200整除的為閏年。如2000年是閏年,3200年不是閏年 year mt rand 1900,2200 從1900年到2200,可以自己改,也可以給乙個定值...