實驗一、誤差分析
誤差問題是數值分析的基礎,又是數值分析中乙個困難的課題。在實際計算中,如果選用了不同的演算法,由於捨入誤差的影響,將會得到截然不同的結果。因此,選取演算法時注重分析捨入誤差的影響,在實際計算中是十分重要的。
同時,由於在數值求解過程中用有限的過程代替無限的過程會產生截斷誤差,因此演算法的好壞會影響到數值結果的精度。
一、實驗目的
1、 通過上機程式設計,複習鞏固matlab語言;
2、 通過上機計算,了解誤差有關概念;
3、 通過上機計算,了解捨入誤差所引起的數值不穩定性。
二、演算法例項
例1 用求在處導數的近似值。
取,, =0.000 000 000 000 001和=0.000 000 000 000 000 1分別用matlab軟體計算,取小數點後十五位數字計算。
例2 分別求方程組在下列情況時的解,其中.
(通過此例說明)
(1); (2).
例3 求數的近似值。
例4 求數的近似值。
例5 請在16位十進位制數值精度計算機上利用軟體matlab計算下面的兩個數
將計算結果與準確值比較,解釋計算結果。
例6 對,計算定積分
.演算法1:利用遞推公式
取 .
演算法2:利用遞推公式
注意到,
取 .
思考:從計算結果看,哪個演算法是不穩定的,哪個演算法是穩定的。
解答部分
例1 用求在處導數的近似值。
取,, =0.000 000 000 000 001和=0.000 000 000 000 000 1分別用matlab軟體計算,取小數點後十五位數字計算。
解: 在matlab工作視窗輸入下面程式
>>a=3;h=0.1;y=log(a+h)-log(a);yx=y/h
執行後得
yx = 0.32789822822991.
將此程式中改為0.000 1,執行後得
yx = 0.33332777790385.
後者比前者好。再取h = 0.000 000 000 000 001,執行後得
yx = 0.44408920985006,
不如前者好。取h = 0.000 000 000 000 000 1,執行後得
yx = 0,
算出的結果反而毫無價值。
例2 分別求方程組在下列情況時的解,其中.
(通過此例說明)
(1); (2).
解: (1) 首先將方程組化為同解方程,然後在matlab工作視窗輸入程式
>> b=[2,2]';a=[1,1;1,1.01]; x=a\b
執行後輸出當時,的解為;
(2)同理可得,當時,的解為.
例3 求數的近似值。
解 (1)直接用matlab命令
>> x=(7^15)*(sqrt(1+8^(-19))-1)
執行後輸出結果
x = 0.
問題出現在兩個相近的數與相減時,計算機執行程式
>>sqrt(1+8^(-19))-1
執行後輸出結果
ans = 0.
由於計算機硬體只支援有限位機器數的運算,因此在計算中可能引入和傳播捨入誤差.因為有效數字的嚴重損失,導致輸出的結果為0,計算機不能再與數繼續進行真實的計算,所以,最後輸出的結果與的精確值不符。
(2)如果化為
,再用matlab命令
>> x=(7^15)*( (8^(-19))/(sqrt(1+8^(-19))+1))
執行後輸出結果
x = 1.6471e-005
這是因為化為後,計算機執行程式
>> x= (8^(-19))/(sqrt(1+8^(-19))+1)
執行後的結果為
x =3.4694e-018
由於有效數字的損失甚少,所以運算的結果再與繼續計算,最後輸出的結果與的精確值相差無幾。
例4 求數的近似值。
解 (1)直接用matlab程式
>> x=30;x1= sqrt(x^2-1)
執行後輸出結果
x1 = 29.9833
輸入matlab程式
>> x=30; x1=29.9833;y=log(x-x1)
執行後輸出結果
y = -4.0923
(2)因為中的很大,如果採用倒數變換法
,即.輸入matlab程式
>> x=30;y=-log(x+sqrt(x^2-1))
執行後輸出結果
y = -4.0941
(3)輸入matlab程式
>> x=30; y=log(x-sqrt(x^2-1))
執行後輸出結果
y = -4.0941
可見,(2)計算的近似值比(1)的誤差小。
參加計算的數,有時數量級相差很大.如果不注意採取相應的措施,在它們的加減法運算中,絕對值很小的那個數經常會被絕對值較大的那個數「吃掉」,不能發揮其作用,造成計算結果失真。
例5 請在16位十進位制數值精度計算機上利用軟體matlab計算下面的兩個數
和將計算結果與準確值比較,解釋計算結果。
解在matlab工作視窗輸入下面程式
>> x=1111110.1+0.3, y=1111111111111111+0.1+0.3
執行後輸出結果
x = 1.111111*********e+014,y =1.111111*********e+015
從輸出的結果可以看出,x,而y.為什麼僅僅比多一位1,而y呢?
這是因為計算機進行運算時,首先要把參加運算的數寫成絕對值小於1而「階碼」相同的數,這一過程稱為數的「對階」。在16位十進位制數值精度計算機上利用軟體matlab計算這兩個數,把運算的數寫成浮點規格化形式為
在16位十進位制數值精度計算機上,三項的數都表示為小數點後面16位數字的數與之積,所以,計算機沒有對數進行截斷,而是按原來的三個數進行計算。因此,計算的結果。而
三項的數都表示寫成絕對值小於1而「階碼」都為的數以後,第一項的純小數的小數點後面有16位數字.但是,後兩項數的純小數的小數點後面有17位數字,超過了16位十進位制數值精度計算機的儲存量,計算機對後兩項的數都進行截斷最後一位,即後兩項的數都是16位機上的零,再進行計算,所以計算結果與實際不符。
三、實驗任務
對,計算定積分
.演算法1:利用遞推公式
取 .
s0=log(6/5);
>> for n=1:20
s0=1/n-5*s0;
s(n)=s0;end
>> s'
演算法2:利用遞推公式
注意到,
取 .
思考:從計算結果看,哪個演算法是不穩定的,哪個演算法是穩定的。
第一章績效
1.1 什麼是績效?1.1.1 績效問題的提出 了解組織的目標是否實現,實現的程度如何,需要引入一種評價手段,評價的物件就是績效。管理者需要了解員工工作的成果 工作行為以及員工的潛力。員工希望得到關於工作的反饋,以指導自身職業技能的提高和職業生涯的發展。管理學者希望找到一種理想的管理方法,能夠兼顧組...
第一章 證明
三角形的性質與判定 證明方法 綜合法 反證法 綜合法 審題 找出已知 求證的各量之間的關係 分析解題思路 一般採用逆向思考,即從結論入手,追溯結論成立的理由。書寫推理過程,從已知入手,將分析過程倒著寫出來 反證法 在證明時,先假設命題的結論不成立,然後推導出與定義 公理 已證定理或已知條件相矛盾的結...
第一章證明
1 你能證明它嗎 專題一三角形全等的性質及判定 1.如圖,點b c e在同一條直線上,abc與 cde都是等邊三角形,則下列結論不一定成立的是 a ace bcdb bgc afc c dcg ecfd adb cea 2.如圖,abc的高bd ce相交於點o 請你新增一對相等的線段或一對相等的角的...