1. Trang chủ
  2. » Giáo án - Bài giảng

Giáo trình phương pháp tính Đại học bách khoa đà nẵng

345 37 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 345
Dung lượng 3,46 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

MỘT VÀI ỨNG DỤNG CỦA GIẢI TÍCH HÀM 1 ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA NGUYỄN THẾ HÙNG, TRẦN VĂN CHÍNH PHƯƠNG PHÁPTÍNH ĐÀ NẴNG 2013 2 3 LỜI NÓI ĐẦU Giáo trình Phương pháp tính được biên soạn trên cơ sở các bài giảng của các tác giả cho các lớp Cao học và Đại học ngành Điện, Xây dựng, thuộc Đại học Đà Nẵng và một số Đại học khác mà các Tác giả có dịp tham gia giảng dạy Nội dung của Giáo trình bao quát những vấn đề cơ bản nhất và mở rộng của phương pháp tính hiện đại, làm cơ sở để tính toán.

Trang 3

3

LỜI NÓI ĐẦU

Giáo trình Phương pháp tính được biên soạn trên cơ sở các bài giảng của các tác giả

cho các lớp Cao học và Đại học ngành Điện, Xây dựng, thuộc Đại học Đà Nẵng và một số Đại học khác mà các Tác giả có dịp tham gia giảng dạy

Nội dung của Giáo trình bao quát những vấn đề cơ bản nhất và mở rộng của phương pháp tính hiện đại, làm cơ sở để tính toán, giải quyết những vấn đề khoa học, kỹ thuật thường gặp thuộc các ngành kỹ thuật, đặc biệt là ngành Điện và Xây dựng

Để giúp độc giả dể dàng nắm bắt bài giảng và vận dụng lý thuyết, thuận lợi trong việc tính toán, ở mổi mục khó của cuốn sách thường có kèm theo ví dụ tính toán đặc trưng, chương trình tính và cuối mổi chương thường có một số bài tập

Ngoài các ngành Điện và Xây dựng cơ bản, Giáo trình này còn làm tài liệu tham khảo cho các ngành khoa học kỹ thuật khác liên quan đến các vấn đề tính toán gần đúng

Các Tác giả cảm ơn các Trợ giảng và Trợ lý đã bổ sung các bài tập, đánh máy bản thảo làm cho nội dung Giáo trình được phong phú, đẹp đẽ thêm

Các Tác giả rất mong được bạn đọc góp ý, bổ khuyết để lần tái bản tới Giáo trình Phương pháp tính này được hoàn hảo hơn

Đà Nẵng, ngày 12 tháng 12 năm 2012

Các tác giả

GS Nguyễn Thế Hùng – PGS Trần Văn Chính Trường Đại học Bách khoa, Đại học Đà Nẵng

Trang 4

Chương 1 SAI SỐ

Error analysis

1.1 Tổng quan về phương pháp tính

1.1.1 Khái niệm về phương pháp tính

Phương pháp số (numerical method) là một lĩnh vực của toán học chuyên

nghiên cứu những lý luận cơ bản và các phương pháp giải gần đúng các bài toán thường gặp trong toán học và kỹ thuật, kết quả tính toán được cho dưới dạng số Đôi khi nó còn được gọi là Phương pháp tính (Computational method), Toán học tính toán (Computational mathematics)

Giải tích số (Numerical analysis) nhấn mạnh cả phương pháp xấp xỉ và phân tích toán học

Phương pháp số quan tâm nhiều hơn đến sự lựa chọn và ứng dụng các kỷ thuật

để giải quyết vấn đề khoa học kỹ thuật hơn là phân tích toán học như Gải tích số

Chúng ta thấy rằng hầu hết các bài toán trong toán học như giải các phương trình đại số hay siêu việt, các hệ phương trình tuyến tính hay phi tuyến, các phương trình vi phân thường hay đạo hàm riêng, tính các tích phân, thường khó giải đúng được, nghĩa là khó tìm kết quả dưới dạng giải tích

Một số bài toán có thể giải đúng được nhưng biểu thức kết quả lại cồng kềnh, phức tạp khối lượng tính toán rất lớn Vì những lí do trên, việc giải gần đúng các bài toán là vô cùng cần thiết

