Phương pháp sai phân giải bài toán ô nhiễm khí quyển

116 545 0
Phương pháp sai phân giải bài toán ô nhiễm khí quyển

Đ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

MỤC LỤC MỞ ĐẦU CHƯƠNG 1: CÁC KIẾN THỨC CƠ BẢN CỦA LƯỢC ĐỒ SAI PHÂN 1.1 LƯỚI VÀ CÁC BƯỚC LƯỚI: 1.2 XẤP XỈ SAI PHÂN CÁC TOÁN TỬ VI PHÂN ĐƠN GIẢN 1.4 THIẾT LẬP MỘT BÀI TOÁN SAI PHÂN 14 1.5 VỀ SỰ HỘI TỤ VÀ ĐỘ CHÍNH XÁC CỦA CÁC LƯỢC ĐỒ SAI PHÂN 17 1.6 PHƯƠNG PHÁP XẤP XỈ CÁC ĐIỀU KIỆN BIÊN VÀ ĐIỀU KIỆN BAN ĐẦU 19 1.7 CÁC VÍ DỤ VỀ LƯỢC ĐỒ SAI PHÂN ỔN ĐỊNH VÀ KHÔNG ỔN ĐỊNH 21 1.8 VỀ KHÁI NIỆM TÍNH ĐÚNG ĐẮN CỦA BÀI TOÁN SAI PHÂN .23 CHƯƠNG 2: PHƯƠNG PHÁP SAI PHÂN GIẢI BÀI TOÁN Ô NHIỄM KHÍ QUYỂN 25 2.1 MÔ HÌNH TOÁN HỌC CỦA QUÁ TRÌNH LAN TRUYỀN KHÍ THẢI (VẬT CHẤT) TRONG MÔI TRƯỜNG KHÍ (NƯỚC) 25 2.2 GIỚI THIỆU BÀI TOÁN 25 2.3 GIỚI THIỆU HÀM DELTA DIRACT .27 2.4 PHƯƠNG PHÁP SAI PHÂN GIẢI BÀI TOÁN Ô NHIỄM KHÍ QUYỂN .27 2.4.1 XÂY DỰNG LƯỢC ĐỒ SAI PHÂN 28 2.4.2 NGHIÊN CỨU LƯỢC ĐỒ SAI PHÂN (3.2.12)-(3.2.15) 30 2.4.3 MỘT VÀI KẾT QUẢ BỔ TRỢ 30 2.4.4 TÍNH GIẢI ĐƯỢC .33 2.4.5 TÍNH ỔN ĐỊNH 34 2.4.6 PHƯƠNG PHÁP GIẢI CHO HỆ (3.2.12)-(3.2.15) .34 CHƯƠNG 3: KẾT QUẢ TÍNH TOÁN THỬ NGHIỆM 37 KẾT LUẬN 41 TÀI LIỆU THAM KHẢO 42 PHỤ LỤC 43 LỜI CAM ĐOAN Tôi xin cam đoan : Luận văn công trình nghiên cứu thực cá nhân, thực hướng dẫn khoa học Tiến sĩ Nguyễn Công Điều Tôi xin chịu trách nhiệm nghiên cứu Học viên Lưu Xuân Trường DANH MỤC CÁC HÌNH VẼ Hình 1: Form chương trình 38 Hình 2: Form liệu chương trình .38 Hình 3: Form nghiệm chương trình .39 Hình 4: Form vẽ đồ thị hàm mật độ ϕ theo trục x 39 Hình 5: Form vẽ đồ thị hàm mật độ ϕ theo trục z 40 MỞ ĐẦU Nhiều toán thực tiễn dẫn đến việc nghiên cứu toán biên phương trình vật lý toán, giải toán đến đáp số số yêu cầu quan trọng thực tiễn Trong số trường hợp, thật đơn giản việc làm nhờ vào nghiệm tường minh toán dạng công thức sơ cấp, tích phân chuỗi hàm Còn đại đa số trường hợp khác, đặc biệt toán có hệ số biến thiên, toán phi tuyến, toán miền nghiệm tường minh toán không có, có phức tạp Trong trường hợp việc tính nghiệm phải dựa vào phương pháp gần Thế giới phải đối mặt với việc môi trường bị ô nhiễm ngày nghiêm trọng Trên giới xảy nhiều trận mưa axit, khí hậu nóng lên làm cho băng tan dẫn đến mực nước biển dâng lên đe dọa vùng đồng ven biển, tượng nước mặn xâm nhập sâu vào đất liền… Với việc công nghiệp hóa đại hóa với tốc độ ngày nhanh, nhà máy mọc lên không khu công nghiệp xa dân cư mà xây dựng vùng đông dân Khói độc từ nhà máy thải gây hại cho người dân sống xung quanh Luận văn tập trung vào giải hoán ô nhiễm khí nhà máy thải “phương pháp sai phân” nhằm mục đích dự đoán trước ảnh hưởng mật độ chất gây ô nhiễm để hạn chế tác hại Luận văn gồm phần mở đầu ba chương, sau tài liệu dẫn phần phụ lục Chương trình bày kiến thức lược đồ sai phân nhằm phục vụ cho chương hai Chương hai phần khóa luận, trình bày toán ô nhiễm khí nhà máy thải từ ống khói xây dựng thuật toán để giải Chương ba đưa kết tính toán thử nghiệm toán thực tiễn nhằm minh họa cho thuật toán xây dựng chương hai Phần phụ lục toàn văn chương trình lập trình ngôn ngữ C++ 12 Em xin chân thành cảm ơn TS Nguyễn Công Điều – Viện Công nghệ Thông tin tận tình hướng dẫn em thời gian em làm khóa luận, đồng thời em xin cảm ơn thầy cô giáo khoa Toán bạn lớp nhiệt tình giúp đỡ em làm khóa luận Do thời gian kiến thức thân em hạn chế nên chắn luận văn thiếu sót, mong đóng góp ý kiến thầy cô bạn CHƯƠNG CÁC KIẾN THỨC CƠ BẢN CỦA LƯỢC ĐỒ SAI PHÂN Trong chương trình bày kiến thức sở cần thiết sử dụng chương hai để nghiên cứu lược đồ sai phân ẩn toán ô nhiễm khí 1.1 LƯỚI VÀ CÁC BƯỚC LƯỚI: Để viết lược đồ sai phân tìm nghiệm số xấp xỉ cho toán vật lý phương trình vi phân cho cần thực hai bước: Thay miền biến thiên liên tục biến số miền biến thiên rời rạc nó, toán tử vi phân toán tử sai phân đó, xác định biểu thức sai phân điều kiện biên điều kiện ban đầu Sau nhận hệ phương trình đại số dẫn đến việc xác định nghiệm toán phương trình vi phân cho đưa tìm nghiệm hệ phương trình đại số nhận Khi giải số toán đó, ta xác lập lại giá trị nghiệm sai phân biến số biến đổi liên tục miền không gian Euclid Vì ta cần chọn miền tập hợp hữu hạn điểm tìm nghiệm điểm Tập hợp điểm gọi lưới Hàm xác định nút lưới gọi hàm lưới Như miền biến thiên liên tục đối số thay lưới, tức miền biến thiên rời rạc đối số Và vậy, xấp xỉ không gian nghiệm phương trình vi phân không gian hàm lưới Các tính chất nghiệm sai phân đặc biệt xấp xỉ nghiệm xác phụ thuộc vào việc chọn lưới Ta xét vài ví dụ lưới Ví dụ 1: Lưới đoạn thẳng Chia đoạn đơn vị [0,1] N phần nhau, khoảng cận xi = i h = ±1, ±2, gọi bước lưới, điểm chia Xi=ih (i = 0,1, ,N) ,i 1 nút lân 1 gọi nút lưới, tập tất nút lưới: ωh = {xi = ih : i = 1, , lập N−1} thành lưới Có thể xem x = , x N = nút lưới Ký hiệu: ϖ h = {xi = ih : i = 0,1 , N } Trên đoạn [0,1], thay cho hàm biến số liên tục y(x) xét hàm biến số rời rạc yh ( xi ) , giá trị hàm tính từ nút lưới Còn thân hàm phụ thuộc bước lưới h phụ thuộc vào tham số Ví dụ 2: Lưới mặt phẳng Xét tập hàm hai biến u(x,t) Để đơn giản xét miền xác định hình chữ nhật: G = {0 ≤ x ≤ 1, ≤ t ≤ T} Chia đoạn [0,1] [0,T] thành N1,N2 phần Giả sử h= ,τ = N1 N2 Qua điểm chia ta vạch đường song song với trục tọa độ tương ứng Giao đường thẳng nút lưới:  ϖ =t  x ,  i hr  ( j ) t: x = ih, i = j , i = 0, , N ; j = 0, , N j ;h = ,τ = T  τ N N   Ta có bước lưới h τ tương ứng với hai trục x t Các nút lân cận nút nằm đường thẳng có khoảng cách bước lưới h τ Ví dụ 3: Lưới miền hai chiều Giả sử mặt phẳng x = (x1,x2), cho miền G dạng tùy ý với biên ∂G Ta vạch đường thẳng: x1 i1= i1.h1,i1 = 0, ±1, ±2, Thang Long University Libraty x2i2= i2 h2 ,i2 = 0, ±1, ±2, hi > 0,i = 1, Do mặt phẳng ( x , ta có lưới với nút x2 ) Thang Long University Libraty (i1h1 ,i2h2 ) ,i1 ,i2 = 0, ±1, ±2, Lưới theo hướng riêng biệt (Oxì,Ox2) Ta cần ý nút thuộc miền G = G + ∂G Các nút nằm miền G gọi nút trong, lập Những điểm giao đường thành lưới ωh i x = i h ,i x2i2 = i2 h ,i2 = 0, ±1, ±2, với biên ∂G 1 gọi nút biên Ký hiệu tập hợp nút biên yh Ta thấy có nút biên mà khoảng cách đến nút gần nhỏ h hay h2 Như vậy, lưới mặt phẳng theo hướng x1, x1 lưới ϖ h = ωh + miền G không lân cận biên γh Như miền G biến x thay lưới ωh , tức tập hữu hạn điểm i i = (x , x ) ⊂ G Thay cho hàm u(x) biến liên tục x ∋ G ta xét hàm xi lưới y(xi ) , nghĩa hàm nút lưới xi∈ϖ Hàm lưới y(xi ) viết dạng vecto Nếu đánh số lại nút theo thứ tự đó: x1, x2 , , giá trị xN hàm lưới nút xem thành phần vecto cột: T y = ( y1 , y2 , , y ) Nếu miền G hữu hạn, chiều N vecto y hữu hạn Nếu G vô hạn, lưới có vô số nút lưới, số chiều vecto y vô hạn Người ta thường xét tập hợp lưới {ωh phụ thuộc vào bước lưới h } tham số Vì vậy, hàm lưới yh (x) phụ thuộc vào tham số h (hoặc vào số nút lưới ) Nếu lưới ωh không phải xem h vecto h = (h1, h2 , , hN ) với phần tử h1, h2 , , hN Cũng tương tự vậy, với trường hợp miền G nhiều chiều: x = (x,,x2, ,xp), h = (h1, h2 , , hp ) , lưới xi (i = 1, , p) theo hướng ωh Hàm u(x) biến số liên tục x ∈ G phần tử không gian hàm H0 Tập hàm lưới yh(x) lập thành không gian Hh Như vậy, sử dụng phương pháp sai phân hữu hạn, người ta thay không gian H0 không gian Hh hàm lưới yh(x) TDataClass *DataClass; // fastcall TDataClass::TDataClass(TComponent* Owner) : TForm(Owner) { } // void fastcall TDataClass::RepairDataClick(TObject *Sender) { Caption = "Sua du lieu"; EdtHz->Enabled = true; EdtHx->Enabled = true; EdtZCount->Enabled = true; EdtXCount->Enabled = true; EdtWg->Enabled = true; EdtSigma->Enabled = true; EdtAlpha->Enabled = true; EdtQ->Enabled = true; EdtH->Enabled = true; Edteps->Enabled = true; EdtHz->SetFocus(); } // void fastcall TDataClass::NewDataClick(TObject *Sender) { RepairData->Enabled = false; RepairDataClick(Sender); Caption = "Nhap du lieu:"; EdtHz->Text = ""; EdtHx->Text = ""; EdtZCount->Text = ""; EdtXCount->Text = ""; EdtWg->Text = ""; EdtSigma->Text = ""; EdtAlpha->Text = ""; EdtQ->Text = ""; EdtH->Text = ""; Edteps->Text = ""; } // void fastcall TDataClass::RecoverDataClick(TObject *Sender) { EdtHz->Text = Hz; EdtHx->Text = Hx; EdtZCount->Text = ZCount; EdtXCount->Text = XCount; EdtWg->Text = Wg; EdtSigma->Text = Sigma; EdtAlpha->Text = Alpha; EdtQ->Text = Q; EdtH->Text = H; Edteps->Text = Eps; Edtfu->Text = fu; Edtfd->Text = fd; } // void fastcall TDataClass::SolveProplemClick(TObject *Sender) { Hide(); SolutionClass->GiaiHe(); 63 Visible = true; } // void fastcall TDataClass::CloseDataClick(TObject *Sender) { Application->Terminate(); } // void fastcall TDataClass::FormCreate(TObject *Sender) { Hz = EdtHz->Text; Hx = EdtHx->Text; ZCount = EdtZCount->Text; XCount = EdtXCount->Text; Wg = EdtWg->Text; Sigma = EdtSigma->Text; Alpha = EdtAlpha->Text; H = EdtH->Text; Q = EdtQ->Text; Eps = Edteps->Text; fd = Edtfd->Text; fu = Edtfu->Text; EdtHz->Enabled = false; EdtHx->Enabled = false; EdtZCount->Enabled = false; EdtXCount->Enabled = false; EdtWg->Enabled = false; EdtSigma->Enabled = false; EdtAlpha->Enabled = false; EdtQ->Enabled = false; EdtH->Enabled = false; Edteps->Enabled = false; Edtfu->Enabled = false; Edtfd->Enabled = false; } // -/* Tệp SolveProplem.h -*/ // #ifndef SolveProplemH #define SolveProplemH // #include #include #include #include #include // class TSolutionClass : public TForm { published: // IDE-managed Components TLabel *Label1; TStringGrid *Nghiem; TButton *PaintX; TButton *PaintZ; TButton *BackSolution; 65 TButton *CloseSolution; void fastcall PaintXClick(TObject *Sender); void fastcall PaintZClick(TObject *Sender); void fastcall BackSolutionClick(TObject *Sender); void fastcall CloseSolutionClick(TObject *Sender); private: // User declarations public: // User declarations fastcall TSolutionClass(TComponent* Owner); void GiaiHe() ; }; // extern PACKAGE TSolutionClass *SolutionClass; // #endif /* Tệp SolveProplem.cpp -*/ // #include #pragma hdrstop #include "SolveProplem.h" #include "Data.h" #include "MainUnit.h" #include "PaintDensity.h" // #pragma package(smart_init) #pragma resource "*.dfm" TSolutionClass *SolutionClass; // fastcall TSolutionClass::TSolutionClass(TComponent* Owner) : TForm(Owner) { } // void fastcall TSolutionClass::BackSolutionClick(TObject *Sender) { DataClass->RepairData->Enabled = true; Close(); } // void TSolutionClass::GiaiHe() { MainClass->GiaiHePT(); Nghiem->ColCount = MainClass->XCount+1; Nghiem->RowCount = MainClass->ZCount+1; String tmp; int i,j; Nghiem->Cells[0][0] = " Z \\ X "; for(i=1;iRowCount;i++) Nghiem->Cells[0][i] = DataClass->EdtHz->Text.ToDouble()*(i-1); for(j = 1;jColCount;j++) Nghiem->Cells[j][0] = DataClass->EdtHx->Text.ToDouble()*(j-1); for(i=1;iColCount;i++) for(j=1;jRowCount;j++) { if(MainClass->GetNghiem(i-1,j-1) > 0.00005) { tmp.sprintf("%0.4f", MainClass->GetNghiem(i-1, j1)); SolutionClass->Nghiem->Cells[i][j] = tmp; 67 }else tmp = 0; SolutionClass->Nghiem->Cells[i][j] = tmp; } ShowModal(); MainClass->GiaiPhongBN1(); } void fastcall TSolutionClass::PaintXClick(TObject *Sender) { DensityClass->Init(true); } // -void fastcall TSolutionClass::PaintZClick(TObject *Sender) { DensityClass->Init(false); } // void fastcall TSolutionClass::CloseSolutionClick(TObject *Sender) { Application->Terminate(); } // /* Tệp PaintDensity.h -*/ // #ifndef PaintDensityH #define PaintDensityH // #include #include #include #include #include "CGRID.h" #include // class TDensityClass : public TForm { published: // IDE-managed Components TPanel *Panel1; TLabel *Label8; TComboBox *RowColPaint; TComboBox *PenStyle; TLabel *Label6; TLabel *Label5; TCColorGrid *PenColor; TPanel *Panel2; TLabel *CaptionDensity; TLabel *Label4; TCheckBox *NhieuDuong; TButton *Paint; TButton *BackDensity; TButton *CloseDensity; void fastcall PaintClick(TObject *Sender); void fastcall BackDensityClick(TObject *Sender); void fastcall FormCreate(TObject *Sender); void fastcall CloseDensityClick(TObject *Sender); 69 void fastcall FormClose(TObject *Sender, TCloseAction &Action); void fastcall FormPaint(TObject *Sender); private: TPoint goc; public: bool PaintX,Ve; int Cao,Xa,Sodinh; double DoChiaX,DoChiaY; TPoint *ToaDo; fastcall TDensityClass(TComponent* Owner); void VeTruc(); void Init(bool Ve); void VeMatDo(); }; // extern PACKAGE TDensityClass *DensityClass; // #endif /* Tệp PaintDensity.cpp -*/ // #include #pragma hdrstop #include "MainUnit.h" #include "Data.h" #include "SolveProplem.h" #include "PaintDensity.h" const TPenStyle PenStyles[] = {psSolid,psDashDotDot,psClear,psInsideFrame}; // #pragma package(smart_init) #pragma link "cgrid" #pragma link "cgrid" #pragma resource "*.dfm" TDensityClass *DensityClass; // fastcall TDensityClass::TDensityClass(TComponent* Owner) : TForm(Owner) { } // void TDensityClass::VeTruc() { Canvas->Pen->Style = psSolid; Canvas->Pen->Width = 2; Canvas->Pen->Color = clBlack; Canvas->MoveTo(goc.x,goc.y); Canvas->LineTo(goc.x,goc.y-Cao); Canvas->MoveTo(goc.x,goc.y); Canvas->LineTo(goc.x + Xa,goc.y); Canvas->MoveTo(goc.x,goc.y - Cao); Canvas->LineTo(goc.x - 3,goc.y - Cao + 3); 71 Canvas->MoveTo(goc.x,goc.y - Cao); Canvas->LineTo(goc.x + 3,goc.y - Cao + 3); Canvas->MoveTo(goc.x +Xa,goc.y); Canvas->LineTo(goc.x + Xa - 3,goc.y + 3); Canvas->MoveTo(goc.x + Xa,goc.y); Canvas->LineTo(goc.x + Xa - 3,goc.y - 3); Canvas->Pen->Width = 1; Canvas->TextOut(goc.x+5,goc.y - Cao - 7, Label4->Caption); int Giatrikhoang = MainClass->GetNghiem(0,MainClass->K)/10; for(int i = 1; iMoveTo(goc.x - 4,goc.y - i*Giatrikhoang*DoChiaY); Canvas->LineTo(goc.x + 4,goc.y - i*Giatrikhoang*DoChiaY); Canvas->TextOut(goc.x-40,goc.y - i*Giatrikhoang*DoChiaY7,i*Giatrikhoang); } } // void _fastcall TDensityClass::FormPaint(TObject *Sender) { VeTruc(); VeMatDo(); } // void { fastcall TDensityClass::PaintClick(TObject *Sender) int i,n = RowColPaint->ItemIndex; for(i=0;iGetNghiem(i,n)*DoChiaY; else ToaDo[i].y = goc.y-MainClass->GetNghiem(n,i)*DoChiaY; } if(NhieuDuong->Checked) VeMatDo(); else Invalidate(); } // -void _fastcall TDensityClass::FormClose(TObject *Sender,TCloseAction &Action) { delete ToaDo; } // -void TDensityClass::Init(bool Ve) { if(Ve) { Caption = CaptionDensity->Caption + " x:"; Label8->Caption = "Chon gia tri z:"; PaintX=true; Sodinh = MainClass->XCount; ToaDo = new TPoint[Sodinh]; 73 for(int i = 0;i < MainClass->ZCount;i++) RowColPaint->Items->Add(i*MainClass->Hz); }else { Caption = CaptionDensity->Caption + " z:"; Label8->Caption = "Chon gia tri x:"; PaintX=false; Sodinh = MainClass->ZCount; for(int i = 0;i < MainClass->XCount;i++) RowColPaint->Items->Add(i*(MainClass->Hx)); ToaDo = new TPoint[Sodinh]; } DoChiaX=(Xa - 5)/Sodinh; DoChiaY=(Cao - 5)/MainClass->GetNghiem(0,MainClass->K); RowColPaint->ItemIndex = 0; NhieuDuong->Checked = false; SolutionClass->Hide(); Invalidate(); ShowModal(); SolutionClass->Visible = true; } // -void TDensityClass::VeMatDo() { Canvas->Pen->Style = PenStyles[PenStyle->ItemIndex]; Canvas->Pen->Width = 1; Canvas->Pen->Color = PenColor->ForegroundColor; Canvas->Polyline(ToaDo,Sodinh-1); for(int i = 1;iPen->Color = clBlack; Canvas->MoveTo(goc.x+2*i*DoChiaX,goc.y - 4); Canvas->LineTo(goc.x+2*i*DoChiaX,goc.y + 4); Canvas->TextOut(goc.x+2*i*DoChiaX-5,goc.y+10,2*i); } if(PaintX) Canvas->TextOut(goc.x+Xa,goc.y+10,"x=i*"+DataClass->EdtHx>Text); else Canvas->TextOut(goc.x+Xa,goc.y+10,"z=i*"+DataClass->EdtHz>Text); } // -void fastcall TDensityClass::BackDensityClick(TObject *Sender) { RowColPaint->Items->Clear(); Close(); } // void fastcall TDensityClass::FormCreate(TObject *Sender) { goc.x = 50; goc.y = Panel2->Top - 30; Cao = goc.y - Panel1->Top - Panel1->Height - 20; Xa = DensityClass->Width - 100; PenStyle->ItemIndex = 0; } 75 // void fastcall TDensityClass::CloseDensityClick(TObject *Sender) { Application->Terminate(); } // - [...]... 1.4 THIẾT LẬP MỘT BÀI TOÁN SAI PHÂN Để thiết lập một bài toán sai phân tương ứng với một bài toán vật lý – toán, chẳng hạn bài toán đối với môt phương trình vi phân thì ngoài việc xấp xỉ phương trình vi phân cần phải viết các dữ kiện của bài toán dưới dạng sai phân Tập hợp các phương trình sai phân đó (xấp xỉ phương trình vi phân xuất phát và các dữ kiện) được gọi là một lược đồ sai phân Các dữ kiện... là đạo hàm sai phân tiến và lùi tương + − ứng C biểu thức sai L và L hv á phân hv c Khi σ = 0, 5 ta có đạo hàm sai phân trung tâm v = 0x 1 2 (v x + )= h) vx v(x + h) − v(x − (1.2.5) 2h Như vậy có thể xấp xỉ vô số các biểu thức sai phân xấp xỉ toán tử Lv=v Khi thay toán tử vi phân Lv bởi toán tử sai phân Đại lượng ψ (x) = Lhv(x) − Lhv ta đã phạm một sai số nào đó được gọi là sai số xấp xỉ toán tử Lv... ban đầu và vế phải phương trình Ví dụ 1: Bài toán Cauchy đối với các phương trình vi phân thông thường: (1.4.1) u ' = f (x), x > 0,u(0) = u0 Chúng ta chọn một lưới sai phân đơn giản nhất wh = {xi = ih,i = 1, 2, } và tương ứng bài toán sai phân với bài toán (1.4.1) yx = ϕ; y0 = u0 H a y y = ϕ, i = 0,1, , y0 = u0 T ro n g c ô n g th ứ c n à y c ó th ể c h o v ế p h ải bằng các phương pháp khác nhau ϕi... điều kiện biên của bài toán sai phân đối với bài toán vi phân tương ứng Người ta gọi ψ là sai số xấp xỉ đối với điều kiện biên h lh yh = χh Để đánh giá sai số của lược đồ zh và sai số xấp xỉ và người ta đưa vào các chuẩn tương ứng trên các hàm lưới: || ||(1 ), || ||(2 ) và || ||(3 ) h h h Chúng ta sẽ nói rằng nghiệm của bài toán sai phân (1.5.3) hội tụ tới nghiệm của bài toán vi phân (1.5.1)-(1.5.2)... giải hệ này bằng phương pháp truy đuổi 1.5 VỀ SỰ HỘI TỤ VÀ ĐỘ CHÍNH XÁC CỦA CÁC LƯỢC ĐỒ SAI PHÂN Khi giải một bài toán vật lý nào đó bằng phương pháp gần đúng (xấp xỉ), thì mục đích cuối cùng là cần xem nghiệm được xác định bởi phương pháp xấp xỉ đó đã xấp xỉ nghiệm chính xác của bài toán với độ chính xác như thế nào Vì vậy cần xét vấn đề hội tụ và độ chính xác của các lược đồ sai phân Giả sử trong... Uh (x) là khuôn lưới tại nút x Việc thay gần L như h đùng toán v h tử vi phân vậy được Lv bởi biểu thức sai phân gọi là sự xấp xỉ toán tử vi phân bởi toán tử sai phân Ta xét vài ví dụ xấp xỉ sai phân của một vài toán tử sai phân đơn giản Ví dụ 1: Lv = dv dx Cố định một điểm nào đó của trục Ox và lấy các điểm x-h và x+h với h>0 Khai triển v(x) công thức Taylor tại x ta có: h2 v x +2 h! = v x + hv '(x)... xét sai số của lược đồ sai phân (1.5.3) zh = yh − uh Để có điều kiện đối với zh ta thay zh = yh + uh vào các đẳng thức (1.5.3) và nhận được một bài toán sai phân đối với zh cùng dạng với bài toán (1.5.3) Lh zh =ψ h , x ∈ωh ,lh zh = vh , x ∈γ h (1.5.4) trong đó ψ h = ϕh − Lhuh , x ∈ωh , vh = χh − lhuh Các vế phải ψ h và vh của bài toán (1.5.4) được gọi lần lượt là sai số xấp xỉ phương trình và sai số... trong 1.2 XẤP XỈ SAI PHÂN CÁC TOÁN TỬ VI PHÂN ĐƠN GIẢN Giả sử cho một toán tử vi phân L tác động lên một hàm v=v(x) Khi nghiên cứu sự xấp xỉ sai phân một toán tử L thường người ta chỉ xét một cách địa phương tức là tại một lân cận nào đó của điểm X cố định bất kỳ của không gian và nếu v(x) liên tục thì xem vh (x) = v(x) Tổng quát: v h = P h v ⊂ H , v ∈ H0 , P h : H0 → Hh Sau đó cần chọn khuôn lưới, tức... 0(h +τ ) Toán tử sai phân 2 2 (σ là một số bất kỳ) 1.3 SAI SỐ XẤP XỈ TRÊN LƯỚI Chúng ta đã xem xét cách tính xấp xỉ sai phân tại một điểm và nói về bậc của phép tính xấp xỉ sai phân đó Việc đánh giá bậc xấp xỉ này thường đòi hỏi ở trên toàn lưới ωh Giả sử ωh là lưới trong miền G thuộc không gian Euclid p chiều: p G ⊂ R , x = (x1 , x2 , , x ) p Gọi H0 là không gian các hàm trơn u(x), Hh là không gian... (h1, h2 , , thì hp ) p | h |= (∑ hi2) 1/ 2 i=1 Chú ý rằng việc chọn chuẩn thích hợp để đánh giá sai số xấp xỉ liên quan đến cấu trúc của toán tử sai phân Trong trường hợp hai biến, chẳng hạn u(x,t) là nghiệm của phương trình không dừng (truyền nhiệt, truyền sóng v.v…), thì toán tử sai phân Lhτ xấp xỉ toán tử vi phân L được xác định trên các hàm lưới vh(x,t) cho trên lưới: whτ = wh × wτ = {(x,t) : x ∈ wh

