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

Phương pháp sai phân và ứng dụng giải một số bài toán biên đối với phương trình truyền nhiệt

106 1,4K 7
Tài liệu đã được kiểm tra trùng lặp

Đ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 106
Dung lượng 3,06 MB

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

Nội dung

Nó tích hợp các công cụ rất mạnh phục vụ tính toán, lập trình, thiết kế, mô phỏng,… trong một môi trường rất dễ sử dụng trong đó các bài toán và các lời giải được biểu diễn theo các ký h

Trang 1

MỤC LỤC

MỤC LỤC 1

LỜI MỞ ĐẦU 3

CHƯƠNG 1: GIỚI THIỆU CHUNG VỀ NGÔN NGỮ MATLAB 5

1.1 Giới thiệu về Matlab 5

1.2 Hệ thống Matlab 6

1.3 Vòng lặp For 6

1.4 Siêu tệp M_File, nguyên bản và hàm 9

1.5 Giao diện đồ họa 13

1.6 Đồ họa trong không gian ba chiều 16

1.6.1 Đồ thị đường thẳng 16

1.6.2 Đồ thị bề mặt và lưới 16

1.6.3 Thao tác với đồ thị 17

1.6.4 Các đặc điểm khác của đồ thị trong không gian ba chiều 18

1.6.5 Bảng màu 19

1.6.6 Sử dụng bảng màu 20

1.6.7 Sử dụng màu để thêm thông tin 20

1.6.8 Hiển thị bảng màu 20

1.6.9 Thiết lập và thay đổi bảng màu 21

CHƯƠNG 2: TỔNG QUAN VỀ PHƯƠNG TRÌNH SAI PHÂN 22

2.1 Bài toán có trị ban đầu 22

2.1.1 Phát biểu bài toán 22

2.1.2 Lưới sai phân 22

2.1.3 Hàm lưới 23

2.1.4 Đạo hàm lưới 23

2.1.5 Quy ước viết vô cùng bé 23

2.1.6 Công thức Taylor 23

2.1.7 Liên hệ giữa đạo hàm và hàm lưới 24

2.1.8 Phương pháp Euler hiện 25

2.1.9 Phương pháp Euler ẩn 26

2.1.10 Phương pháp Crank – Nicolson 26

2.1.11 Chú ý 27

2.2 Bài toán biên 29

2.2.1 Bài toán vi phân 29

2.2.2 Lưới sai phân 29

2.2.3 Hàm lưới 30

2.2.4 Đạo hàm lưới 30

2.2.5 Phương pháp sai phân 30

2.2.6 Giải bài toán sai phân bằng phương pháp truy đuổi 31

2.2.7 Sự ổn định của bài toán sai phân 34

2.2.8 Sự xấp xỉ 36

2.2.9 Sự hội tụ 37

2.2.10 Sai số tính toán: 39

2.2.11 Trường hợp điều kiện biên loại ba 39

CHƯƠNG 3: PHƯƠNG PHÁP SAI PHÂN GIẢI BÀI TOÁN TRUYỀN NHIỆT MỘT CHIỀU 42

3.2 Lưới sai phân và hàm lưới 43

3.2.1 Lưới sai phân 43

3.2.2 Hàm lưới 45

3.3 Xấp xỉ các đạo hàm 45

Trang 2

3.4 Phương pháp sai phân hiện 46

3.4.1 Xây dựng phương pháp 46

3.4.2 Bài toán sai phân đối với sai số 47

3.4.3 Sự xấp xỉ 48

3.4.4 Sự ổn định 48

3.4.5 Sự hội tụ 49

3.4.6 Thí dụ 50

3.5 Phương pháp sai phân ẩn 50

3.5.1 Xây dựng phương pháp 50

3.5.2 Bài toán sai phân đối với sai số 52

3.5.3 Sự xấp xỉ 52

3.5.4 Sự ổn định 53

3.5.5 Sự hội tụ 53

3.5.6 Thí dụ 54

3.6 Một số kết quả thử nghiệm 55

3.6.1 Phương pháp sai phân hiện 55

3.6.2 Phương pháp sai phân ẩn 56

CHƯƠNG 4: PHƯƠNG PHÁP SAI PHÂN GIẢI BÀI TOÁN TRUYỀN NHIỆT DỪNG HAI CHIỀU 57

4.2 Lưới sai phân và hàm lưới 59

4.2.1 Lưới sai phân 59

4.2.2 Hàm lưới 59

4.3 Bài toán sai phân 59

4.3.1 Xây dựng bài toán sai phân 59

4.3.2 Sự xấp xỉ 61

4.3.3 Nguyên lý cực đại 61

4.3.4 Một số hệ quả 62

4.3.5 Sự ổn định 65

4.3.6 Bài toán sai phân đối với sai số 66

4.3.7 Sự hội tụ và sai số 67

4.3.8 Về sai số tính toán 67

4.3.9 Giải bài toán sai phân bằng phương thức Seidel codãn 68

4.4 Kết quả thử nghiệm 71

CHƯƠNG 5: PHƯƠNG PHÁP SAI PHÂN GIẢI BÀI TOÁN TRUYỀN NHIỆT NHIỀU CHIỀU 71

5.1 Bài toán truyền nhiệt trong miền chữ nhật 71

5.1.1 Phát biểu bài toán 71

5.1.2 Lưới sai phân 72

5.1.3 Hàm lưới và đạo hàm lưới 73

5.1.4 Phương pháp sai phân hiện 75

5.1.5 Phương pháp sai phân ẩn 76

5.2 Phương pháp luân phương ẩn 77

5.2.1 Xây dựng phương pháp 77

5.2.2 Cách giải bài toán sai phân (5.12) - (5.16) 78

5.2.3 Bài toán sai phân đối với sai số 78

5.2.4 Sự ổn định 79

5.2.5 Sự xấp xỉ 82

5.2.6 Sự hội tụ 83

KẾT LUẬN 84

TÀI LIỆU THAM KHẢO 85

PHỤ LỤC 86

Trang 3

là một yêu cầu quan trọng

Một số trường hợp, công việc đó thật đơn giản nhờ vào nghiệm tường minh của bài toán dưới dạng các công thức sơ cấp, các tích phân hoặc các chuỗi hàm Nhưng đại đa số các trường hợp khác, đặc biêt là đối với các bài toán có hệ số biến thiên, các bài toán phi tuyến, các bài toán trên miền bất kỳ thì việc tìm nghiệm tường minh là rất phức tạp, có thể không có Trong những trường hợp đó việc tính nghiệm phải dựa vào các phương pháp giải gần đúng như: Phương pháp sai phân hoặc phương pháp phần tử hữu hạn

Phương pháp sai phân là phương pháp được áp dụng rộng rãi trong nhiều lĩnh vực khoa học và kỹ thuật Nội dung của nó là đưa bài toán cần xét về việc giải