Các bài toán trong kĩ thuật thường dựa trên số liệu thực đo và các giả thiết gần đúng; do vậy việc tìm ra kết quả gần đúng với sai số cho phép là hoàn toàn có ý nghĩa thực tế

Từ lâu các nhà khoa học đã nghiên cứu phương pháp tính và đã đạt nhiều kết quả quan trọng; tuy nhiên để lời giải đạt được độ chính xác cao, khối lượng tính toán thường rất lớn Khi các phương tiện tính toán thô sơ, nhiều phương pháp tính đã được

đề xuất, nhưng không thể thực hiện được vì khối lượng tính toán quá lớn; khó khăn trên đã làm phương pháp tính không phát triển được

Ngày nay nhờ máy tính điện tử người ta đã giải rất nhanh các bài toán khổng lồ, phức tạp, đã kiểm nghiệm được các phương pháp tính cũ và đề ra các phương pháp

Trang 5

5

tính mới Phương pháp tính nhờ đó phát triển rất mạnh mẽ; nó là cầu nối giữa toán học

và thực tiễn; là môn học không thể thiếu đối với các kỹ sư

Ngoài nhiệm vụ chính của phương pháp tính là tìm các phương pháp giải gần đúng các bài toán không tìm được lời giải giải tích hoặc lời giải giải tích quá phức tạp,

nó còn có nhiệm vụ khác như nghiên cứu tính chất nghiệm, nghiên cứu bài toán cực trị, xấp xỉ hàm v.v

1.1.2 Các đặc điểm của phương pháp tính

Đặc điểm về phương pháp của môn học này là hữu hạn hoá và rời rạc hoá Phương pháp tính thường biến cái vô hạn thành cái hữu hạn, cái liên tục thành cái rời rạc và sau cùng lại trở về với cái vô hạn, cái liên tục Nhưng cần chú ý rằng quá trình trở lại cái vô hạn, cái liên tục phải trả giá đắt vì khối lượng tính toán tăng lên rất nhiều Cho nên trong thực tế người ta phải dừng lại khi nghiệm gần đúng sát với nghiệm đúng ở một mức độ nào đó

Đặc điểm thứ hai của môn học là sự tiến đến kết quả bằng quá trình liên tiếp

Đó là quá trình chia ngày càng nhỏ hơn, càng dày đặc hơn hoặc quá trình tính toán bước sau dựa vào các kết quả của các bước trước Công việc tính toán lặp đi lặp lại này rất thích hợp với máy điện toán

Khi nghiên cứu phương pháp tính người ta thường triệt để lợi dụng các kết quả

đã đạt được trong toán học Cùng một bài toán có thể có nhiều phương pháp tính khác nhau

Trong phương pháp tính, người ta thường quan tâm đến hai vấn đề chính:

Phương pháp để giải bài toán

Sai số của lời giải

Một phương pháp tính được coi là tốt nếu nó đạt các yêu cầu sau:

- Phương pháp tính được biểu diễn bằng một dãy hữu hạn các bước tính cụ thể Các bước tính toán cụ thể này của phương pháp tính được gọi là thuật toán Thuật toán càng đơn giản càng tốt

- Đánh giá được sai số và sai số càng nhỏ càng tốt

- Thuật toán thực hiện được trên máy điện toán và thời gian chạy máy ít nhất

Giải gần đúng nghĩa là lời giải của bài toán so với lời giải đúng có một sai số nào đó Sai số thường do rất nhiều nguồn tạo nên và nhiều khi rất khó ước lượng được

Trang 6

Ví dụ khi cần tìm lời giải của phương trình phi tuyến, ta sẽ có nhiều phương pháp giải khác nhau; mổi phương pháp giải cần thời gian tính toán và độ chính xác khác nhau Một người kỹ sư xây dựng khi tính toán để thiết kế một công trình, thực hiện rất nhiều phép tính, và nhiều khi rất khó xác định sai số tích lũy trong quá trình tính toán; nhưng kết quả vẫn được cơ quan có thẩm quyền duyệt chấp nhận Tuy nhiên đối với các bài toán phức tạp, số lượng phép tính lớn, cần độ chính xác cao, nhất thiết phải được khảo sát nghiên cứu đầy đủ về sai số của lời giải

Máy tính số có thể biểu diễn với độ chính xác bình thường (single), độ chính xác gấp đôi (double) hay độ chính xác mở rộng (extended) Nếu ta biết được mối liên

