现代数值计算方法(MATLAB版)第3章(2)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
i, j = k + 1, · · · , n,
mik = aik /akk , aij 3 xn = bn /ann , k = n − 1, · · · , 1, xk = 3.2, • Gauss %magauss2.m
(k ) bk n (n) (n) (k +1) (k )
(k )
(k )
Back Close 8/16
% m=A(k+1:n,k)/A(k,k); A(k+1:n,k+1:n)=A(k+1:n,k+1:n)-m*A(k,k+1:n); b(k+1:n)=b(k+1:n)-m*b(k); A(k+1:n,k)=zeros(n-k,1); if flag~=0, Ab=[A,b], end end % x=zeros(n,1); x(n)=b(n)/A(n,n); for k=n-1:-1:1 x(k)=(b(k)-A(k,k+1:n)*x(k+1:n))/A(k,k); end
Back Close
3.7
(3.7)
:
|bi| > |ci| > 0, |bi+1| > |ai+1| > 0, i = 1, · · · , n − 1,
福建师范大学
. (3.8)-(3.9) ¯ b1 = b1 = 0. k≥2 , , ¯ bk = 0, (k = 1, 2, · · · , n) .
(3.6)
福建师范大学
rk
k
.
数计学院
6/16
Gauss A,
) b, k := 1
k = 1, · · · , n − 1 , rk ,
(k ) k ≤i≤n
ark k = max |aik |, = 0, , (A(k), b(k)) , k, rk
Back Close
(2) (3)
rk > k ,
福建师范大学
数计学院
11/16
(3.7)
Back Close
b c 1 1 a2 b2 c2 ... ... ... an−1 bn−1 cn−1 an b n ¯ b c 1 1 ¯ b2 c 2 ... ... → ¯ bn−1 cn−1 ¯ bn
Back Close 9/16
福建师范大学
数计学院
3.5 2 −1 4 −3 1 −1 1 2 1 3
magauss2.m 4 2 3 3 −1 −3 1 3 2 4 x1 1 3 x2 −1 x3 4 x4 x5 4 11 14 = 4 16 18
(k )
2/16
akk = 0,
(k )
x1 =
x2 =
Back Close
4 4 0.1)105 = (0.0000 − 0.1)105 = −10000.0 (
. 1.0 − 10000.0 = (0.00001 − ), , 2.0 − 10000.0 =
福建师范大学
数计学院
−10000.0, 0.0001 1.0 1.0 0.0001 1.0 1.0 r2 −104 r1 − − − − − → 1.0 1.0 2.0 0 1.0 − 10000.0 2.0 − 10000.0 − − − → 0.0001 0 1.0 1.0 .
福建师范大学
数计学院
1/16
Back Close
福建师范大学
数计学院
§3.2
Gauss Gauss . . 3.4 0.0001x + 1.0x = 1.0, 1 2 1.0x1 + 1.0x2 = 2.0. 10000 ≈ 1.00010, 9999 9998 ≈ 0.99990 9999 , k = 1, 2, · · · , n, akk = 0,
1≤i≤n (1) (1) (1)
5/16
. . Gauss 1 , Gauss 1
.
r1 > 1,
r1
1
.
Back Close
,
Gauss
(k )
k
k ≤i≤n
,
(k )
ark k = max |aik | . rk > k , Gauss 3.2 ( 1 2 (1)
(k ) (k ) ar k k
4/16
,
福建师范大学
数计学院
0.0001 1.0 1.0 1.0
1.0 2.0 0.0001 1.0 1.0 1.0 1.0 2.0 r2 −0.0001r1 − − − − − − → 0 1.0 − 0.0001 1.0 − 0.0002 1.0 1.0 2.0 . − − − → 0 1.0 1.0
Back Close
end 3.6 machase.m
福建师范大学
数计学院
4 1 x1 1 4 1 x2 1 4 1 x3 . . . . . . . 1 . . ... 4 1 x 49 1 4 x50 MATLAB
5 6 6 = . . . 6 5
15/16
>> a=ones(50,1); b=4*ones(50,1); c=ones(50,1); >> d=6*ones(50,1); d(1)=5; d(50)=5; >> x=machase(a,b,c,d) x = (x1, x2, · · · , x50) = (1.0, 1.0, · · · , 1.0).
福建师范大学
数计学院
10/16
MATLAB >> A=[2 -1 4 -3 1;-1 1 2 1 3;4 2 3 3 -1; -3 1 3 2 4; 1 3 -1 4 4]; >> b=[11 14 4 16 18]’; >> x=magauss2(A,b); x’
Back Close
x = 1.0000 §3.3 , b1 c1 a2 b 2 c 2 ... ... ... an−1 bn−1 cn−1 an b n Gauss x1 x2 . . . xn−1 xn d1 d2 = . . . dn−1 dn . 2.0000 1.0000 -1.0000 4.0000
(3.8)
福建师范大学
数计学院
13/16
(3.9)
Back Close
function x= machase(a,b,c,d) % % % % : : x= machase(a,b,c,d) b d ,x , c Ax=d a ,
14/16
,
福建师范大学
数计学院
n=length(a); for k=2:n b(k)=b(k)-a(k)/b(k-1)*c(k-1); d(k)=d(k)-a(k)/b(k-1)*d(k-1); end x(n)=d(n)/b(n); for k=n-1:-1:1 x(k)=(d(k)-c(k)*x(k+1))/b(k);
Back Close
% % %
: x=magauss(A,b,flag), A flag=0, 0, x ,
, b
, ,
福建师范大学
数计学院
if nargin<3,flag=0;end n=length(b); for k=1:(n-1) % [ap,p]=max(abs(A(k:n,k))); p=p+k-1; if p>k t=A(k,:); A(k,:)=A(p,:); A(p,:)=t; t=b(k); b(k)=b(p); b(p)=t; end
r 1 ↔r 2 − − − →
ຫໍສະໝຸດ Baidu1.0
1.0 2.0
Back Close
, 1.0 − 0.0002 = 1.0.
1.0 − 0.0001 = (0.1 − 0.00001)101 (
),
福建师范大学
数计学院
x = 1.0, 1.0x + 1.0x = 2.0, 2 1 2 =⇒ x1 = 1.0. 1.0x2 = 1.0. , . A(1) = A, ar 1 1 , ar11 = max |ai1 |
3/16
−10000.0 −10000.0
x = 1.0, 0.0001x + 1.0x = 1.0, 1 2 2 =⇒ x1 = 0.0. −10000.0x2 = −10000.0.
Back Close
, , , , ,
. 0.0001 10000 . .
aik
(k +1) (k )
= 0, bi
(k +1)
= aij − mik akj ,
= bi − mik bk .
福建师范大学
(k )
(k )
数计学院
7/16
−
j =k +1
akj xj
(k )
akk .
(k )
MATLAB MATLAB
function x=magauss2(A,b,flag) % : Gauss Ax=b
数计学院
16/16
ak ck−1 |¯ bk | = bk − ck−1 ≥ |bk | − |ak | · > |bk | − |ak | > 0, bk−1 bk−1 bk = 0, k = 2, · · · , n. , .
Back Close
d1 d2 . . . dn−1 dn ¯1 d ¯2 d . . . ¯n−1 d ¯n d
福建师范大学
数计学院
12/16
Back Close
¯ ¯1 = d1, b1 = b1 , d ak ¯ ck−1, (k = 2, · · · , n) bk = bk − b k −1 ¯k = dk − ak d ¯k−1 d bk−1 ¯n d xn = ¯ , bn ¯k − ck xk+1 d xk = , k = n − 1, · · · , 2, 1. ¯ bk , , MATLAB • MATLAB %machase.m 6n − 5 . ,