hệ thức, hoặc các hệ thức liên hệ các giá trị của các hàm số tại các điểm khác nhau, như hàm số của đối số nguyên

Với thành tựu của máy tính hiện nay, thì thời gian giải các bài toán vi phân

có thể tính bằng giây, hay “có thể so sánh với thời gian viết vế phải” Người ta cũng dùng phương pháp sai phân để xét và chứng minh sự tồn tại nghiệm của các bài toán vi phân

Với những lý do trên, em đã chọn đề tài: “Phương pháp sai phân và ứng

dụng giải một số bài toán biên đối với phương trình truyền nhiệt” nhằm tìm

hiểu về phương pháp sai phân, ứng dụng phương pháp đó để cài đặt chương trình giải một số bài toán biên đối với phương trình truyền nhiệt

Bố cục đồ án gồm năm chương:

Chương 1: Giới thiệu chung về ngôn ngữ Matlab

Chương 2: Tổng quan về phương pháp sai phân

Trang 4

Chương 3: Phương pháp sai phân giải phương trình truyền nhiệt một chiều

Chương 4: Phương pháp sai phân giải phương trình truyền nhiệt dừng hai chiều

Chương 5: Phương pháp sai phân giải phương trình truyền nhiệt nhiều chiều

Đồ án được thực hiện tại khoa Công Nghệ Thông Tin–Đại học Thái Nguyên Trong quá trình thực hiện đề tài sẽ không tránh khỏi những thiếu xót và hạn chế nhất định Em rất mong nhận được sự chỉ bảo của các thầy cô giáo, và những ý kiến đóng góp của các bạn để chương trình được hoàn thiện hơn

Em xin chân thành cảm ơn khoa Công Nghệ Thông Tin, bộ môn Khoa Học

Máy Tính, các thầy cô giáo, các bạn và đặc biệt là thầy Nguyễn Đình Dũng, người

đã trực tiếp hướng dẫn và giúp đỡ em hoàn thành đồ án

Em xin chân thành cảm ơn!

Trang 5

CHƯƠNG 1 GIỚI THIỆU CHUNG VỀ NGÔN NGỮ MATLAB

1.1 Giới thiệu về Matlab

MatLab là một phần mềm chuyên dụng chạy trong môi trường Windows do hãng MathWork sản xuất và cung cấp Có thể coi MatLab là một ngôn ngữ tính toán, kỹ thuật Nó tích hợp các công cụ rất mạnh phục vụ tính toán, lập trình, thiết

kế, mô phỏng,… trong một môi trường rất dễ sử dụng trong đó các bài toán và các lời giải được biểu diễn theo các ký hiệu toán học quen thuộc

Các ứng dụng điển hình:

- Toán học tính toán

- Phát triển thuật toán

- Tạo mô hình, mô phỏng

- Khảo sát, phân tích số liệu

- Đồ hoạ khoa học kỹ thuật

- Phát triển ứng dụng, gồm cả xây dựng giao diện người dùng đồ hoạ GUI Matlab là một hệ thống tương tác mà phần tử dữ liệu cơ bản là một mảng mà không cần khai báo kích thước Điều này cho phép giải nhiều bài toán kỹ thuật , đặc biệt là các bài toán liên quan đến ma trận và vector

Matlab (Matrix Laboratory)

Ban đầu Malab được viết chỉ để phục vụ cho việc tính toán ma trận Trải qua

thời gian dài, nó đã được phát triển thành một công cụ hữu ích, một ngôn ngữ của tính toán kỹ thuật

Trong môi trường đại học, nó là một công cụ chuẩn cho các khoá học mở đầu

và cao cấp về toán học, khoa học và kỹ thuật

Trong công nghiệp, nó là công cụ được lựa chọn cho việc phân tích, phát triển

và nghiên cứu hiệu suất cao

Malab cung cấp một họ các giải pháp theo hướng chuyên dụng hoá được gọi

là các Toolbox Các toolbox cho phép người sử dụng học và áp dụng các kỹ thuật chuyên dụng cho cho một lĩnh vực nào đó Toolbox là một tập hợp toàn diện các hàm của Matlab (M-File) cho phép mở rộng môi trường Matlab để giải các lớp bài

Trang 6

toán cụ thể Các lĩnh vực trong đó có sẵn các toolbox bao gồm: xử lý tín hiệu, hệ thống điều khiển, logic mờ, mô phỏng,…

1.2 Hệ thống Matlab

Hệ thống Matlab gồm 5 thành phần chính:

- Ngôn ngữ Matlab: là một ngôn ngữ ma trận, mảng cấp cao với các câu lệnh,

hàm, cấu trúc dữ liệu, vào/ ra, các tính năng lập trình hướng đối tượng Nó cho phép lập trình các ứng dụng từ nhỏ đến các ứng dụng lớn và phức tạp

- Môi trường làm việc Matlab: Đây là một bộ các công cụ và phương tiện mà

ta sử dụng hoặc lập trình Nó bao gồm các phương tiện cho việc quản lý các biến trong không gian làm việc Workspace cũng như xuất nhập dữ liệu, gỡ rối,…

- Xử lý đồ họa: Đây là hệ thống đồ hoạ của Matlab Nó bao gồm các lệnh cao

cấp cho trực quan hoá dữ liệu hai chiều và ba chiều, xử lý ảnh, ảnh động,… Nó cung cấp các lệnh cấp thấp cho phép ta tuỳ biến giao diện đồ họa cũng như xây dựng một giao diện đồ hoạ mạnh và hoàn chỉnh các ứng dụng của Matab

- Thư viện toán học Matlab: Đây là tập hợp khổng lồ các thuật toán tính toán

từ các hàm cơ bản như sin, cos,… tới các hàm cơ bản như nghịch đảo ma trận, tìm trị riêng ma trận,…

- Giao diện chương trình ứng dụng Matlab API (Application program

Interface): Đây là thư viện cho phép viết các chương trình C và Fortran tương thích

với Matlab, Simulink, một chương trình đi kèm với Matlab, là một hệ thống tương tác với việc mô phỏng các hệ động học phi tuyến Nó là một chương trình đồ hoạ sử dụng chuột để thao tác cho phép mô hình hoá một hệ thống bằng cách vẽ một sơ đồ khối trên màn hình Nó có thể làm việc với các hệ thống tuyến tính, hệ thống phi tuyến, hệ thống liên tục theo thời gian, hệ gián đoạn theo thời gian,…

1.3 Vòng lặp For

MATLAB có phiên bản riêng của nó về vòng lặp “DO” hoặc “FOR” tìm

thấy trong các ngôn ngữ máy tính Nó cho phép một câu lệnh, một nhóm lệnh, được lặp lại một số lần cố định trước

Ví dụ:

For i=1:n, x(i) = 0, end

Trang 7

Gán 0 vào n phần tử đầu của x Nếu n nhỏ hơn 1 thì lệnh vẫn hợp pháp, nhưng câu lệnh bên trong không được thực hiện Nếu x chưa có, hoặc có ít hơn n

phần tử thì không gian thêm vào được tự động phân phối

A

Dấu chấm phẩy cuối câu lệnh bên trong vòng lặp để hủy việc in lặp ra màn

hình, trong khi lệnh A sau vòng lặp hiển thị kết quả cuối cùng

Một điểm quan trọng là: mỗi vòng lặp for phải gắn với từ khóa end Nếu

nhập vào lệnh:

For i = 1 : n, x(i) = 0

Thì hệ thống sẽ kiên nhẫn chờ nhập các lệnh còn lại trong thân vòng lặp Không có

gì xảy ra cho đến khi đánh vào end

Trang 8

end end

Nhưng vòng lặp đơn với các phép toán trên vectơ có ý nghĩa hơn và cũng minh họa

cho vấn đề vòng lặp for có thể chạy được

expression đúng là một ma trận, vì trong MATLAB, các cột của ma trận được gán

từng cột vào biến v và rồi các lệnh statements được thực hiện Một cách rõ ràng

hơn của việc hoàn thành cùng công việc này là:

Trang 9

Thông thường expression là loại như m:n, hoặc m:i:n, đó là ma trận chỉ có một

dòng, bởi vậy các cột của nó đơn giản là các đại lượng vô hướng Trong trường hợp

đặc biệt này, vòng lặp for giống như các vòng lặp “FOR” hay “DO” của các ngôn

ngữ lập trình khác

1.4 Siêu tệp M_File, nguyên bản và hàm

MATLAB thường dùng chế độ dòng lệnh; khi nhập một dòng lệnh đơn thì MATLAB thực hiện ngay lập tức và hiển thị kết quả MATLAB cũng có khả năng

thực hiện một dãy các lệnh lưu trong một tệp Hai chế độ này tạo thành một môi trường thông dịch

Các tệp chứa các lệnh của MATLAB gọi là siêu tệp M-file vì chúng có tên

mở rộng là “.m” Ví dụ một tên tệp là csdl.m có thể chứa các lệnh của MATLAB

để tính các hàm csdl

Một M-file gồm một dãy các lệnh chuẩn của MATLAB, có thể chứa các

tham chiếu đến các M-file khác, một M-file có thể gọi đệ quy đến chính nó

Kiểu thứ nhất của M-file là một dãy dài tùy ý các lệnh Các tệp như thế gọi là các tệp nguyên bản Kiểu thứ hai của M-file cung cấp khả năng mở rộng

MATLAB, gọi là tệp hàm, chúng cho phép các hàm mới thêm vào các hàm đã có

Nhiều tính năng của MATLAB nhận được từ khả năng này để tạo ra các hàm mới,

để giải các bài toán do người dùng chỉ định

Cả hai kiểu M-file, nguyên bản và hàm, là các tệp văn bản ASCII bình thường, và được tạo ra bằng cách dùng một trình soạn thảo văn bản hay trình xử lý

từ tùy chọn

Trang 10

 Tệp nguyên bản

Khi nguyên bản được gọi, MATLAB thực hiện các lệnh trong tệp, thay cho

việc đợi nhập từ bàn phím Các lệnh trong tệp nguyên bản thực hiện toàn cục trên

dữ liệu trong vùng làm việc Các nguyên bản thường hữu ích cho việc vận hành các phân tích, giải toán, hoặc thực hiện các công việc đòi hỏi quá nhiều lệnh mà trở nên cồng kềnh trong chế độ tương tác

Ví dụ: Giả sử các lệnh của MATLAB

% Một M-file để tính các số Fibonnaci

f = [1 1]; i = 1;

While f(i) + f(i+1) < 1000

f (i+2) = f(i) + f(i+1);

i = i + 1;

end

plot (f)

Được chứa trong một tệp tên là Fibonnaci.m Vào lệnh Fibonnaci làm cho

MATLAB thực hiện các lệnh, tính 16 số Fibonnaci đầu tiên và tạo ra hình vẽ Sau

khi thực hiện tệp xong, các biến và còn lại trong vùng làm việc

Các chương trình mẫu của MATLAB là các ví dụ tốt cho cách sử dụng các M-file để thực hiện nhiều nhiệm vụ phức tạp hơn Tên nguyên bản statup.m được

tự động thi hành khi MATLAB được gọi Các hằng vật lý, các thừa số chuyển đổi

kỹ thuật, hoặc các thứ khác muốn định nghĩa trước trong vùng làm việc có thể đặt trong các tệp này Trên hệ thống mạng hoặc nhiều người dùng, thì có một nguyên

bản tên matlab.m được dành riêng để dùng cho quản lý hệ thống Nó có thể dùng

để cài đặt các định nghĩa và các thông điệp rộng rãi

 Tệp hàm

Nếu dòng thứ nhất của một M-file chứa từ “function”, thì tệp là một tệp

hàm Một hàm khác với một nguyên bản là có thể truyền các đối số, các biến định nghĩa, thực hiện bên trong tệp là cục bộ của hàm và không thao tác toàn cục trong

Trang 11

vùng làm việc Các tệp hàm là hữu ích cho việc mở rộng MATLAB đó là tạo ra các hàm MATLAB mới bằng cách dùng chính ngôn ngữ MATLAB

Sau đây là một ví dụ đơn giản Tệp mean.m chứa các lệnh:

% MEAN giá trị trung bình, đối với vectơ, MEAN(x)

% Trả về giá trị trung bình, đối với ma trận, MEAN(x)

% Là một vectơ dòng chứa các giá trị trung bình của mỗi cột

Hãy xét vài chi tiết của mean.m:

 Dòng thứ nhất khai bào tên hàm, các đối số nhập, và các đối số xuất Không

có dòng này thì tệp sẽ là tệp nguyên bản thay vì tệp hàm

 Sau dấu % là lời chú thích và được bỏ qua

 Vài dòng đầu cung cấp tư liệu M-file, được hiển thị nếu đánh vào helpmean

Trang 12

 Các biến m, n và y là cục bộ của mean và sẽ không còn trong vùng làm việc khi mean thực hiện xong (Hoặc nếu trước đó đã có thì không bị thay đổi)

 Không cần phải đặt các số nguyên từ 1 đến 99 vào biến x Thực ra, dùng

mean với biến tên là Z Vectơ Z chứa các số nguyên từ 1 đến 99 được truyền

hoặc sao chép vào mean, ở đây nó trở thành một biến cục bộ tên là x

Một phiên bản phức tạp hơn của mean gọi là stat tính độ lệch chuẩn:

function [mean, stdev] = stat(x)

stdev = sqrt(sum(x.^2)/m – mean.^);

stat minh họa cho khả năng trả về nhiều đối số xuất

Ví dụ này minh họa cho cách dùng biến thường xuyên nargin để tìm số đối

số nhập Biến nargout, mặc dù không được dùng ở đây nhưng chứa số đối số xuất

Vài gợi ý trợ giúp:

Trang 13

Khi một tệp M-hàm được gọi lần đầu thì được biên dịch và đưa vào bộ nhớ Sau đó có thể sử dụng cho các lần gọi sau mà không cần biên dịch lại Nó còn trong

bộ nhớ trừ khi không đủ bộ nhớ, trong trường hợp này có thể bị xóa tự động

Lệnh what trình bày danh sách thư mục các tệp M-file có thể sử dụng trong thư mục hiện hành, lệnh type liệt các tệp M-file, và ! dùng để gọi trình soạn thảo,

cho phép tạo ra hoặc sửa đồi tệp M-file

Nói chung, nếu nhập tên nào đó cho MATLAB, ví dụ đánh vào whoopie, thì

MATLAB thông dịch qua các bước sau:

1 Tìm xem whoopie có phải là một biến

2 Kiểm tra whoopie có phải là hàm gắn liền

3 Tìm trong thư mục hiện hành có không một tệp có tên whoopie.m

4 Tìm trong các thư mục chỉ định bởi biến môi trường MATLABPATH

có không một tệp có tên whoopie.m

Do đó đầu tiên MATLAB thử dùng whoopie như một biến, nếu có, trước khi dùng

whoopie như một hàm

1.5 Giao diện đồ họa

Để tiện dụng và thoải mái ta có thể tạo nên một giao diện đồ hoạ (GUI) giữa

người sử dụng và Matlab Giao diện đó là một đồ hoạ giao lưu tích cực (interface), được xây dựng tương tự như một hộp đối thoại (Dialog Box) Trong giao diện đó ta

có thể xuất dữ liệu dưới cả hai dạng: Văn bản và đồ hoạ Có hai cách để tạo GUI, ta

có thể tạo theo phương thức thủ công, hoặc tận dụng các công cụ đồ hoạ do Matlab cung cấp

Phương pháp tạo GUI bằng đồ hoạ

Khi vào lệnh guide ta sẽ gọi trình đồ hoạ GUIDE để soạn thảo, thấy một Layout rỗng Việc đầu tiên phải làm là mở Menue Tools/Application Options để xác định:

 Liệu ta chỉ muốn tạo GUI dưới dạng file có định dạng fig

Trang 14

 Hay đồng thời tạo cả script (m-file) Nếu chọn option này, sau khi đã hoàn thiện, để sử dụng GUIDE ta chỉ việc nhập tên của m-file đó ở cửa sổ command Windows, hoặc kích hoạt ở Mennue Tools / Activate Figure

Tiếp theo ta lần lượt sử dụng chuột để gắp các phần tử GUI từ thư viện nằm

phía bên trái của Layout rỗng và nhả vào các vị trí ta muốn.Có thể sử dụng chuột để

co dãn, thay đổi kích thước của Layout và các phần tử thuộc Layout Các kích thước

đã xuất hiện trên Layout cũng là kích thước trên GUI sau này

Các phần tử của Layout được quản lý theo một cấu trúc phân cấp, trong đó

đồ hoạ của GUI đứng ở cấp cao nhất Có thể kiểm tra cấu trúc đó bằng cách mở cửa

sổ Tools / Object Browser

Mỗi phần tử của cửa sổ Layout đều cần phải có những đặc điểm (tham số) nhất định Để soạn thảo các tham số ấy, ta sử dụng Property Inspecter, gọi bằng

một trong các cách: Nháy chuột kép vào phần tử, dùng lệnh inspect, hay qua Menue

Tools / Property Inspector

Các tham số xác định đặc điểm của GUI

Position [left, below, with, height] Vị trí (khoảng cách, kích cỡ)

BackgroundColor [red, green, blue] Mầu nền

Style ‘pushbutton’ Diện tích chọn

Trang 15

‘frame’ Khung có mầu

(‘popupmenue’)

từ danh mục

Mọi phần tử đều có thể nhận nội dung hay giá trị cho sẵn trước, và trong quá

trình sử dụng, do gọi hàm (Call back) nội dung hay giá trị đó có thể bị thay đổi Vậy

là chúng đã có sẵn chức năng xuất dữ liệu Với ‘edit’ có cả hai chức năng: nhập và

hiển thị ký tự

Từng phần tử, tuỳ theo thứ tự gắp thả chúng, có thể bị xếp chồng lên nhau

Đặc biệt các phần tử frame cần được tạo đầu tiên để tránh chúng che lấp các phần tử

khác Sau này ta có thể thay trình tự đó bằng cách đổi thứ tự của các chuỗi lệnh

tương ứng trong m-file Ngoài ra để thu được một Layout đẹp mắt có thể sử dụng công cụ menue Layout / Align Objects để gióng thẳng hàng các phần tử của GUI

Tham số value chứa giá trị hiện tại của phần tử:

 Phần tử ‘pushbutton’ Giá trị đó cho biết, liệu diện tích của nút nhấn có được

chọn (=1) hay (=0) Hoặc đối tượng nào trong danh mục đánh số thứ tự (1, 2, 3…) được chọn

 Phần tử ‘edit’ (nhập ký tự) cho biết giá trị của số được nhập Nếu dữ liệu

nhập là chuỗi ký tự, giá trị sẽ là một ma trận

 Phần tử ‘popupmenue’ Do đặc điểm chọn mang tính duy nhất nên không tồn

tại các giá trị khác nhau

 Các phần tử còn lại: Các giá trị được cung cấp nhờ thao tác gọi hàm

Trang 16

Chức năng thực sự của các phần tử thuộc GUI nằm ẩn trong các tham số

của Callback Mỗi khi kích hoạt phần tử (nháy chuột hay nhập dữ liệu), các lệnh sẽ được chuyển cho Matlab dưới dạng chuỗi ký tự và được thực hiện

Mỗi lần khi thêm một phần tử (có khả năng thực hiện một thao tác nào đó) vào Layout của GUI, Matlab sẽ tự động bổ xung thêm một hàm con mang tên

Tagname_Callback Trong đó Tagname là ký hiệu giành cho thao tác, viết ở dòng

Tag của cửa sổ Property inspector Thông thường Matlab đặt tên cho các hàm con

đó như: checkbox1_Callback, popupmenu2_Callback,… và lần lượt đánh số (nếu

có nhiều hàm con cùng mạng), chúng theo thứ tự tăng dần

Nếu người thiết kế GUI muốn đặt tên khác, người đó sẽ phải chủ động đặt

tên trên dòng Tag trước khi cất (save) GUI Nếu đã lỡ cất rồi ta không chỉ phải thay đổi Tag trong Property Inspector, mà còn phải đồng thời thay thủ công tên hàm con trong Application M-file

1.6 Đồ họa trong không gian ba chiều

Matlab cung cấp một số hàm để hiển thị dữ liệu ba chiều như các hàm vẽ đường thẳng trong không gian ba chiều, các hàm vẽ bề mặt và khung dây, màu có thể được sử dụng thay thế cho chiều thứ tự

1.6.1 Đồ thị đường thẳng

Lệnh plot từ trong không gian hai chiều có thể mở rộng cho không gian ba chiều bằng lệnh plot3 Khuôn dạng của plot3 như sau:

plot3(X1,Y1,Z1,S1,X2,Y2,Z2,S2, ) Trong đó Xn, Yn, Zn là các vector hoặc ma trận, Sn là xâu ký tự tuỳ chọn dùng cho việc khai báo màu, tạo biểu tượng hoặc kiểu đường

Đối với đồ thị trong không gian ba chiều khi muốn đặt một xâu ký tự vào một vị trí bất kỳ ta có thể dùng hàm text, hàm text cũng có khuôn mẫu như sau:

text(x,y,z,string)

1.6.2 Đồ thị bề mặt và lưới

Matlab định nghĩa bề mặt lưới bằng các điểm theo hướng trục z ở trên đường

kẻ ô hình vuông trên mặt phẳng x-y Nó tạo nên mẫu một đồ thị bằng cách ghép các điểm gần kề với các đường thẳng Kết quả là nó trông như một mạng lưới đánh cá

Trang 17

với các mắt lưới là các điểm dữ liệu Đồ thị lưới này thường được sử dụng để quan sát những ma trận lớn hoặc vẽ những hàm có hai biến

Hàm meshgrid và hàm mesh

Bước đầu tiên là đưa ra đồ thị lưới của hàm hai biến z=f(X,Y), tương ứng với

ma trận X và Y chứa các hàng và các cột lặp đi lặp lại, Matlab cung cấp hàm

meshgrid cho mục đích này

[X,Y]=meshgrid(x,y), tạo một ma trận X, mà các hàng của nó là bản sao của

vector x, và ma trận Y có các cột của nó là bản sao của vector y Cặp ma trận này sau đó được sử dụng để ước lượng hàm hai biến sử dụng đặc tính toán học về mảng của Matlab

Để thay đổi màu sắc với sự trợ giúp của Matlab có thể tham khảo colormaps…

Hàm surf

Đồ thị bề mặt của cùng một ma trận Z trông như đồ thị lưới trước đó, ngoại

trừ khoảng cách giữa hai đường thẳng là khác nhau Đồ thị loại này dùng hàm surf

với đối số như hàm mesh

1.6.3 Thao tác với đồ thị

Matlab cho phép khai báo góc để từ đó quan sát được đồ thị trong không gian ba chiều

Hàm view

elevation ‘elevation’ mô tả vị trí người quan sát, được xem như là góc đo bằng độ

trên hệ trục x-y ‘azimuth’ mô tả góc trong hệ trục nơi người quan sát đứng

Azimuth được đo bằng độ từ phần âm trục y Phía âm trục y có thể quay

theo chiều kim đồng hồ một góc -37.5 độ từ phía người quan sát

Elevation là góc mà tại đó mắt ta thấy được mặt phẳng x-y

Sử dụng hàm view cho phép quan sát hình vẽ từ các góc độ khác nhau Ví dụ nếu elevation thiết lập âm, thì view sẽ nhìn hình từ phía dưới lên Nếu azimuth

thiết lập dương, thì hình sẽ quay ngược chiều kim đồng hồ từ điểm nhìn mặc định

Thậm chí ta có thể nhìn trực tiếp từ trên bằng cách thiết lập view(0,90) Thực ra thì

đây là điểm nhìn mặc định hai chiều, trong đó x tăng từ trái qua phải, và y tăng từ

Trang 18

trên xuống dưới, khuôn dạng view(2) hoàn toàn giống như mặc định của

view(0,90), và view(3) thiết lập mặc định trong không gian ba chiều

Lệnh view có một dạng khác mà rất tiện ích khi sử dụng là view([X Y Z])

cho phép quan sát trên một vector chứa hệ trục toạ độ decac trong không gian ba chiều Khoảng cách từ vị trí quan sát đến gốc toạ độ không bị ảnh hưởng

Có thể lấy lại các thông số azimuth và elevation mà ta quan tâm bằng lệnh

[az,el]=view

Lệnh rotate3d

Một công cụ hữu ích khác là quan sát đồ thị không gian ba chiều bởi hàm

rotate3d Các thông số azimuth và elevation có thể được tác động bởi chuột

rotate3d on cho phép chuột can thiệp rotate3d off không cho phép

Lệnh hidden

Lệnh dấu các nét khuất Khi vẽ đồ thị, thì một số phần của nó bị che khuất bởi các phần khác, khi đó nếu dùng lệnh này thì các nét khuất sẽ bị dấu đi, ta chỉ có

thể nhìn thấy phần nào nằm trong tầm nhìn Nếu chuyển đến hidden off ta có thể

nhìn thấy phần khuất đó qua mạng lưới

1.6.4 Các đặc điểm khác của đồ thị trong không gian ba chiều

* Hàm ribbon(x,y)tương tự như plot(x,y) ngoại trừ cột của y được vẽ như là một dải riêng biệt trong không gian ba chiều

* Hàm clabel tăng thêm độ cao cho đồ thị đường viền, có ba mẫu clabel(cs),

clabel(cs,V) và clabel(cs,’manual’) clabel(cs), trong đó cs là cấu trúc đường viền

được trả về từ lệnh contour, cs=contuor(z) lấy nhãn tất cả các đồ thị đường viền với độ cao của nó Vị trí của nhãn được lấy ngẫu nhiên clabel(c,’manual’) định vị nhãn đường viền ở vị trí kích chuột tương tự như lệnh ginput đã nói ở trên Nhấn phím return kết thúc việc tạo nhãn này

* Hàm contourf sẽ vẽ một đồ thị đường viền kín, không gian giữa đường

viền được lấp đầy bằng màu

* Hai mẫu trạng thái của lệnh mesh dùng với đồ thị lưới là: meshc vẽ đồ thị lưới và thêm đường viền bên dưới, meshz vẽ đồ thị lưới và đồ thị có dạng màn che

* Hàm waterfall được xem như mesh ngoại trừ một điều là hàm mesh chỉ

xuất hiện ở hướng x

Trang 19

* fill3 phiên bản ba chiều của fill, vẽ một đa giác đều trong không gian ba chiều Khuôn dạng tổng quát của nó là fill3(x,y,z,c), trong đó chiều đứng của đa

giác được chỉ bởi ba thành phần x,y,z Nếu c là một ký tự, đa giác sẽ được lấp đầy màu như ở bảng màu c cũng có thể là một vector hàng có ba thành phần ([r g b]) trong đó r, g, b là các giá trị giữa 0 và 1 thay cho các màu đỏ, xanh lá cây và xanh

da trời Nếu c là một vector hoặc ma trận, nó được sử dụng như một chỉ số chỉ ra sơ

đồ màu Nhiều đa giác có thể được tạo ra bằng cách cho thêm nhiều đối số như

fill3(x1,y1,z1,c1,x2,y2,z2,c2,…)

Lệnh rand(m,n) tạo một ma trận ngẫu nhiên m hàng n cột bao gồm các phần

tử ngẫu nhiên thuộc đoạn [0,1]

1.6.5 Bảng màu

Matlab định nghĩa biểu đồ màu như là một ma trận có ba cột Mỗi hàng của

ma trận định nghĩa một màu riêng biệt sử dụng các số trong dải 0 và 1 Những số này chỉ ra các giá trị RGB, độ nhạy của các màu thành phần đỏ, xanh lá cây, và xanh da trời trong một màu do các thành phần đó tạo ra Một số mẫu cơ bản được cho trong bảng dưới đây:

Đỏ Xanh lá cây Xanh da trời Màu

Trang 20

Hàm Mô tả bảng màu hsv Giá trị màu bão hoà (HSV) hot Đen-đỏ-vàng-trắng

gray Xám cân bằng tuyến tính bone Xám có pha nhẹ với màu xanh copper sắc thái của màu đồng

pink Màu hồng nhạt nhẹ white Trắng hoàn toàn flag Xen kẽ đỏ, trắng, xanh da trời, và đen jet Sự thay đổi màu bão hoà

prism Có màu sắc lăng kính cool Màu xanh tím

lines Màu của nét vẽ summe Bóng của xanh lá cây và vàng autumn Bóng của đỏ và vàng

winter Bóng của xanh lá cây và xanh da trời spring Bóng của magenta và yellow

kê trong bảng kiểu đường, điểm đánh dấu, màu của plot Phần lớn các hàm vẽ khác:

mesh, surf, contour, fill, pcolor và các biến của nó, sử dụng bảng màu hiện tại

1.6.7 Sử dụng màu để thêm thông tin

Màu có thể được dùng để thêm thông tin vào đồ thị ba chiều nếu nó được sử

dụng để tạo thành chiều thứ tự Các hàm như mesh và surf biến đổi màu dọc theo trục z, trừ khi một đối số màu được đưa ra như surf(X,Y,Z) hoàn toàn tương đương với surfX,Y,Z,t) trong đó thành phần thứ t được dùng như một chỉ số trong biểu đồ

màu Điều này khiến cho đồ thị đầy màu nhưng lại không thông tin khi mà trục z đã tồn tại

1.6.8 Hiển thị bảng màu

Trang 21

Ta có thể hiển thị bảng màu theo một số cách sau Một trong những cách đó

là xem tất cả các phần tử trong một ma trận bảng màu một cách trực tiếp

Ví dụ: >> hot(4)

ans = 0.3333 0 0

vị thanh màu ngang dưới hình vẽ hiện tại, colorbar(‘v’) định vị thanh màu đứng về bên phải hình vẽ colorbar không có đối số thì thêm một thanh màu ngang, nếu

thanh màu này không tồn tại hoặc là cập nhật nếu nó tồn tại

1.6.9 Thiết lập và thay đổi bảng màu

Thực tế colormaps là các ma trận, có nghĩa là ta có thể thao tác chúng giống như bất kỳ một ma trận nào khác Hàm bridhten(n) nhờ vào đặc điểm này thay đổi

colormap độ tăng hoặc độ giảm độ nhạy của của các màu đậm brighten(n) và brighten(-n) phục hồi colormap ban đầu Lệnh newmap=brighten(cmap,n) điều

chỉnh phiên bản của thanh màu đã được khai báo mà không làm ảnh hưởng đến

colormap hiện tại hoặc cmap, brighten(gcf,n) làm sáng tất cả các đối tượng trong

hình vẽ hiện tại

Ta có thể tạo colormap của riêng mình bằng cách tạo ra một ma trận

mymap m hàng, 3 cột và cài đặt nó cùng với colormap(mymap) mỗi giá trị trong

một ma trận colormap phải thuộc khoảng từ 0 đến 1 Nếu sử dụng một ma trận với

nhiều hơn hoặc ít hơn 3 cột hoặc chưa một giá trị nào đó bé thua 0 hoặc lớn hơn 1

colormap sẽ đưa ra thông báo lỗi

Ta có thể kết nối các colormap theo kiểu toán học Mặc dù kết quả đôi khi

không thể đoán trước được

Vì các colormap là các ma trận, chúng có thể được vẽ đồ thị Lệnh rgbplot

vẽ đồ thị các giá trị của colormap tương tự như lệnh plot, nhưng sử dụng màu đỏ,

màu xanh lá cây và xanh da trời cho nét vẽ rgbplot(gray) cho biết cả ba màu tăng

Trang 22

tuyến tính và đồng đều Lệnh rgbplot với một số colormap khác như jet, hsv, và

prism

Giá trị hiện tại của cmin và cmax được trả lại bằng caxis không có đối số Chúng

thường là những giá trị lớn nhất và nhỏ nhất của dữ liệu, caxis([cmin cmax]) sử dụng

colormap nguyên bản cho dữ liệu trong dải giữa cmin và cmax, những điểm dữ liệu lớn

hơn cmax sẽ bị chia ra thành các màu kết hợp với cmax Những điểm dữ liệu có giá trị nhỏ hơn cmin sẽ bị chia ra thành các màu kết hợp với cmin Nếu cmin nhỏ hơn min(data) hoặc cmax lớn hơn max(data) thì các màu kết hợp với cmin hoặc cmax sẽ không bao giờ được sử dụng; chỉ một phần nhỏ của colormap được sử dụng caxis(‘auto’) sẽ hồi phục giá trị mặc định của cmin và cmax.

CHƯƠNG 2 TỔNG QUAN VỀ PHƯƠNG TRÌNH SAI PHÂN

2.1 Bài toán có trị ban đầu

2.1.1 Phát biểu bài toán

Cho khoảng x ,0 X Tìm hàm u  u x xác định tại x ,0 X và thỏa mãn:

x ux x X f

Trong đó fx,u là một hàm số cho trước và là một số cho trước

Giả sử bài toán (2.1), (2.2) có nghiệm u  u x đủ trơn, nghĩa là nó có đạo

hàm liên tục đến cấp mà ta cần

2.1.2 Lưới sai phân

Ta chia đoạn x ,0 X thành N đoạn con bằng nhau, mỗi đoạn con dài

b aN

h   bởi các điểm x ix0i h,i0,1, ,N Tập các điểm x i gọi là một

lưới sai phân trên x ,0 X, ký hiệu là h , mỗi điểm x gọi là một nút của lưới, h i

gọi là bước đi của lưới

Ta sẽ tìm cách tính gần đúng giá trị của nghiệm u x tại các nút x i của lưới h

Đó là ý tưởng đầu tiên của phương pháp sai phân, hay còn gọi là phương pháp lưới

Trang 23

Ta sẽ thấy rằng khi h bé thì đạo hàm lưới “xấp xỉ” được đạo hàm thường

2.1.5 Quy ước viết vô cùng bé

Khái niệm xấp xỉ liên quan đến khái niệm vô cùng bé Để viết các vô cùng

bé một cách đơn giản ta sẽ áp dụng qui ước sau đây:

Giả sử đại lượng  h là một vô cùng bé khi h0 Nếu tồn tại số 0 và hằng số M 0 sao cho:

Trang 24

Giả sử F x là một hàm số xác định và có đạo hàm đến cấp m 1 trong một khoảng  ,  chứa x và x x , x có thể dương hay âm Khi đó người ta chứng minh được công thức Taylor sau:

      

  c F

m

x x

F m x

x F x x

F x x F x x F

m m m

m

1 1

'' 2 '

!1

!

!2

M x

!

!2

!1

m

x O x F m x

x F

x x

F

x x F x x F

2.1.7 Liên hệ giữa đạo hàm và hàm lưới

Giả sử hàm u x đủ trơn Theo công thức Taylor (2.4) ta có:

      '   2

1 u x h u x h u x O h x

Ta suy ra:

 x O h u

h

x u x u

Do đó:

Trang 25

   

 x O h u

h

x u x u

2 ' 2

2 1

2

!2

12

h x

u

h x

u

h x

2 ' 2

2

2

!2

12

h x

u

h x

u

h x

h

x u x u u

xi i

h O x

u h

x u x u

i i

2.1.8 Phương pháp Euler hiện

Bây giờ thay trong (1.1) u' x i

bởi u thì (1.5) cho: xi

 x O h fx u xO h u

h

x u x u

,'

1

Ta suy ra:

         2

1 u x h f x,u x O h x

Trang 26

Công thức (1.10) cho phép tính v khi đã biết i 1 v Dựa vào (1.2) ta đặt thêm i

Thì hai công thức (2.10), (2.11) cho phép tính ra tất cả các

Phương pháp tính bằng (2.10), (2.11) gọi là phương pháp Euler Sau khi đã

v ta xem i v là gần đúng của i u x i

Phương pháp Euler là phương pháp sai phân đơn giản nhất để giải gần đúng bài toán (2.1), (2.2)

Ở đây khi đã biết v muốn tính ra i v ta chỉ phải tính giá trị của biểu thức ở i 1

vế phải của (2.10), chứ không phải giải một phương trình đại số nào Vì lẽ đó

phương pháp sai phân (2.10), (2.11) thuộc loại phương pháp sai phân hiện Nó cũng

có tên là phương pháp Euler hiện

2.1.9 Phương pháp Euler ẩn

Nếu trong (2.1) ta thay u' x i bởi

i x

u thì (2.6) cho:

   

 x O h fx u xO h u

h

x u x u

i

,'

1

Ta suy ra:

         2

1 h f x ,u x O h x

u x

bằng (2.13), (2.11) lại là phương pháp sai phân khác Ở đây khi đã biết v muốn i 1

tính ra v ta phải giải phương trình đại số (2.13) đối với ẩn số i v Vì lẽ đó phương i

pháp sai phân này thuộc loại phương pháp sai phân ẩn Nó cũng có tên là phương

pháp Euler ẩn

2.1.10 Phương pháp Crank – Nicolson

Trang 27

Nếu áp dụng (2.7) ta có:

2 2

2 2

'

h

x u x

u

i i

i i

2

,,

2

,,

h O x

u x f x u x

h x u x

Công thức (2.15) cho phép tính v khi đã biết i1 v Thêm điều kiện (2.11) thì i

các công thức (2.15), (2.11) cho phép tính ra tất cả các v Ở đây khi đã biết i v i

muốn tính ra v i1 ta phải giải phương trình đại số (2.15) đối với ẩn số v i 1 Vì lẽ đó

phương pháp sai phân này thuộc loại phương pháp sai phân ẩn Nó cũng có tên là

phương phápCrank - Nicolson ẩn

Trang 28

pháp Euler ẩn Cụ thể hơn người ta chứng minh được rằng với giả thiết

const L

h O

Euler h

O x

u

 Sau khi đã tính v ta xem nó là gần đúng của i u x i , nhưng vẫn còn nhiều câu hỏi phải giải đáp, như: cho h0 thì tại x xác định, i v có iu x i hay không? Và sai số v  i u x i có thể có ước lượng là bao nhiêu được không?

 Để chứng minh sự hội tụ và đánh giá sai số ta cần đến kết quả sau:

Bổ đề 1: Nếu  i là những đại lượng thỏa mãn:

Trang 29

2 0 1

i i

B B

B C

Đó là (2.18) Với điều kiện (2.17) ta có:

B 1 B 2 B 1

Từ đó suy ra (2.19) và (2.20)

2.2 Bài toán biên

2.2.1 Bài toán vi phân

Cho hai số a và b với Tìm hàm u  u x xác định tại axb thỏa mãn

Giả sử bài toán (2.21) – (2.22) có nghiệm duy nhất u đủ trơn trên a, b

Chú ý: Đây chính là bài toán biên của phương trình elip một chiều Nó mô tả

hiện tượng truyền nhiệt dừng trong một thanh vật chất mà nhiệt độ ở hai đầu mút của thanh được ấn định trước

2.2.2 Lưới sai phân

Ta chia đoạn a, b thành N đoạn con bằng nhau, mỗi đoạn con dài

b aN

h  bởi các điểm x iaih, i 0,1, N Mỗi điểm x i gọi là một nút lưới,

h gọi là bước lưới

Tập: hx i,1iN1

gọi là tập các nút trong

Tập: hx0, x N

Trang 30

v v

i i

1 1

h h

v v h

v v h

v v

v

i i i

i i i i

x x x

i i i

2 1 1

1 1

v a v a v

1 1

1 1 1 1

2.2.5 Phương pháp sai phân

Ta tìm cách tính gần đúng giá trị của nghiệm đúng u x i tại các nút x ih Gọi giá

trị gần đúng đó là v i Muốn có v i ta thay bài toán vi phân bởi bài toán sai phân:

a vq v f v

Trang 31

n n

n

i i

i i i i

i

d x

C x A

n i

d x

B x C x

A

d x

B x

C

1

1 1

0 1

0 0 0

1 ,,2,

n n

C A

B C

C A

B C A

B C

00

0

00

0

00

00

0

1 1

2 2

1 1 1

0 0

dạng 3 đường chéo

1

0,x , ,x n x

1

0,d , ,d n d

 Truy đuổi phải

Ta đi tìm nghiệm của hệ (2.27) trong dạng:

1, ,2,1,01

Trang 32

Từ đó ta có công thức truy hồi:

A C

B

i i i

i i

d A

i i i

i i i i

0

C

d x C

Nhưng để tính theo công thức (2.28), ta cần có x Ẩn n x sẽ được tìm nhờ n

phương trình cuối cùng của hệ (2.27)

d x C x

n n n n

A C

d A x

n n

n

n

i i

i

i

i i i

i i i i i

i i

x

n i

x

x

C

d C

B

n i

A C

d A

A C

B

1 ,,1,0

;

;

1 ,,2,1

;

;

1 1

1

0

0 1 0

0

1

1 1

(2.29)

Trang 33

Công thức tìm nghiệm hệ (2.27) theo (2.29) gọi là công thức truy đuổi Xuất phát từ

1,1 ta tính 2, 2…cuối cùng có  n,  nx ta tính tiếp n x n1, x n2, , x0 Khi tính nghiệm xuất phát từ x bên phải nên còn gọi là công thức truy đuổi phải n

 Truy đuổi trái

Bây giờ nếu ta tìm nghiệm của hệ (2.27) xuất phát từ cách đặt:

i

i i i i

i

d B

C B

C B A

;

;

1 1

B C

d B

B C

A

i i i

i i i i i

i i

i i

n n n n

n n n

n

C

d x C

A

x  1   1  có dạng (2.28’) suy ra:

n

n n n

n n

C

d C

Trang 34

0 1 0 0

Lại theo (2.28’) ta có:

1 0 1

0 0 0

B C

d B x

Như vậy nghiệm của hệ (2.27) tìm được theo công thức:

B C

A

i i i

i i

C

d B

i i i

i i i i

d B

x

0 1 0

0 1 0 0

10

2.2.7 Sự ổn định của bài toán sai phân

Trước hết để đo độ lớn của hàm lưới   1

N

max:

0

Định nghĩa: Nói bài toán sai phân (2.24) – (2.25) là bài toán ổn định nếu nó

có nghiệm duy nhất với mọi vế phải và điều kiện biên, đồng thời nghiệm thỏa mãn:

Trang 35

fM const M

Ý nghĩa của bài toán ổn định là :

Bài toán sai phân có nghiệm duy nhất, đồng thời nghiệm đó phụ thuộc liên tục vào vế phải của phương trình sai phân và điều kiện biên, nghĩa là khi vế phải của phương trình sai phân và điều kiện biên thay đổi ít thì nghiệm cũng thay đổi ít

Bất đẳng thức (2.32) nói lên ý nghĩa đó, ta gọi nó là bất đẳng thức ổn định

của bài toán (2.24) – (2.25)

Định lý:Bài toán sai phân (2.24) - (2.25) là bài toán ổn định

Chứng minh Ở trên bài toán sai phân (2.24) – (2.25) đã đưa về dạng sau Để

i i i i i i

Y

1 1

2 2 1 1

j j j

A C

F A

j j j j

A

F A

A C

Từ (2.36) ta suy ra:

Trang 36

1 1

2 1

1 1 1 2

1 1 1

j

s s j

A A

A

1 1

N F

C

j F C

1

1 0

1

 

f C

a b F

C

N

0 2

a b Z

2.2.8 Sự xấp xỉ

Trang 37

Bằng công thức Taylor (1.4) ta có:

        ''   4

3 ''

2 '

1

!3

!

h x u

h x hu x

u x

   

    ''   3

2 ''

' 1

6

h x u

h x u h

x u x u

1

82

2

h O x k

h x k

h x k

h x k a

i i

i

i i

8

14

16

12

ku

h x ku u

16

12

ku

h x ku u

i x i

Vì lẽ đó ta nói toán tử sai phân L xấp xỉ toán tử vi phân L tới cấp h  2

h O

Hơn nữa, vì v0u0  0 và v Nu N 0 nên ta cũng nói, bài

toán sai phân (2.24), (2.25) xấp xỉ bài toán vi phân (2.21), (2.22)

Trang 38

v a qz az

z

L

h x

x

x x

h

x x

x x

h M M

M u v z

Trang 39

Xấp xỉ + ổn định = Hội tụ Xấp xỉ cấp 2 + ổn định = Hội tụ cấp 2

2.2.10 Sai số tính toán:

Nếu các vế phải và điều kiện biên không có được một cách chính xác, nghĩa

là thay cho f i,, ta chỉ có   

,,

2.2.11 Trường hợp điều kiện biên loại ba

Ngoài điều kiện biên loại một (1.22) còn có trường hợp điều kiện biên loại ba:

Trang 40

0 ' 0

1

h x hu x

u x

0 ' 0

1

h x hu x

u x

0 '' 0

' 0 1

2u x O h

h x u h

u u

0 1

2

h x k

h x k

' 0 0

1 1

2 k x u x k x u x O h

h x u x k h

u u

Hay:

           '  2

0 ' 0

'

h x u x k u

Đến đây ta có thể thay k   a u' a ở (2.48) bởi a u x

1 nhưng làm như thế thì sai số xấp xỉ điều kiện biên chỉ là O h Muốn sai số xấp xỉ này có cấp cao hơn ta dựa vào (2.21) để viết:

   

 ' ' 0         0

x x x

x q x u x f x x

u x

Do đó (2.50) cho

20 ' 0 1

h x u x k u

a x   q   x u xf xxx0 + O 2

h

Ngày đăng: 02/08/2016, 22:04

HÌNH ẢNH LIÊN QUAN

Nó có sơ đồ ở hình 3.2. Sơ đồ này gọi là sơ đồ hiện bốn điểm. - Phương pháp sai phân và ứng dụng giải một số bài toán biên đối với phương trình truyền nhiệt
c ó sơ đồ ở hình 3.2. Sơ đồ này gọi là sơ đồ hiện bốn điểm (Trang 47)
Là phương pháp ẩn cổ điển, có sơ đồ hình 3.3. Sơ đồ này gọi là sơ đồ ẩn bốn điểm. - Phương pháp sai phân và ứng dụng giải một số bài toán biên đối với phương trình truyền nhiệt
ph ương pháp ẩn cổ điển, có sơ đồ hình 3.3. Sơ đồ này gọi là sơ đồ ẩn bốn điểm (Trang 52)

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