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

79 396 0
Luận văn 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 CL C M U : CÁC KI N TH NC 1.1 SAI PHÂN I: 1.2 X P X SAI PHÂN CÁC TOÁN T N 1.4 THI T L P M T BÀI TOÁN SAI PHÂN 14 1.5 V S H I T CHÍNH XÁC C PX SAI PHÂN 17 U KI I U KI N BAN U 19 1.7 CÁC VÍ D V 1.8 V KHÁI NI SAI PHÂN NH VÀ KHÔNG NH 21 N C A BÀI TOÁN SAI PHÂN 23 : 25 2.1 MÔ HÌNH TOÁN H C C A QUÁ TRÌNH LAN TRUY N KHÍ TH I (V T CH 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 I BÀI TOÁN Ô NHI M KHÍ QUY N 27 2.4.1 28 2.4.2 NGHIÊN 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 2.4.5 TÍNH C 33 NH 34 I CHO H (3.2.12)-(3.2.15) 34 : 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 u th c s c a cá c th c hi is ng d n khoa h c c a Ti n Công u Tôi xin ch u trách nhi m v nghiên c u c a H c viên ng Thang Long University Libraty DANH M C CÁC HÌNH V Hình 1: Form c a ch ng trình 38 Hình 2: Form d li u c a ch ng trình 38 Hình 3: Form nghi m c a ch ng trình 39 Hình 4: Form v th c a hàm m theo tr c x 39 Hình 5: Form v th c a hàm m theo tr c z 40 M Nhi u toán th c ti n d U n vi c nghiên c u nh ng toán biên c a t lý toán, gi b ng s m t yêu c u quan tr ng c a th c ti n Trong m t s vào nghi ng h p, th n vi ng minh c c nh i d ng công th phân ho c chu ng h p, tích c bi t toán có h s bi n thiên, toán phi n, toán mi n b t k nghi ng minh c a toán không có, ho c n nh ng h c tính nghi m ph i d Th gi i m t v i vi nghiêm tr ng Trên th gi b ng ven bi n, hi ô nhi m ngày y r t nhi u tr nm ng c m n xâm nh nhà máy m c lên không ch u nóng c bi V i vi c công nghi p hóa hi xây d ng t ph c t p Trong t li i hóa v i t ngày nhanh, nh ng khu công nghi nh c c t nhà máy th i gây h i cho i dân s ng xung quanh Lu t p trung vào gi i quy t hoán ô nhi m khí quy n nhà máy th i b c mm ng m Lu c a ch t gây ô nhi d c h n ch tác h i c a g m ph n m ph n ph l u d n ng m t trình bày ki n th nh m ph c v nc n c a khóa lu n, toán ô nhi m khí quy n nhà máy th i t xây d ng thu sai phân gi ng khói a k t qu tính toán th nghi m c a m t toán th c ti n nh m minh h a cho thu hai Ph n ph l ng c l p trình ngôn ng C++ Thang Long University Libraty Em xin chân thành c Thông em xin c u Vi n Công ngh ng d n em th i gian em làm khóa lu y cô giáo khoa Toán b n l ng th i t em làm khóa lu n Do th i gian ki n th c c a b n thân em h n ch nên ch c ch n lu n ng thi u sót, r cs b n n c a th y cô CÁC KI N TH NC SAI PHÂN trình bày ki n th nghiên c c n thi c s d ng sai phân n c a toán ô nhi m khí quy n 1.1 I: vi sai phân tìm nghi m s x p x cho m t toán v t lý c am n th c hi c: Thay mi n bi n thiên liên t c c a bi n s b i mi n bi n thiên r i r c c a nó, toán t vi phân b i m t toán t iv u ki nh bi u th c sai phân u ki nh u cm th nh nghi m c a t is d n vi c xác iv im tìm nghi m c a m t h i s nh c Khi gi i m t s toán xác l p l i giá tr c a nghi m sai phân bi n s bi n i liên t c m t mi a không gian Euclid Vì v y ta c n ch n mi n m t t p h p h u h m T p h p nh cg tìm nghi m t i m g i nh t i nút i y mi n bi n thiên liên t c c mi n bi n thiên r i r c c is i s i, t c y, x p x không gian nghi m c i Các tính ch t c a nghi c bi t x p x c nghi m xác ph thu c vào vi c ch Ta xét m t vài ví d v c thay b iv i i i Thang Long University Libraty Ví d u m n th ng N ph n b ng nhau, kho ng gi a nút lân [0,1] c n b ng x1i i1.h1 , i1 cg 1, 2, c g m chia Xi=ih (i = 0,1, ,N) i, t p t t c thành m i: xi h ih : i 1, , N l p i Có th xem x = , x N = nh xi h i ih : i 0,1 , N y(x) yh xi h u(x,t) gi n xét mi nh hình ch nh t: G x 1,0 t T n [0,1] [0,T] l h , N1 t thành N1,N2 ph n b ng Gi s N2 m chia ta v ng song song v i tr c t ng th ng nh hr xi , t j : xi ih, t j ng Giao c a i: j ,i 0, , N1 ; j 0, , N2 ; h , N1 T N2 x t h h G x = (x1,x2), x1i1 i x22 t hi i1.h1 , i1 i2 h , i2 0, 1, 2, 0, 1, 2, x1 , x2 0, i 1, i1h1 , i2 h2 , i1 , i2 0, 1, 2, (Oxì,Ox2) Ta ch c n ý nút thu c mi n G G G i x11 h i x22 i2 h , i2 i1.h1 , i1 G 0, 1, 2, nút biên yh h hay h2 h h x1 , x1 h y mi n G c a bi n x ( xi11 , xi2 ) m xi c thay b i , t c m t t p h u h n h G Thay cho hàm u(x) c a bi n liên t c x G ta s xét hàm i xi i y( xi ) d ng vecto N i y( xi ) có th vi l i nút theo m t th t x1 , x2 , , xN giá tr c a i t i nút có th yT i n c a m t vecto c t: ( y1 , y2 , , yN ) N u mi n G h u h n, chi u N c a vecto y i có vô s u h n N u G vô h n, i, s chi u c a vecto y ng xét t p h tham s Vì v i h n ph thu ih t thu c vào tham s h (ho c vào s i yh ( x) u ) N i h u ph i xem h ph n t h1 , h2 , , hN x = (x,,x2, ,xp), t vecto h (h1 , h2 , , hN ) v i y, v h (h1 , h2 , , hp ) , n u ng h p mi n G nhi u chi u: i h u theo m ng xi (i 1, , p) Hàm u(x) c a bi n s liên t c x G ph n t c a m t không gian hàm H s d không gian H h c i yh(x) l p thành m t không gian H h uh y, H0 b i i yh(x) Thang Long University Libraty Khi xét t p h i h ta có t p h p H h c a không gian i ph thu c vào tham s h Trong không gian n tính H h chu i c a || ||0 chu n không gian xu t phát H Gi s u(x) nghi m c a toán liên t u H , yh nghi m c a toán sai phân ( x p x ), yh H h u y u gi i g x p x c a yh so v i u Gi s || ||0 chu n H i || ||h x p x || || sau: lim || uh ||h || u ||0 h V i m i vecto u H 1.2 X P X SAI PHÂN CÁC TOÁN T N Gi s cho m t toán t vi phân L 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 i ta ch xét m t cách c t i m t lân c mXc nh b t k c a không gian n u v(x) liên t c xem vh (x) = v(x) T ng quát: vh H , v H , Ph : H i, t c ch rõ t p nút lân c n v i nút x c mà t Hh n ch n khuô Ph v i v(x) h s khác c a toán t L có th x p x toán t L o hàm c a v ng khác c a toán t b i bi u th c sai phân Lh vh , thay cho toán t Lv c i vk t t h p n tính giá tr i: Lh vh ( x) A ( x, )vh ( ) h U h ( xi ) Ho c: ( Lh vh )i A ( xi , x j )vh (x j ) h xi U h ( xi ) h A ( x, ) h x U h ( x) Lv b Lh vh Ví d 1: C Lv dv dx nh m t a tr c Ox l m x-h x+h v i h>0 Khai tri n v(x) công th c Taylor t i x ta có: v( x h) v( x) hv '( x) h2 v"( x) 0(h3 ) 2! (1.2.1) v( x h) v( x) hv '( x) h2 v"( x) 0(h3 ) 2! (1.2.2) có khái ni c thi t r ng v(x) t lân m x : ( x h0 , x h0 ) v i h< h0 , h0 m t s c nh T (1.2.1), (1.2.2) ta có: v '( x) v( x h) v( x) h h v ''( x) 0(h ) x p x Lv ta dùng m t bi u th c sau: L hv g vx (1.2.3) L hv L hv v( x h) v( x) h v( x h) v( x) h vx (1.2.4) c g i hàm sai phân ph i L h v o hàm sai phân ti c g i hàm sai phân trái, hay ng Các bi u th c sai phân L h v L h v nh t i ô ( x,x+ h ) ( x,x-h) Ngoài vi c tính x p x sai phân c o hàm m dv có th dx l y t h p n tính c a bi u th L(h ) v vx (1 )vx Thang Long University Libraty 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 = ""; 62 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 Thang Long University Libraty 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; 64 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 Thang Long University Libraty 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; 66 // 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, j-1)); SolutionClass->Nghiem->Cells[i][j] = tmp; 67 Thang Long University Libraty }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 68 #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 Thang Long University Libraty 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" 70 #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 Thang Long University Libraty 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) { 72 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 Thang Long University Libraty 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 Thang Long University Libraty // - void fastcall TDensityClass::CloseDensityClick(TObject *Sender) { Application->Terminate(); } // - 76

Ngày đăng: 03/07/2016, 00:57

Từ khóa liên quan

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

Tài liệu liên quan