數值分析小考
範圍:求方程式的值、求解方程式的值、解線性聯立方程式 問答題:
1. 請問對於解多項式 P(x)=3x4+2x3+2x2-4x+3 於 x=0.5 時,此多項式的值為何的問題所用的下列三種作 法中,何者運算的次數最少?
方法一:(直接代入法)
P(0.5)=3*(0.5)4+2*(0.5)3+2*(0.5)2-4*(0.5)+3
方法二:(先將次方運算求出並保留備用,再代入求解) A2 = 0.5*0.5
A3 = 0.5*A2 A4 = 0.5*A3
P(0.5)=3*A4+2*A3+2*A2-4*(0.5)+3 方法三:(巢狀乘法)
將 P(x)重新整理成下列形式:
P(x)=3+x(-4+x(2+x(2+3x))) 然後代入 x=0.5
Ans.:
方法三
2.下列哪一個 java 類別正確實作以巢狀乘法的方式求出 P(x)= 3x4-3x3+5x2-4x+7 的值?
(a) public final class Poly {
public static double value( double x ){
return 3.0*x*x*x*x-3.0*x*x*x+5.0*x*x-4.0*x+7;
} }
(b) public final class Poly {
public static double value( double x ){
return (7.0+x*(-4.0+x*(5.0+x*(-3.0+3*x))));
} }
(c) public final class Poly {
public static double value( double x ){
double x2,x3,x4;
x2=x*x;
x3=x*x2;
x4=x*x3;
return 3.0*x4-3.0*x3+5.0*x2-4.0*x+7.0;
} }
Ans.: (b)
3. 機器常數(machine epsilon),以 ϵmach表示,其值為 1 和比 1 大的最小浮點數之間的距離。以下表 格為 IEEE 754 浮點數標準中各部份所佔的位元數:
精準度類型 符號部分(sign) 指數部分(exponent) 假數部分(mantissa)
單精準(single) 1 8 23
雙精準(double) 1 11 52
長倍精準(long-double) 1 15 64
請問依據 IEEE 754 浮點數標準,單精準度下,ϵmach的值為何?
Ans.: 2-23
4. 對於一個二進位實數+1.010111,若只要表示到該數值的小數點後第三位。當採用截去法(chopping) 時,結果的值為多少?
Ans.: +1.010
5. 對於一個二進位實數+1.010111,若只要表示到該數值的小數點後第三位。當採用捨入法(rounding) 時,結果的值為多少?
Ans.: +1.011
6. IEEE 754 對於雙精準度所採取的捨取最近數規則(Rounding to Nearest Rule)為:如果小數點後第 53 位 元為 0 就捨去(截去第 52 位元以後各位數),如果第 53 位元為 1 就進位(將第 52 位元加 1),但是若當 第 53 位元以後全部都是 0,則只有在第 52 位元為 1 時,才要加 1。
請問依此規則下列數值在 IEEE 754 雙精準度下,其小數點後第 51 和 52 位數的值應該為何?
(a) +1.0000000001000000000100000000010000000001000000000101000000×23. (b) +1.0000000001000000000100000000010000000001000000000101000001×23. (c) +1.0000000001000000000100000000010000000001000000000100000000×23.
Ans.:
(a) 10, 因為 +1.0000000001000000000100000000010000000001000000000110×23. (b) 01, 因為 +1.0000000001000000000100000000010000000001000000000101×23. (c) 00, 因為 +1.0000000001000000000100000000010000000001000000000100×23.
7. 請問當描述近似解精確到 p 位小數,是指誤差小於多少?
Ans.: 0.5*10-p
8. 當使用二分法求解方程式的根,若解是在區間[a,b]內,並以此區間為初始區間,則經過 n 步的二 分法迭代,其解的誤差(取絕對值)小於多少?函數值計算的次數等於多少?
Ans.:
解的誤差(取絕對值) 小於 (b-a)/(2n+1) 函數值計算的次數 等於 n+2
9. 若用二分法求解 f(x)=cos(x)-x 在區間[0,1]的近似根,要求要精確到 5 位小數,請問二分法的迭代次 數為何?
Ans.: 0.5*10-5>(1-0)/ 2n+1) => n > 5/(log102)
10. 要求一個方程式的根,請問下列方法中哪些可以使用?(a)二分法(Bisect)。(b)定點迭代法 (Fixed-Point Iteration)。(c)牛頓法(Newton-Raphson method)。(d)割線法(secant method)。(e)假位法 (Requla Falsi Method, Method of False Position)。(e)逆二次插值法(Inverse Quadratic Interpolation)。(f) 布蘭特法(Brent’s method)。
Ans.: All
11. 已知 f(x)=x3-8,若要使用迭代法求 f(x)的根 r,也就是 f(r)=0。則請寫出適當的 g(x)使其滿足 x=g(x) 的關係。(hint: x = 8 / ? )
12. 對於迭代法,若採用絕對誤差的停止準則(stopping criterion),則下列何者適用?
(a) |xi+1 – xi | < TOL
(b) |xi+1 – xi |/|xi+1 | < TOL
(c) |xi+1 – xi |/max(|xi+1|,θ ) <TOL, where θ >0.
Ans.: (a)
13. 對於迭代法,若採用相對誤差的停止準則(stopping criterion),則下列何者適用?
(a) |xi+1 – xi | < TOL
(b) |xi+1 – xi |/|xi+1 | < TOL
(c) |xi+1 – xi |/max(|xi+1|,θ ) <TOL, where θ >0.
Ans.: (b)
14. 對於迭代法,若採用混合絕對與相對誤差的停止準則(stopping criterion),則下列何者適用?
(a) |xi+1 – xi | < TOL
(b) |xi+1 – xi |/|xi+1 | < TOL
(c) |xi+1 – xi |/max(|xi+1|,θ ) <TOL, where θ >0.
Ans.: (c)
15. 已知方程式 f(x)=x-4,x=4 為一個正確的根,若用某方法求出的近似根為 3.4。請問此近似解的後 向誤差(backward error)的值為何?
Ans.: |3.4-4|=0.6
16. 已知方程式 f(x)=x-2,x=2 為一個正確的根,若用某方法求出的近似根為 2.4。請問此近似解的前 向誤差(forward error)的值為何?
Ans.: |2-2.4|=0.4
17. 請問用牛頓法求解 f(x)的根時,xi+1與 xi的關係式為何?
Ans.: xi+1 = xi - f(xi)/f’(xi)
18. 誤差放大倍數(Error magnification factor)是相對前向誤差(relative forward error)與相對後向誤差 (relative backward error)的比值,也就是
誤差放大倍數=相對前向誤差/相對後向誤差
若已知相對後向誤差為 2.5,相對前向誤差為 0.5。求誤差放大倍數。
19. 請問用割線法求解 f(x)的根時,xi+1與 xi和 xi-1的關係式為何?
Ans.: xi+1 = xi - f(xi)( xi - xi-1 )/( f(xi) - f(xi-1) )
20. 請問用假位法求解 f(x)的根時,若目前要求出 x2的區間是[a,b], 其中 a=x0, b=x1,則要如何求出 x2? 若所求出的 f(x2)>0,且 f(x0)<0,f(x1)>0,請問求 x3時,要使用的區間 a=?, b=?
Ans.: x2 = ( bf(a) - af(b) )/( f(a) – f(b) ) a = x0 , b = x2
21. 求解以下的線性聯立方程式,若擬使用高斯消去法,請問將其用表列型式描述的結果為何?
x + 3y - 2z = 1 3x - 2y + z = 2 -x + y + z = -5
Ans.:
5 1
1 1
2 1 2 3
1 2 3
1
22. 求解下列矩陣 A 的 LU 分解,並證明 LU=A。(要有過程)
1 1 3
2 1 2
1 2 1 A
Ans.:
由
1 1 3
2 1 2
1 2 1 A
欲使第 1 行中第 1 列以下的各元素為零。
列 2 - (2/1)×列 1 得
1 1 3
0 3 0
1 2
1
1 0 0
0 1 2
0 0 1
A
列 3 - (-3/1)×列 1 得
2 7
0
0 3 0
1 2
1
1 0 3
0 1 2
0 0 1 A
欲使第 2 行中第 2 列以下的各元素為零。
列 3- (7/-3)×列 2 得
2 0
0
0 3 0
1 2
1
1 3 / 7 3
0 1 2
0 0 1
A
所以
1 3
0 1 2
0 0 1
3 7
L
,
2 0
0
0 3 0
1 2
1 U
驗證
2 0
0
0 3 0
1 2
1
1 3
0 1 2
0 0 1
3 7
LU
2 0 3 0 7 6 0 0 3
0 0 2 0
3 4 0 0 2
0 0 1 0
0 2 0 0 1
1 1 3
2 1 2
1 2 1
A
23. 求解下列矩陣 A 的 PA=LU 分解,並證明 LU=PA。(要有過程)
1 3 1
4 4 4
5 1 2 A
Ans.:
由
1 3 1
4 4 4
5 1 2 A
欲使第 1 行中第 1 列以下的各元素為零。
因為第 1 列到最後列於第 1 行中,具有最大絕對值元素的列是第 2 列,故第 1 列與第 2 列互換,得
, 1 0 0
0 0 1
0 1 0
P
1 3 1
5 1 2
4 4 4 PA
開始消去第 1 行中第 1 列以下的元素為零,
列 2+ (-2/4)×列 1=列 2+ (-1/2)×列 1,得
1 3 1
7 1 0
4 4
4
1 0 0
0 1 2 / 1
0 0 1 PA
列 3+ (-1/4)×列 1 得
2 2 0
7 1 0
4 4
4
1 0 4 / 1
0 1 2 / 1
0 0 1 PA
欲使第 2 行中第 2 列以下的各元素為零。
因為第 2 列到最後列於第 2 行中,具有最大絕對值元素的列是第 3 列,故第 2 列與第 3 列互換,得
, 0 0 1
1 0 0
0 1 0
1 0 0
0 0 1
0 1 0
0 1 0
1 0 0
0 0 1
P
7 1 0
2 2 0
4 4
4
1 0 2 / 1
0 1 4 / 1
0 0 1 PA
開始消去第 2 行中第 2 列以下的元素為零,
列 3+ (-(-1)/2)×列 2 =列 3+ (1/2)×列 2,得
8 0 0
2 2 0
4 4 4
1 2 / 1 2 / 1
0 1 4 / 1
0 0 1
PA
所以
0 0 1
1 0 0
0 1 0
P ,
1 0 1
0 0 1
2 1 2 1 4
L 1 ,
8 0 0
2 2 0
4 4 4 U
驗證
5 1 2
1 3 1
4 4 4
1 3 1
4 4 4
5 1 2
0 0 1
1 0 0
0 1 0 PA
5 1 2
1 3 1
4 4 4
8 1 2 0 1 2 0 0 2
0 2 1 0 2 1 0 0 1
0 0 4 0 0 4 0 0 4
8 0 0
2 2 0
4 4 4
1 2 / 1 2 / 1
0 1 4 / 1
0 0 1
LU
故得證,PA=LU
24. 對於下列線性聯立方程式,請問若要用 Jacobi 法求解,其迭代式為何?
5u + v =4 -u +2v =1 Ans.:
由
ˆ ), ) ˆ (
ˆk 1 D 1(b L U xk x where
ˆ ,
1 1
1
k k
k v
x u ˆ ,
k k
k v
x u ,
2 / 1 1
1 5 /
1 1
D ,
0 1
0
0
L ,
0 0
1 0
U
1 ˆb 4
得
2 / ) 1 (
5 / ) 4 (
1 1
k k
k k
u v
v u
25. 對於下列線性聯立方程式,請問若要用高斯-賽德法(Gauss-Seidel method)求解,其迭代式為何?
3u - v =2 u +2v =1 Ans.:
由
ˆ ), ˆ ˆ
ˆk 1 D 1(b Lxk 1 Uxk x where
ˆ ,
1 1
1
k k
k v
x u ˆ ,
k k
k v
x u ,
2 / 1 1
1 3 /
1 1
D ,
0 1
0 0
L ,
0 0
1
0
U
1 ˆb 2
得
2 / ) 1
(
3 / ) 2 (
1 1
1
k k
k k
u v
v u
26. 對於下列線性聯立方程式,請問若要用逐次超鬆弛法(Successive Over-Relaxation method)求解,
其迭代式為何?
3u + 2v =1 u -4v = 2 由
ˆ ), ˆ ˆ
ˆ ( ) 1
ˆk 1 ( xk D 1 b Lxk 1 Uxk x where
ˆ ,
1 1
1
k k
k v
x u ˆ ,
k k
k v
x u ,
4 / 1 1
1 3 /
1 1
D ,
0 1
0 0
L ,
0 0
2 0
U
2
ˆb 1 , 1
得
4 / ) 1
( )
1 (
3 / ) 2 1 ( )
1 (
1 1
1
k k
k
k k
k
u v
v
v u
u