hệ giữa lời giải số với lời giải đúng, sẽ biết nên chọn độ chính xác nào để kết quả đáp ứng được yêu cầu thực tế

1.1.3 Những dạng sai số thường gặp

Trong thực tế, khi bài toán tìm xấp xỉ một mô hình toán học đã biết, ví dụ tìm nghiệm của một phương trình đã biết, tính tích phân xác định của một hàm số nào đó trên miền cho trước hoặc có những bài toán thực tế mà ngay cả mô hình toán học cũng chưa biết; ví dụ, dự báo về lượng mưa thay đổi do biến đổi khí hậu toàn cầu, nhu cầu thuê bao internet, … Trong những trường hợp này, ta phải bắt đầu từ việc thu thập số liệu, xây dựng mô hình toán rồi tìm phương pháp giải số thích hợp … Nói chung khi thực hiện một bài toán bằng phương pháp số ta thường gặp những loại sai số sau đây:

Sai số do mô hình hoá bài toán, do ta không thể tính được hết những yếu tố

quan trọng ảnh hưởng đến bài toán, hoặc do ta biết được những yếu tố ảnh hưởng nhưng phải đơn giản hóa mô hình để có thể tính toán được

Sai số do phương pháp: Phương pháp thay bài toán phức tạp bằng bài toán đơn

giản (mổi phương pháp gần đúng đều có sai số và thường các sai số này là khác nhau)

sẽ tạo ra sai số phương pháp

Sai số do số liệu: Khi đo đạc ta phải sử dụng dụng cụ đo, mổi dụng đo đều có

sai số

Sai số tính toán và chặt cụt: Sai số tính toán là sai số do ta làm tròn bởi tất cả

các lần qui tròn trong quá trình tính toán; sai số chặt cụt là sai số gây ra khi phải chặt cụt dãy số khai triển

Những sai số trên đây, tùy theo bài toán, tích lũy lại nhiều khi dẫn đến những lời giải không thể chấp nhận được Chính vì vậy việc tìm ra những phương pháp tốt,

Trang 7

7

thuật toán hữu hiệu để giải các bài toán thực tế là điều rất cần thiết Các phương pháp

số hiện nay có rất nhiều, và còn nhiều vấn đề hiện nay vẫn còn bỏ ngỏ Trong cuốn sách này chúng tôi chỉ giới thiệu một số phương pháp và thuật toán thông dụng để các

kỹ sư và độc giả quan tâm có thể sử dụng được

1.2 Sai số tuyệt đối

Gọi a là giá trị gần đúng của A, ta viết được A = a a

a : gọi là sai số tuyệt đối giới hạn

1.3 Sai số tương đối

Sai số tuyệt đối không nói lên đầy đủ “chất lượng“ của 1 số xấp xỉ, chất lượng

ấy được phản ảnh qua sai số tương đối

Chữ số bỏ đi đầu tiên  5: Thêm vào chữ số giữ lại cuối cùng 1 đơn vị

Chữ số bỏ đi đầu tiên  5: Để nguyên chữ số giữ lại cuối cùng

Ví dụ 65,8274  65,827; 65,827  65,83

1.6 Sai số của số đã quy tròn

Giả sử quy tròn a thành a’ với sai số quy tròn tuyệt đối a’

Trang 8

 a

'

a a’ thì a’ = a + a’ (tức tăng sai số tuyệt đối)

1.7 Ảnh hưởng của sai số quy tròn

Áp dụng nhị thức Newton, ta có:  211033632378 2 (1.1)

Bây giờ thay 2 của biểu thức (1.1) bởi các số quy tròn khác nhau (Bảng 1.1):

Bảng 1.1: Giá trị của biểu thức (1.1) khi thay xấp xỉ 2 với các giá trị khác nhau

2 Vế trái biểu thức (1.1) Vế phải biểu thức (1.1)

Y X U

Trang 9

9

Do đó : U =      

yxu

Y X

U X + Y

+ Nếu u =

y

x, với y  0, U = X + Y

1

d

Nếu đường kính d = 3,7cm0,05 và  = 3,14 Biết d = 0,05, = 0,0016

Giải: Xem  và d là đối số của hàm V