Ngày đăng: 30/11/2016, 17:46

Từ khóa liên quan

Mục lục

  • MỤC LỤC

  • LỜI CAM ĐOAN

  • DANH MỤC CÁC HÌNH VẼ

  • MỞ ĐẦU

    • CHƯƠNG 1

    • 1.1 LƯỚI VÀ CÁC BƯỚC LƯỚI:

    • 1.2 XẤP XỈ SAI PHÂN CÁC TOÁN TỬ VI PHÂN ĐƠN GIẢN

    • 1.3 SAI SỐ XẤP XỈ TRÊN LƯỚI

    • 1.4 THIẾT LẬP MỘT BÀI TOÁN SAI PHÂN

    • 1.5 VỀ SỰ HỘI TỤ VÀ ĐỘ CHÍNH XÁC CỦA CÁC LƯỢC ĐỒ SAI PHÂN

    • 1.6. PHƯƠNG PHÁP XẤP XỈ CÁC ĐIỀU KIỆN BIÊN VÀ ĐIỀU KIỆN BAN ĐẦU

    • 1.7 CÁC VÍ DỤ VỀ LƯỢC ĐỒ SAI PHÂN ỔN ĐỊNH VÀ KHÔNG ỔN ĐỊNH

    • 1.8 VỀ KHÁI NIỆM TÍNH ĐÚNG ĐẮN CỦA BÀI TOÁN SAI PHÂN

  • CHƯƠNG 2 PHƯƠNG PHÁP SAI PHÂN

    • 2.1 MÔ HÌNH TOÁN HỌC CỦA QUÁ TRÌNH LAN TRUYỀN KHÍ THẢI (VẬT CHẤT) TRONG MÔI TRƯỜNG KHÍ (NƯỚC)

    • 2.2 GIỚI THIỆU BÀI TOÁN

    • 2.3 GIỚI THIỆU HÀM DELTA DIRACT

    • 2.4 PHƯƠNG PHÁP SAI PHÂN GIẢI BÀI TOÁN Ô NHIỄM KHÍ QUYỂN

    • 2.4.1 XÂY DỰNG LƯỢC ĐỒ SAI PHÂN

    • 2.4.2 NGHIÊN CỨU LƯỢC ĐỒ SAI PHÂN (3.2.12)-(3.2.15)

    • 2.4.3 MỘT VÀI KẾT QUẢ BỔ TRỢ

    • 2.4.4 TÍNH GIẢI ĐƯỢC

    • 2.4.5 TÍNH ỔN ĐỊNH

    • 2.4.6 PHƯƠNG PHÁP GIẢI CHO HỆ (3.2.12)-(3.2.15)

  • CHƯƠNG 3

  • KẾT LUẬN

  • TÀI LIỆU THAM KHẢO

  • PHỤ LỤC

    • Tệp MainUnit.h

    • Tệp MainUnit.cpp

    • // Tính giá trị của biểu thức không có ngoặc s

    • // Tính giá trị của biểu thức có ngoặc s

    • // Đẩy x vào Stack

    • // Lấy giá trị đầu tiên của Stack đặt vào x

    • // Tính giá trị hàm được biểu diễn bởi xâu str tại điểm x

    • // Kiểm tra sự phù hợp của hàm và chuyển hàm thành biểu thức để tính

    • // Khởi trị cho các biến từ dữ liệu nhập từ Form DataClass

    • // Tính các giá trị phụ ai,Ai,Bi....

    • Tệp Data.h

    • Tệp Data.cpp

    • Tệp SolveProplem.h

    • Tệp SolveProplem.cpp

    • Tệp PaintDensity.h

    • Tệp PaintDensity.cpp

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan