1. Trang chủ
  2. » Luận Văn - Báo Cáo

Một số phương pháp giải hệ phương trình tuyến tính

86 421 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 86
Dung lượng 636,25 KB

Nội dung

0 Tóm tắt LV MỞ ĐẦU Lý chọn đề tài Việc giải toán tìm nghiệm hệ phương trình tuyến tính có ý nghĩa to lớn việc nghiên cứu khoa học thực tế Để tìm nghiệm hệ phương trình tuyến tính lý thuyết đại số tuyến tính phải thực nhiều phép biến đổi sơ cấp hàng, cột ma trận Điều làm tăng khối lượng tính toán, lại gặp khó khăn vấn đề logic trình bày Mặt khác xây dựng chương trình máy tốn nhiều thời gian nhiều nhớ Vì thời gian sử lý số liệu không tránh khỏi sai số dù nhỏ ảnh hưởng trực tiếp đến trình tính toán Chính phải sử dụng thuật toán cho xây dựng máy tính tiết kiệm thời gian nhớ nhất, đồng thời giảm thiểu sai số cách tối đa Các nhà toán học tìm nhiều phương pháp để giải gần hệ phương trình tuyến tính Mỗi phương pháp có ưu điểm, nhược điểm định Vì hệ phương trình tuyến tính bất kì, việc áp dụng phương pháp cho kết tốt cho việc nghiên cứu quan trọng, mang đến lợi ích lớn ứng dụng vào khoa học thực tiễn Chính với hướng dẫn tận tình TS Nguyễn Văn Hùng, chọn nghiên cứu đề tài: “ Một số phương pháp giải hệ phương trình tuyến tính” Tuy nhiên đề tài tập trung vào nghiên cứu phương pháp trực tiếp phương pháp Gauss, Gauss-joocdan phương pháp Cholesky, phương pháp lặp phương pháp lặp đơn phương pháp trực giao hoá Mục đích nghiên cứu -Đề tài nghiên cứu số phương pháp số giải gần hệ phương trình tuyến tính - Nghiên cứu ứng dụng toán nhiệt động lực học Nhiệm vụ nghiên cứu -Luận văn tập trung nghiên cứu hệ thống hoá phương pháp giải gần hệ phương trình tuyến tính Phân tích ưu điểm, nhược điểm phương pháp -Ứng dụng tìm hàm biểu thị phụ thuộc nhiệt dung phân tử chất, số cân chất vào nhiệt độ Đối tượng phạm vi nghiên cứu - Phương pháp Gauss, phương pháp Gauss-Joocdan, phương pháp Cholesky, phương pháp lặp đơn phương pháp trực giao giải gần hệ phương trình tuyến tính -Các toán hoá lý Phương pháp nghiên cứu Phương pháp nghiên cứu giải tích số đại số tuyến tính Dự kiến đóng góp Luận văn trình bày cách có hệ thống kiến thức ví dụ phương pháp giải gần hệ phương trình tuyến tính phạm vi luận văn nghiên cứu CHƯƠNG 1: MỘT SỐ KIẾN THỨC CHUẨN BỊ 1.1 Không gian định chuẩn 1.1.1 Một số định nghĩa Định nghĩa 1: Giả sử X không gian vecto trường K (K=R K=C) Một ánh xạ kí hiệu : X R x x Được gọi chuẩn X thoả mãn tiên đề sau: x  X , x  0; x   x  x  X ,   K , x   x x, y  X , x  y  x  y Số x gọi chuẩn vecto x Định nghĩa 2: Giả sử X không gian vecto trường K, x chuẩn X, Khi cặp  X ,  gọi không gian định chuẩn Định nghĩa 3: (Toán tử tuyến tính không gian định chuẩn) A gọi toán tử tuyến tính bị chặn M  cho : x  X , Ax  M x (*) M cận toán tử A Số M nhỏ thoả mãn (*) gọi chuẩn toán tử A Kí hiệu A Khi A  inf M  / Ax  M x , x  X  Định nghĩa 4: Dãy điểm x n  không gian định chuẩn X hội tụ đến điểm x  X lim x n  x  Kí hiệu lim x n  x hay x n  x( n   ) n  n  Định nghĩa 5: Dãy điểm x n  không gian định chuẩn X gọi dãy (hay dãy Cauchy) lim x n  x m  n ,m 1.2 Sai số 1.2.1 Sai số, số xấp xỉ 1.2.1.1 Sai số tuyệt đối: 1.2.1.2 Sai số tương đối 1.2.2 Chữ số có nghĩa, chữ số 1.2.2.1 Chữ số có nghĩa 1.2.2.2 Chữ số   Xét số a=   p 10 p   p 1 10 p 1    p  q 10 p  q Chữ  j gọi chữ số i  a  .10 Với  số cho trước 1.2.3 Sai số quy tròn quy tròn số 1.2.4 Cách viết số xấp xỉ 1.2.5 Các phép tính sai số 1.2.5.1 Các phép tính: Giả sử đại lượng f có sai số tuyệt đối giới hạn  f sai số tương đối  f Mà  f  f ; f số gia đại lượng f: Nếu u=x+y+z  u   x   y   z , (x, y, z>0) u=x-y  u  x  y xy , (x,y >0) u=xyz  u   x   y   z , (x, y, z >0) x u   u   x   y , (x,y>0) y 1.2.5.2 Công thức tổng quát sai số Nếu f hàm số khả vi liên tục u  f x1 , x , , x n  , f>0 n n f  ln f thì:  u   xi ,  u   xi  x xi i i 1 i 1   1.2.6 Sai số phương pháp, sai số tính toán ổn định tính 1.2.6.1 Sai số tính toán sai số phương pháp 1.2.6.2 Sự ổn định trình tính 1.3 Hệ phương trình đại số tuyến tính 1.3.1 Dạng tổng quát hệ phương trình tuyến tính 1.3.2 Định lý tồn nghiệm hệ phương trình tuyến tính m=n 1.3.2.1 Định lý Cramer: 1.3.2.2 Biện luận số nghiệm hệ phương trình 1.3.3 Phân tích sai số 1.3.3.1 Số điều kiện ma trận 1.3.3.2 Phân tích sai số Giả sử x nghiệm phương trình Ax=b (1) x '  x  x nghiệm phương trình Ax’=b’ với b’=b+ b A( x) 1 A(x) Khi : x  inf x  x  A(x ) m x  x m x m 1 b  Suy x  Ax  Do x  m m x M b b b 1 x  M x  Ax    cond ( A) Vậy M M M x mb b 1.4 Các định nghĩa hoá lý 1.4.1 Nhiệt dung Định nghĩa: Nhiệt dung nhiệt lượng cần để làm nóng hệ thêm 10C 1.4.2 Hằng số cân phản ứng phản ứng đạt trạng thái cân tỉ số tích hoạt độ sản phẩm phản ứng (được nâng luỹ thừa với số mũ hệ số tỉ lượng phương trình phản ứng) tích tương ứng chất phản ứng số (ở nhiệt độ cho sẵn) CHƯƠNG 2:MỘT SỐ PHƯƠNG PHÁP GIẢI HỆ PHƯƠNG TRÌNH TUYẾN TÍNH 2.1 Hệ phương trình tuyến tính 2.2 Một số phương pháp giải hệ phương trình tuyến tính 2.2.1 Phương pháp Gauss a11 x1  a12 x   a1n x n  b1  a x  a 22 x   a 2n x n  b2 Xét hệ phương trình  21 (2.2.1.1)  a m1 x1  a m x   a mn x n  bm Trong a i , j , i  1, m; j  1, n hệ số hệ x1, x , , x n ẩn cần tìm; bi với i  1, m vế phải hệ 2.2.1.1 Nội dung phương pháp Gauss Quá trình thuận: +Giả thiết a11  Loại trừ ẩn x1 khỏi hệ kể từ phương trình thứ trở Khi trừ phương trình đầu , ta n-1 phương trình n-1 ẩn x , x3 , , x n + Lặp lại trình hệ này, ta loại trừ ẩn x2 kể từ phương trình thứ trở Ta nhận hệ gồm n-2 phương trình n-2 ẩn x , x , , x n + Quá trình lặp lặp lại, cuối ta nhận hệ có dạng tam giác a11 x1  a12 x   a1n x n  b1  1  a 22 x   a 21n x n  b2  (2.2.1.2)   1  a mn x n  bm Quá trình ngịch: + Từ hệ (2.2.1.2) giải x n Bằng cách dần ta nhận x1 , x , , x n nghiệm hệ phương trình 2.2.1.2 Đánh giá phương pháp Gauss + Ưu điểm: Khối lượng tính toán ct Cramer + Nhược điểm: Khi tìm nghiệm hệ phương trình ta phải chia cho hệ số a ii( k )  , nghiệm gặp sai số lớn 2.2.1.3 Một số ví dụ  x1  0,3 x  x3  x  x  x  x3  x    Ví dụ : Giải hệ phương trình:  x  x2  x3  x  1,5  3x1  0,5 x  x3  x  x3  x4   x1  0,3 x   2,3x  x  x     0,4 x  x3  x  10,5   1,4 x  x  x  17 x3  x4   x1  0,3 x   2,3 x  x3  2x4     , x  , x  27 ,35   53,13 x  165,6  x1  2.3321  x  0,3896    x3  0,435  x  3,116 2.2.2 Phương pháp Gauss-Joocdan 2.2.2.1 Nội dung phương pháp: Bước 1: Xét ma trận mở rộng A 0   A B  hệ (2.2.1.1)  a11 a1 j a1q a1n a1,n 1    0   a i1 a ij a iq a in a i , n 1  i  (2.2.2.1) A  a a pj a pq a pn a p ,n 1   p   p1   a n1 a nj a nq a nn a n ,n 1    (j) (q) Chọn phần tử a pq ma trận A cho a pq  max a ij , với  i, j  n Ta loại ẩn x q khỏi phương trình thứ i  p Các bước loại ẩn x q khỏi phương trình thứ i  p a iq Đặt mi  (i  1, n, i  p ) Lấy hàng p nhân với mi lấy hàng i trừ hàng p ta a pq được: (j) ai1  a pj mi  1 (i)  A  ( p)  a p1   aij  a pj m j (q) aij  a pj m j ,n1  a p,n1m2   .  a pq a p ,n1  . Đặt a ij1  a ij  a pj mi  a ij  a pj a iq a pq i  1,2, , n, n    i p   j  1,2, , n, n  1  jq (2.2.2.2) Khi i=p a pj1  a pj ; j  1, n  ; Khi j=q a iq1  a iq  a pq a iq a pq 0; i p Kết ma trận A (1) có phần tử a ij1 sau: Các phần tử thuộc hàng giải thứ p a pj1  a pj ; j  1, n  giữ nguyên Các phần tử thuộc cột giải thứ q trừ phần tử a pq Các phần tử khác tính theo công thức: a ij1  a ij  a pj a iq a pq ; i  p; j  q (2.2.2.3) A 1 có dạng:  1 1 1  a11 a1 j a1n   1 1 1  a i1 a ij a in A 1    1 1 1 a pn a p1 a pj1 a pq   1  a n11 a nj1 a nn  a11,n 1    1  a i ,n 1    a p1,n 1    1  a n,n 1  (2.2.2.4) Bước 2: Lặp lại trình bước ma trận (2.2.2.4) để có ma trận A 2  Cứ tiếp tục sau n bước ta thu ma trận A n  mà hàng phần tử ứng với ẩn x k cột vế phải Từ ta có nghiệm hệ 2.2.2.2 Đánh giá thuật toán a, Ưu điểm: Số lượng phép tính giảm đáng kể, tìm nghiệm thuật toán kết thúc.Tránh sai số lớn trình tính toán b, Nhược điểm: Đối với hệ phương trình có hệ số không nguyên, số lượng ẩn lớn công thức (2.2.2.3) thực nhiều lần cho kết không xác 2.2.2.3 Một số ví dụ 8 x1  x  x  20  Ví dụ : Giải hệ phương trình sau: 4 x1  11x  x  33 6 x  x  12 x  36  Ta lập ma trận để tính theo công thức (2.2.2.3) 7   14  45 36  12 36   7 8  20 9 ~   A 0   4 11  33   A 1   2 6 12 36  6    14  28   1   A  18 45 144 6 12 36   A 2  108 0 181     15 48   15 33   Hệ tương đương  84  ~ 2    A   18  24 5  1267  45  45 144  12 132   0    181  108 0  683  3    A  15  18   0 15  413    18   108 x1  181  683  15 x  18  413  15 x3  18 Vậy hệ có nghiệm là: x1  181   x1  108  683    x2  270  413   x3  270  181 683 413 ; x2  ; x3  108 270 270 2.2.3 Phương pháp Cholesky 2.2.3.1 Nội dung phương pháp: Xét phương trình AX=B (2.2.3.1) Trong A ma trận vuông cấp n; B= b1 ; b2 ; ; bn  t Ta biết ma trận vuông A (detA  0) phân tích thành tích ma trận tam giác ma trận tam giác dưới.: A=P.Q 0   p11 q11 p  0 p 22 0  Trong đó: P=  21 ; Q=         p n1 p n p nn  0 q12 q 22 q1n  q 2n    q nn  Từ A=P.Q ta hệ gồm n phương trình, n2+n ẩn pij(i  j); qij(i  j).Đó hệ vô định Thông thường trường hợp ta chọn pii=1,  i= 1, n (hoặc qii=1), ta hệ n phương trình, n2 ẩn Từ (2.2.3.1) (2.2.3.2) ta được: B=AX=PQX Đặt QX=Y(2.2.2.3 Suy PY=B (2.2.3.4) Hệ (2.2.3.3) (2.2.3.4) có dạng tam giác Giải (2.2.3.4) Y, Giải tiếp (2.2.3.3) ta X nghiệm hệ (2.2.3.1)   Trong trường hợp A= a ij i , j 1, n ma trận đối xứng ( aij  aji ;i  j ), A phân tích thành tích ma trận tam giác trên, dưới, có đặc điểm P=Qt (Qt ma trận chuyển vị Q)  s11 0 S=    0 Gọi Q=S=[Sij]; Sij=0 i0 then s[3,3]:=sqrt(a[3,3]-(sqr(s[1,3]+sqr(s[2,3])))) else s[3,3]:=sqrt(-a[3,3]+(sqr(s[1,3]+sqr(s[2,3])))); s[2,3]:=(a[2,3]-s[1,2]*s[1,3])/s[2,2]; 76 y[1]:=a[1,4]/s[1,1]; y[2]:=(a[2,4]-s[1,2]*y[1])/s[2,2]; y[3]:=(a[3,4]-(s[1,3]*y[1]+s[2,3]*y[2]))/s[3,3]; x[3]:=y[3]/s[3,3]; x[2]:=(y[2]-s[2,3]*x[3])/s[2,2]; x[1]:=(y[1]-(s[1,2]*x[2]+s[1,3]*x[3]))/s[1,1]; writeln(‘nghiem cua he la:’); writeln(‘x1:=’,x[1]); writeln(‘x2:=’,x[2]); writeln(‘x3:=’,x[3]); readln; End  x3  c  380801,837570  Kết nhận được:  x2  b  0,000604  x  a  4,84664  Cp=4,84664+0,000604T+(-380801,837570)T-2 Kiểm tra kết đạt Ti 400 500 600 (Cp)i 2,708 3,625 Ti 1100 1200 1300 (Cp)i 5,1963 5,307 Ti 1800 (Cp)i 5,8163 700 800 900 1000 4,735 4,9201 5,07 1400 1500 1600 1700 5,4065 5,498 5,5834 5,6643 5,742 1900 2000 2100 2200 2300 5,889 6,01 6,03 6,1 6,164 4,0424 4,15127 Kết đo thực nghiệm Ti 400 500 600 700 800 900 1000 (Cp)i 2,9 3,5 4,0 4,47 4,75 4,96 5,14 77 Ti 1100 1200 1300 1400 1500 1600 1700 (Cp)i 5,29 5,4 5,54 5,66 5,70 5,83 5,89 Ti 1800 1900 2000 2100 2200 2300 (Cp)i 5,95 6,00 6,05 6,09 6,13 6,17 Rõ ràng toán phương pháp Cholesky cho kết gần với kết đo thực nghiệm phương pháp Gauss 3.2 Tìm hàm biểu thị phụ thuộc số cân chất vào nhiệt độ Phương trình biểu thị phụ thuộc số cân vào nhiệt độ có dạng: F (T )   1 (H 00  a.T ln T  b.T  c.T  IT ) 4,576.T Bằng phương pháp bình phương tối thiểu độ lệch giá trị lý thuyết so với thực nghiệm lần thí nghiệm ta tìm hệ số H 00 ; a; b; c; I nghiệm hệ phương trình tuyến tính sau: 78 n n n ln Ti n Ti   H   a   b   c      4,576 T 4,576 T 2.4,576 6.4,576 i 1 i 1 i 1 i i  n n   lg K i    I  Ti i 1  i 1 4,576.Ti  n n n n ln Ti (ln Ti ) Ti ln Ti (Ti ) ln Ti H   a.  b  c.   i 1 4,576.Ti i 1 4,576 i 1 2.4,576 i 1 6.4,576  n n  I  ln Ti   (lg K )i Ti  i 1 4,576 i 1  n n n (Ti )3 Ti H n  a  Ti ln Ti  b Ti   c  I    4,576 2.4,576 i 1 4,576 i 1 6.4,576 i 1 4,576  n   (lg K ) T i i   i 1  n n n n Ti ln Ti (Ti ) Ti (Ti )  H  4,576  a. 4,576  b 2.4,576  c. 6.4,576  i 1 i 1 i 1 i 1  n n (Ti )   I  4,576   (lg K )i (Ti ) i 1  i 1 n n n n  ln Ti Ti (Ti )  H   a   b   c      0 4,576 T 4,576 2.4,576 6.4,576 i 1 i 1 i 1 i 1 i  n  n   (lg K )i I i 1  4,576 (3.2.1) Bài toán 3: Ta có phản ứng MoO3=Mo+3O Xác định số cân trình phân li nhiệt độ khác Biết giá trị thực nghiệm lgKp nhiều nhiệt độ khác sau: Ti 1000 1075 1500 1873 lgKp -71,721 -65,244 -40,767 -28,431 Ti 2000 2500 2896 4000 lgKp -25,28 -15,983 -10,894 -1,999 79 Để tính hệ số hệ phương trình tuyến tính (3.2.1) giải hệ (3.2.1) ta sử dụng ngôn ngữ pascal với thuật toán Gauss sau: Program Hangsocanbang; Const n=5; m=8; t: array[1 m] of real=(1000,1075,1500,1873,2000,2500,2896,4000); lgk: array[1 m] of real=(-71.721,-65.244,-40.767,-28.431,-25.28,-15.983, -10.894,-1.999); Var i, j, k, l: integer; a,s: array[1 n,1 m] of real; x,y : array[1 n] of real; st, slk, st2, st3, st4, st_1, st_2, slt, stlt, st2lt, slt2, sltlk, slkt_1, sltt_1, slkt, slkt2, lk, kk, ak, tt, lgkp: real; BEGIN st:=0 , slk:=0, st2:=0, st3:=0, st4:=0, st_1:=0, st_2:=0, slt:=0, stlt:=0, st2lt:=0, slt2:=0, sltlk:=0, slkt_1:=0, sltt_1:=0, slkt:=0, slkt2:=0; for i:=1 to m begin st:=st+t[i]; slk:=slk+lgk[i]; st2:=st2+t[i]*t[i]; st3:=st3+t[i]*t[i]*t[i]; st4:=st4+t[i]*t[i]*t[i]*t[i]; st_1:=st_1+1/t[i]; st_2:=st_2+1/(t[i]*t[i]); slt:=slt+ln(t[i]); stlt:=stlt+t[i]ln(t[i]); st2lt:=st2lt+t[i]*t[i]*ln(t[i]); 80 slt2:=slt2+ln(t[i])*ln(t[i]); sltlk:=sltlk+lgk[i]*ln(t[i]); slkt_1:=slkt_1+lgk[i]/t[i]; sltt_1:=sltt_1+ln(t[i])/t[i]; slkt:=slkt+lgk[i]*t[i]; slkt2:=slkt2+lgk[i]*t[i]*t[i]; end; a[1,1]:=st_2/4.576; a[1,2]:=-sltt_1/4.576; a[1,3]:=-m/2/4.576; a[1,4]:=-st/6/4.576; a[1,5]:=st_1/4.576; a[1,6]:=-slkt_1; a[2,1]:=sltt_1/4.576; a[2,2]:=-slt2/4.576; a[2,3]:=-stlt/2/4.576; a[2,4]:=-st2lt/6/4.576; a[2,5]:=slt/4.576; a[2,6]:=-sltlk; a[3,1]:=m/4.576; a[3,2]:=-stlt/4.576; a[3,3]:=-st2/2/4.576; a[3,4]:=-st3/6/4.576; a[3,5]:=st/4.576; a[3,6]:=-slkt; a[4,1]:=st/4.576; a[4,2]:=-st2lt/4.576; a[4,3]:=-st3/2/4.576; a[4,4]:=-st4/6/4.576; a[4,5]:=st2/4.576; a[4,6]:=-slkt2 a[5,1]:=st_1/4.576; a[5,2]:=-slt/4.576; a[5,3]:=-st/2/4.576; a[5,4]:=-st2/6/4.576; a[5,5]:=m/4.576; a[5,6]:=-slk; for i:=1 to n begin kk:=a[i,i]; for j:=1 to n+1 a[i,j]:=a[i,j]/kk; if i

Ngày đăng: 05/11/2016, 22:21

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w