Ta có: v  3d

Với: = 0,0005

14,3

0016,

d= 0,0135

7,3

05,0

 v = 0,0005+3.0,0135 = 0,04

Mặt khác: V = 3

.6

1

d

 = 26,5cm3 Vậy có: v= 26,5.0,04 = 1,061,1cm3

V = 26,51,1 cm3

1.9 Sai số do chặt cụt

Trong những bài toán gần đúng, các đại lượng tính toán được biểu diển bởi các chuổi khác nhau, khi tính toán cần phải chặt cụt; nếu chúng ta không phân tích kỹ cũng sẽ gây sai số rất lớn Xét ví dụ sau

Trang 10

n

n a n

Mặc dù cả hai giới hạn limn→∞ an = 0 và limn→∞

Chúng ta cũng sử dụng khái niệm " độ lớn - big oh" để mô tả tốc độ hội tụ của các hàm, đặc biệt là khi các biến độc lập tiệm cận bằng không

Giả sử F là một hàm số hội tụ đến một số L như là h tiến về không Nếu các hằng số dương p và K tồn tại với:

Trang 11

11

với sự lựa chọn một số điều kiện ban đầu; những phương pháp nầy được gọi là ổn định

có điều kiện (ví dụ, chúng ta hay gặp vấn đề này đối với các lược đồ sai phân)

Câu hỏi:

1) Định nghĩa sai số tuyệt đối, sai số tương đối ? Trong thực tế tính toán, người ta

sử dụng sai số tuyệt đối hay sai số tương đối ? Vì sao ?

2) Trình bày các quy tắc tính sai số?

3) Nêu sự khác nhau giữa sai số tính toán và sai số phương pháp? Hãy nêu ra một

quá trình tính có số liệu cụ thể minh họa và chỉ ra sai số tính toán và sai số phương pháp ?

4) Đưa ra vài ví dụ tính toán, chỉ ra sự cần thiết phải chú ý đến sai số qui tròn ?

Bài tập:

1) Hãy xác định chữ số tin tưởng trong các số sau:

a) x = 0,3941 với x= 0,25.10-2

y = 0,1132 với y= 0,1.10-3 b) z = 38,2543 với z= 0,27.10-2

2) Hãy xác định sai số tuyệt đối, biết sai số tương đối của các số xấp xỉ sau:

a) x = 13267 nếu x= 0,1%

b) x = 0,896 nếu y=10%

3) Hãy qui tròn các số dưới đây để có được 3 chữ số tin tưởng và xác định sai số

tuyệt đối và sai số tương đối  của chúng:

Trang 13

mà vẫn đảm bảo độ chính xác theo yêu cầu của thực tế

2.1 Nội suy đa thức

2.1.1 Sự duy nhất của đa thức nội suy

Xét mẫu đo đạt gồm (n+1) cặp các giá trị đã biết của hai trạm x và y: (x0,y0), (x1, y1), ,(xn, yn) Hãy xây dựng một đa thức có bậc m ≤ n có dạng:

Pm(x) = a0 + a1x1+ am-1xm-1 + amxm (2.1) sao cho Pm(xi) = yi , với i = 0, 1, , n (2.2) Đây là bài toán nội suy đa thức, và đa thức Pm(x) được gọi là đa thức nội suy

Ta có định lý:

Định lý: Tồn tại duy nhất một đa thức có bậc không quá n và đi qua (n + 1)

điểm cho trước (x0, y0), (x1, y1), ,(xn, yn)

Chứng minh: Xét đa thức có dạng (2.1) ở trên và thỏa mãn (2.2) Kết hợp (2.1)

n n

n n

Trang 14

Do ta đã giả thiết các điểm xi ≠ xj , do đó ma trận này khác 0 nên hệ phương trình (2.3) có nghiệm duy nhất cho các ai, nên đa thức Pn(x) được xác định duy nhất

2.1.2 Tính giá trị đa thức bằng phương pháp Horner

Với bài toán nội suy đa thức, thường phải tính giá trị của đa thức Pm(x)= a0 +

