1. 程式人生 > >matlab第二章上機作業

matlab第二章上機作業

Aitken加速數值實驗

實驗1:

(1)用不動點迭代法求fx=x3-x-1=0的根。至少設計兩種迭代格式,一個收斂一個發散,ε=10-12

(2)對迭代格式採用Aitken加速觀察斂散性變化。

實驗2:

  1. fx=3x2-ex=0,分析其有根區間。
  2. x=φx=lnx2+ln3,取x0=3.5,1,-0.5進行計算,對比直接計算與Aitken加速的結果。
  3. 設計更多的x=φx,採用更多的初值,重複(2)的操作。

通過以上兩個實驗,你對Aitken加速有了什麼樣的認識?

解實驗1:

(1)

由圖可知,fx=x3-x-1=0在(1,2)有唯一解。而f'x=3x2-1,當x<-1時,f

'x>0x>2時,f'x>0

迭代格式1:xk+1=xk3-1

程式如下:

      

結果如下:

迭代格式1發散。

迭代格式2:xk+1=3xk+1

結果如下:

迭代34次達到要求誤差,收斂於1.32472

(2)

       對迭代格式1:xk+1=xk3-1使用Aitken加速

    結果如下:

       對迭代格式2:xk+1=3xk+1使用Aitken加速

    結果如下:

解實驗2:

(1)

             

如圖所示:fx=3x2-ex=0分別在(-1,0)、(0,2)和(3,4)之間存在唯一根。X<-1時,f

'x=6x-ex<0,x>4時,f'x=6x-ex<0,所以其他區間不存在根。

(2)

使用直接計算程式如下:

Atiken加速程式如下:

兩種計算結果對比如下:

   

初值為1.0,使用直接計演算法迭代50次達到計算精度,使用Aitken加速法迭代7次達到計算精度。

        

初值為3.5,使用直接計演算法迭代41次達到計算精度,使用Aitken加速法迭代5次達到計算精度。

     

初值為-1.0,使用直接計演算法迭代49次達到計算精度,使用Aitken加速法迭代4次達到計算精度。

(3)

       取迭代格式為:

φx=-e

x-ln⁡(3)2,  &x<0ex-ln⁡(3)2,  &x≥0

       直接計演算法程式如下:

       使用Aitken加速法程式如下:

兩種計算結果對比如下:

初值為1.0時,直接計演算法迭代32次x32=0.9100075724897779

                       Aitken加速法迭代3次x3=0.9100075724887089

初值為3.5時,直接計演算法迭代40次x40=0.9100075724900062

                       Aitken加速法迭代5次x5=3.7330790286328144

初值為-1.0時,直接計演算法迭代17次x17=-0.4589622675363961

                       Aitken加速法迭代3次x3=-0.4589622675369486

一、從實驗一可知,對於直接計收斂的迭代格式,運用Aitken加速法可以使其收斂,但不能起到加速法作用。

二、直接計演算法可能無法求得相應區間的根,Aitken可以求得相應區間的根。

三、和其他演算法相比,使用Aitken加速法,可以收斂的迭代格式迅速逼近準確解。