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

79 138 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

Header Page of 133 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 Footer Page of 133 Header Page of 133 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 Footer Page of 133 Thang Long University Libraty Header Page of 133 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 Footer Page of 133 Header Page of 133 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++ Footer Page of 133 Thang Long University Libraty Header Page of 133 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 Footer Page of 133 Header Page of 133 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 Footer Page of 133 Thang Long University Libraty Header Page of 133 Ví dụ 1: Lưới đoạn thẳng Chia đoạn đơn vị [0,1] N phần nhau, khoảng nút lân cận x1i  i1.h1 , i1  1, 2, gọi bước lưới, điểm chia Xi=ih (i = 0,1, ,N) gọi nút lưới, tập tất nút lưới: h  xi  ih : i  1, , N1 lập 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,0  t  T  Chia đoạn [0,1] [0,T] thành N1,N2 phần Giả sử h 1 ,  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:    hr   xi , t j  : xi  ih, t j  j , i  0, , N1 ; j  0, , N ; h    T  ,   N1 N2  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: x1i1  i1.h1 , i1  0, 1, 2, x2i2  i2 h , i2  0, 1, 2, hi  0, i  1, Do mặt phẳng  x1 , x2  ta có lưới với nút Footer Page of 133 Header Page of 133  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 h thành lưới Những điểm giao đường x1i1  i1.h1 , i1 x2i2  i2 h , i2  0, 1, 2, với biên G 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   h miền G không lân cận biên Như miền G biến x thay lưới h , tức tập hữu hạn điểm xi  ( xi , xi )  G Thay cho hàm u(x) biến liên tục x  G ta xét hàm 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 , , xN giá trị hàm lưới nút xem thành phần vecto cột: yT  ( y1 , y2 , , yN ) 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 h theo hướng xi (i  1, , p) Hàm u(x) biến số liên tục x  G phần tử không gian hàm H Tập hàm lưới yh(x) lập thành không gian H h Như vậy, sử dụng phương pháp sai phân hữu hạn, người ta thay không gian H không gian H h hàm lưới yh(x) Footer Page of 133 Thang Long University Libraty Header Page of 133 Khi xét tập hợp lưới h  ta có tập hợp H h  không gian hàm lưới phụ thuộc vào tham số h Trong không gian tuyến tính H h đưa vào chuẩn ||.|| tương tự lưới || ||0 chuẩn không gian xuất phát H Giả sử u(x) nghiệm toán liên tục xét u  H , yh nghiệm toán sai phân ( xấp xỉ ), yh  H h Điều yếu giải gần đánh giá độ xấp xỉ yh so với u Giả sử || ||0 chuẩn H , đương nhiên đòi hỏi || ||h xấp xỉ || ||0 theo nghĩa sau: lim || uh ||h || u ||0 h 0 Với vecto u H 1.2 XẤP XỈ SAI PHÂN CÁC TOÁN TỬ VI PHÂN ĐƠN GIẢN Giả sử cho toán tử vi phân L tác động lên hàm v=v(x) Khi nghiên cứu xấp xỉ sai phân toán tử L thường người ta xét cách địa phương tức lân cận điểm X cố định không gian v(x) liên tục xem vh (x) = v(x) Tổng quát: vh  Ph v  H , v  H , Ph : H  H h Sau cần chọn khuôn lưới, tức rõ tập nút lân cận với nút x mà giá trị hàm lưới v(x) hệ số khác toán tử L dùng để xấp xỉ toán tử L Thay đạo hàm v đại lượng khác toán tử biểu thức sai phân Lh vh , thay cho toán tử Lv Đó tổ hợp tuyến tính giá trị hàm lưới vk khuôn lưới: Lh vh ( x)   Ah ( x,  )vh ( )  Ah ( xi , x j )vh (x j )  U h ( xi ) Hoặc: ( Lh vh )i  Footer Page of 133 xi U h ( xi ) Header Page 10 of 133 Trong Ah ( x,  ) hệ số, h bước lưới, U h ( x) khuôn lưới nút x Việc thay gần đùng toán tử vi phân Lv biểu thức sai phân Lh vh gọi xấp xỉ toán tử vi phân toán tử sai phân Ta xét vài ví dụ xấp xỉ sai phân vài toán tử sai phân đơn giản Lv  Ví dụ 1: dv dx Cố định điểm trục Ox lấy điểm x-h x+h với h>0 Khai triển v(x) công thức Taylor x ta có: h2 v( x  h)  v( x)  hv '( x)  v "( x)  0(h3 ) 2! (1.2.1) h2 v "( x)  0(h3 ) 2! (1.2.2) v( x  h)  v( x)  hv '( x)  Để có khái niệm ta giả thiết v(x) hàm đủ trơn lân cận điểm x : ( x  h0 , x  h0 ) với h< h0 , h0 số cố định Từ (1.2.1), (1.2.2) ta có: v '( x)  v ( x  h)  v ( x ) h  v ''( x)  0(h ) h Để xấp xỉ Lv ta dùng biểu thức sau: L h v  v ( x  h)  v ( x )  vx h (1.2.3) L h v  v ( x  h)  v ( x )  vx h (1.2.4) L h v gọi hàm sai phân phải L h v gọi hàm sai phân trái, hay gọi đạo hàm sai phân tiến lùi tương ứng Các biểu thức sai phân L h v L h v xác định ô nút hai điểm ( x,x+h ) ( x,x-h) Ngoài việc tính xấp xỉ sai phân đạo hàm dv dx lấy tổ hợp tuyến tính biểu thức ( 1.2.3 ) ( 1.2.4 ) sau: L(h ) v   vx  (1   )vx Footer Page 10 of 133 Thang Long University Libraty Header Page 65 of 133 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 Footer Page 65 of 133 Header Page 66 of 133 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 Footer Page 66 of 133 Thang Long University Libraty Header Page 67 of 133 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 Footer Page 67 of 133 Header Page 68 of 133 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 Footer Page 68 of 133 Thang Long University Libraty Header Page 69 of 133 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 Footer Page 69 of 133 Header Page 70 of 133 // 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 Footer Page 70 of 133 Thang Long University Libraty Header Page 71 of 133 }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 Footer Page 71 of 133 Header Page 72 of 133 #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 Footer Page 72 of 133 Thang Long University Libraty Header Page 73 of 133 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 Footer Page 73 of 133 Header Page 74 of 133 #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 Footer Page 74 of 133 Thang Long University Libraty Header Page 75 of 133 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 Footer Page 75 of 133 Header Page 76 of 133 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 Footer Page 76 of 133 Thang Long University Libraty Header Page 77 of 133 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 Footer Page 78 of 133 Thang Long University Libraty Header Page 79 of 133 // - void fastcall TDensityClass::CloseDensityClick(TObject *Sender) { Application->Terminate(); } // - 76 Footer Page 79 of 133 ... MỘT BÀI TOÁN SAI PHÂN Để thiết lập toán sai phân tương ứng với toán vật lý – toán, chẳng hạn toán môt phương trình vi phân việc xấp xỉ phương trình vi phân cần phải viết kiện toán dạng sai phân. .. CHƯƠNG PHƯƠNG PHÁP SAI PHÂN GIẢI BÀI TOÁN Ô NHIỄM KHÍ QUYỂ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) Quá trình lan truyền vật chất môi trường khí. .. tục không gian hàm D  Rn  xác định theo công thức:  ,         D  R n  2.4 PHƯƠNG PHÁP SAI PHÂN GIẢI BÀI TOÁN Ô NHIỄM KHÍ QUYỂN Do toán ô nhiễm khí quyến dừng phức tạp,không có

Ngày đăng: 19/05/2017, 09:28

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

Tài liệu liên quan