a1x1 + am-1xm-1 + amxm tại điểm x Khi tính trực tiếp, phải thực hiện khá nhiều phép tính, và khi tính các giá trị mũ của x, có thể gặp các giá trị lớn, mặc dù trong thực tế thường các thành phần của đa thức triệt tiêu lẫn nhau và giá trị của đa thức không lớn Để loại trừ các nhược điểm nêu trên, Horner đã đưa ra cách tính như sau: Viết lại đa thức Pm(x) dưới dạng:

Pm(x) = amxm + am-1xm-1 + + a1x1 + a0 = ( ((amx + am-1)x + am-2)x+ +a1)x+a0

Thuật toán thiết lập cho máy tính, để tính Pm(x) như sau:

Giá trị P cuối cùng (ứng với i = 0), cho ta giá trị của đa thức tại x

Sau đây là chương trình thực hiện thuật toán trên:

Trang 15

n n

!2

)()

(

!2

)()(

!1

)()()

) ( 2

0 0

0 0

Mặt khác chúng ta có thể biến đổi đa thức về dạng:

Pn(x) = (x - xo)Pn-1(x) + Pn(xo) (2.8) Trong đó Pn-1(x) là đa thức bậc n - 1 và có dạng:

Pn-1(x) = boxn-1 + bo-1xn - 2 + b2xn - 3 + + bn-1 (2.9) Thuật toán để tìm các hệ số nhận được bằng cách so sánh (2.6) và (2.8):

Trang 16

Hay:

n n

P x

!2

)()

(

!2

)()(

!1

)()()

) ( 2

0 0

0 0

) ( 0

0 0

!2

)()

(

!2

)(

!1

)()

)()

0 1

x P x

Trong đó Pn-1(x) lại có thể phân tích giống như Pn(x) dạng (2.3) để tìm ra

Pn-1(xo) Quá trình này được tiếp tục cho đến khi ta tìm hết các hệ số của chuỗi Taylor của Pn(x)

Tổng quát thuật toán thể hiện ở Bảng 2.1 như sau:

Trang 18

for (k=0;k<=n-1;k++)

{

for (i=n-1;i>=k;i ) b[i] = b[i+1]*x + a[i];

c[k] = b[k];

for (j=n;j>=k+1;j ) a[j] = b[j];

}

printf(“\nSo do Horner tong quat”);

printf(« \nKhai trien tai x = %.4f\n »,x) ;

a Phép cộng hai đa thức: Giả sử chúng ta có hai đa thức A(x) bậc n và B(x) bậc

m với n > m Khi cộng hai đa thức này, chúng ta cộng lần lượt các hệ số cùng bậc của chúng với nhau Ta có chương trình sau:

Trang 19

b Phép nhân hai đa thức: Để thấy rõ thuật toán xác định các hệ số của đa

thức C(x) là kết quả của phép nhân hai đa thức A(x) và B(x) ta cho một ví dụ cụ thể:

Trang 20

Các hệ số của đa thức kết quả là:

Sau đây là chương trình tính tích hai đa thức:

printf("a[%d] = ",k-1);

scanf("%f",&a[k]);

} printf("Cho bac cua da thuc B m = ");

Trang 21

21

scanf("%d",&m);

printf("Vao cac he so b\n");

for (k=1;k<=m+1;k++) {

printf("b[%d] = ",k-1);

scanf("%f",&b[k]);

} printf("\n");

l=n+m;

for (k=1;k<=l+1;k++) {

if (k<=(n+1)) j=k;

else j=n+1;

if (k<=(m+1)) p=1;

else p= k-m;

c[k]=0;

for (i=p;i<=j;i++) c[k] = c[k] + a[i]*b[k-i+1];

} printf("Cac he so cua da thuc tich C voi bac %d la :\n",l);

for (k=1;k<=l+1;k++) printf("%.4f\t",c[k]);

Trang 22

Chương trình sau thực hiện việc chia 2 đa thức:

printf("a[%d] = ",k-1);

scanf("%f",&a[k]);

} printf("\n");

printf("Cho bac cua da thuc B m = ");

scanf("%d",&m);

printf("Vao cac he so b\n");

for (k=1;k<=m+1;k++) {

printf("b[%d] = ",k-1);

scanf("%f",&b[k]);

} printf("\n");

printf("Cho gia tri sai so epsilon epsi = ");

scanf("%f",&epsi);

Trang 23

23

if ((m+1)>1) {

l=n-m+1;

for (i=0;i<=t;i++) r[i]=a[i];

j=n;

for (k=1;k<=l;k++) {

q[k]=r[1]/b[1];

for (i=1;i<=j;i++)

if ((i<m+1))

r[i]=r[i+1]-q[k]*b[i+1]; else

r[i]=r[i+1];

j=j-1;

} while ((abs(r[i])<epsi)&&(j>0)) {

for (i=1;i<=j;i++) r[i]=r[i+1];

j=j-1;

}

if (abs(r[1])<epsi) r[1]=0.0;

jp=j+1;

} else

{

l=n+1;

for (k=1;k<=l;k++) q[k]=a[k]/b[1];

jp=1;

Trang 24

r[1]=0.0;

} printf("\n");

printf("Cac he so cua thuong Q(x) bac %d la : ",l);

for (k=1;k<=l;k++) printf("%.3f\t",q[k]);

printf("\n");

printf("Cac he so cua phan du R(x) bac %d la : ",jp-1);

for (k=1;k<=jp;k++) printf("%.3f",r[k]);

getch();

}

2.1.4 Sai số của đa thức nội suy

Định lý Rolle phát biểu:

Định lý Rolle: Cho f(x) là hàm số thực liên tục trên khoảng kín [a, b] và khả vi

trên khoảng hở (a, b) và f(a) = f(b) Khi đó tồn tại điểm ξ∈ (a, b) sao cho f '(ξ) = 0

Định lý: Giả sử hàm f(x) có đạo hàm liên tục đến cấp (n + 1) trên khoảng kín

[a, b] và Pm(x) là đa thức nội suy, tức là: Pm(xi) = f(xi) = yi , với i = 0, 1, , n Với các mốc nội suy là a = x0 < x1 < < xn = b

0

2.2 Đa thức nội suy Lagrange

Giả sử ta có các cặp điểm quan sát được cho ở Bảng 2.3 sau:

Trang 25

)(

(

)(

)) (

)(

)(

(

(x))

P

1 2

1

2 3 2 1 2 2

2 1

3 1 2 1 1

1 n

n

n

n

n n

x x x

x x x

x

x

x y

x x x x x x x x

y x

x x x x x y

(

)('

k n

x y

Nếu hàm f(x) liên tục trên [a, b] và có đạo hàm liên tục đến cấp (n + 1) trong (a, b), thì sai số nội suy rn(x) = f(x) - Pn(x), được cho bởi biểu thức:

Nếu gọi M = max ( 1)

Trang 26

Đa thức nội suy Lagrange có ưu điểm là đơn giản, nhưng nếu thêm nút nội suy thì phải tính lại toàn bộ, nhược điểm này sẽ được khắc phục trong công thức nội suy Newton

float lagrange(int,float [],float [],float);

Trang 27

27

ok='c';

while (ok=='c') {

printf("Tinh gia tri cua y voi x la x0 = "); scanf("%f",&x0);

printf("x[%d] = ",i);

Trang 28

scanf("%f",&x[i]);

printf("y[%d] = ",i);

scanf("%f",&y[i]);

} printf("\n");

printf(" SO LIEU BAN VUA NHAP\n");

printf(" x y\n");

for (i=1;i<=n;i++) printf("%8.4f %8.4f\n",x[i],y[i]);

ok=' ';

t=1;

flushall();

while (t) {

printf("\nCo sua so lieu khong(c/k):?");

scanf("%c",&ok);

if (toupper(ok)=='C') {

printf("Chi so cua phan tu can sua i = ");

} }

Trang 29

g0=1.0;

for (i=1;i<=n;i++)

if (i!=k)

g0=g0*(x0-x[i])/(x[k]-x[i]); p0=p0+y[k]*g0;

} return(p0);

printf("\n");

printf("%24cKET QUA TINH TOAN\n",' '); printf("%14cx %10cy\n",' ',' ');

for (k=1;k<=maxkq;k++) printf("%15.5f %15.5f\n",xx[k],yy[k]);

getch();

}

Trang 30

%Dua vao : x = [x0 x1 xn], y = [y0 y1 yn]

%ket qua: l = He so cua da thuc Lagrange bac n

Trang 31

31

yx = polyval(l, 1.5)

Kết quả y(1.5) = 1.8750

2.3 Nội suy Newton

Trong mục này, đề cập đến đa thức nội suy khi biết các mẫu quan sát rời rạc (xi, yi), sao cho mỗi lần bổ sung thêm số liệu, thì ta vẫn kế thừa được đa thức nội suy

đã tính trước đó

2.3.1 Nội suy Newton với mốc cách đều

Giả sử y0, y1, y2, là những giá trị nào đó của hàm y = f(x) tương ứng với các giá trị cách đều nhau của các đối số x0, x1, x2 tức là:

xk + 1 - xk = xk = const

Ký hiệu:

y1 - y0 = y0 ; y2 - y1 = y1 ; ; yn - yn - 1 = yn - 1 là sai phân cấp 1 y1 - y0 = 2y0 ; y2 - y1 = 2y1 ; là sai phân cấp 2 ny1 - ny0 = n + 1y0 ; ny2 - ny1 = n + 1 y1 ; là sai phân cấp n + 1

Tiến hành các phép thế liên tiếp, ta nhận được:

K n K n

y C y

)1(n

3!

n nn 3y0 + + ny0 (2.23)

Nếu trong (2.23) ta xem n không những là chỉ là số nguyên dương mà có thể là

số n = t bất kỳ, ta nhận được công thức nội suy Newton (còn gọi là Nội suy Newton tiến – do sử dụng sai phân tiến):

!3

)2)(

1(

!2

)1(

!

t t t y t

t y

Trang 32

1 !

n

n n

0

y

 = y2 – 2y1 + y0 = 10-2.7 + 5 = 1 Sai phân cấp 3: 3

0

y

 = y3 - 3y2 + 3y1 - y0 = 12-3.10 + 3.7 - 5 = -2 1

2.3.2 Nội suy Newton với mốc không cách đều

Với nội suy Newton khi sử dụng các mốc không cách đều công thức nội suy phức tạp hơn

Trong thực tế các điểm x0, x1, xn có thể không cách đều Lúc này khoảng cách xi+1 - xi = hi không phải là hằng số Trong trường hợp này ta cũng xây dựng được

Trang 34

printf("%8cx%30cy\n",' ',' ');

for (i=1;i<=n;i++) printf("%4c%8.4f%23c%8.4f\n",' ',x[i],' ',y[i]);

ok=' ';

t=0;

flushall();

while (t) {

printf("Co sua so lieu khong(c/k): ");

scanf("%c",&ok);

if (toupper(ok)=='C')

Trang 35

} a[1]=y[1];

for (j=1;j<=n-1;j++) {

for (i=1;i<=n-j;i++) y[i]=(y[i+1]-y[i])/(x[i+j]-x[i]);

a[j+1]=y[1];

} b[n]=a[n];

for (k=n-1;k>=1;k ) {

for (j=n-1;j>=1;j ) b[j]=a[j] ;

for (i=n-1;i>=k;i ) a[i]=a[i]-b[i+1]*x[k];

} for (i=n;i>=1;i ) printf("He so bac %d la :%8.4f\n",i-1,a[i]);

printf("\n");

k=0;

Trang 36

ok='c';

flushall();

while (ok=='c') {

printf("Tinh gia tri cua y tai x = ");

scanf("%f",&x0);

p=0;

for (k=n;k>=1;k ) p=p*x0+a[k];

printf("Tri so noi suy tai x0 = %4.2f la : %10.5f\n",x0,p);

getch();

printf("Ban co muon tinh tiep cac diem khac khong(c/k)");

do scanf("%c",&ok);

while ((ok!='c')&&(ok!='k'));

} }

Áp dụng Dùng chương trình này nội suy các giá trị cho trong bảng sau:

Trang 37

2.4 Nội suy Hermite

Các đa thức Lagrange, Newton thích hợp với bài toán mà hàm f xác định tại các điểm cho trước; các giá trị của f thường được xác định từ quan sát hay đo đạc

Tuy nhiên trong một số trường hợp ngoài việc xác định hàm f còn phải xác định đạo hàm f ’ của nó nữa Ví dụ, trường hợp biến độc lập là thời gian và hàm f mô

tả vị trí của một đối tượng; đạo hàm của hàm f trong trường hợp này là vận tốc v = f ‘;hoặc bài toán kết cấu tính dầm trên nền đàn hồi, ta phải xác định chuyển vị yi và góc xoay αi của dầm; thông số góc xoay αi chính là đạo hàm của chuyển vị ,

i

y

Trang 38

Giả sử f ∈ C1 [a, b] và x0, x1, , xn là các trị số khác biệt trong khoảng kín [a, b]

Đa thức duy nhất có bậc phù hợp nhất với f và f ‘ tại x0, , xn là đa thức có bậc lớn nhất là (2n + 1) cho bởi

(

) ( )

,

k k

k

x x x

x x

Ln, j (x) biểu thị đa thức hệ số Lagrange thứ j của bậc n

Số hạng sai số cho đa thức Hermite là tương tự như của đa thức Lagrange, với những sữa đổi duy nhất là cần thiết để đáp ứng số lượng gia tăng của dữ liệu được sử dụng trong các đa thức Hermite

Nếu f ∈ C2n+ 2 [a, b], thì sai số đa thức Hermite là:

  (2 2)    2 2

( )( )

Mặc dù công thức Hermite cung cấp việc mô tả đầy đủ các đa thức Hermite, sự cần thiết để xác định và đánh giá các đa thức Lagrange và các đạo hàm của chúng làm cho quá trình kéo dài ngay cả đối với các giá trị nhỏ của n Một phương pháp khác để

Trang 39

39

tạo ra xấp xỉ Hermite được dựa trên mối liên hệ giữa sự phân chia sai phân bậc n và đạo hàm bậc n của f

Nếu f ∈ Cn [a, b] và x0, x1, , xn là các giá trị khác biệt trong [a, b], thì tồn tại trị

số ξ trong (a, b) với:

 0 , , 1  ( ) 

!

n n

Để sử dụng kết quả này tạo ra các đa thức Hermite, giả thiết đầu cho rằng

những trị số riêng biệt x0, x1, , xn được cho cùng với các giá trị của f và f ‘ tại những trị số này Xác định một chuỗi mới z0, z1, , z2n +1 bởi:

z2kz2k1 x k với k = 0, 1, 2, n

Bây giờ xây dựng bảng sai phân bằng cách sử dụng các biến z0, z1, , z2n+1 Từ

z2k = z2k +1 = xk cho mổi trị số k, chúng ta không thể xác định f [z2k, z2k +1] bởi mối

quan hệ sai phân cơ bản:

Tuy nhiên, đối với mỗi trị số k chúng ta có f [xk, xk+1] = f ’(ξk) với một số ξk

trong (xk, xk +1), và lim xk+1→xk , f [xk, xk+1]= f’(xk) Vì vậy, một sự thay thế hợp lý trong tình huống này là f [z2k, z2k+1] = f’(xk), và chúng ta sử dụng:

Nếu f ∈ C1 [a, b] và x0, x1, , xn là các trị số khác biệt trong [a, b], thì

(2.34)Với z2kz2k1x kvà   ' 

2k, 2k 1 k

f z z   f x với k = 0, 1, 2,…,n Bảng sai phân cho thấy các mục đã được sử dụng cho ba cột sai phân đầu tiên khi xác định các đa thức Hermite H5(x) cho x0, x1, và x2 Mục còn lại được tạo ra theo cách sai phân bình thường (Bảng 2.4)

Trang 40

Bảng 2.4: Bảng sai phân lập cho các đối số x0, x1, và x2

z f(z) sai phân bậc 1 sai phân bậc 2

f z z z

zz

 2 3  

' 1 ,

f z z z

zz

 4 5  

' 2 ,

f z zf x

z5 = x2 f [z5] = f (x2)

Ví dụ Cho dữ liệu cho trong bảng dưới đây, dùng nội suy Hermite tính f(1.5)

Trong đó các mục gạch dưới là các dữ liệu cho, phần còn lại được tạo ra theo phương pháp sai phân chuẩn

H5(1.5) = 0.6200860 − 0.5220232(1.5 − 1.3) − 0.0897427(1.5 − 1.3)2 +

+ 0.0663657(1.5 − 1.3)2(1.5 − 1.6) + 0.0026663(1.5 − 1.3)2(1.5 − 1.6)2 –

− 0.0027738(1.5 − 1.3)2(1.5 − 1.6)2(1.5 − 1.9)

= 0.5118277

Ngày đăng: 19/05/2022, 10:58

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w