lập trình tính số và vẽ đồ thị bằng mathematica

39 1K 1
lập trình tính số và vẽ đồ thị bằng mathematica

Đ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

lập trình tính số và vẽ đồ thị bằng mathematica tài liệu, giáo án, bài giảng , luận văn, luận án, đồ án, bài tập lớn về...

1 Mục lục MỞ 1.1 1.2 1.3 1.4 1.5 1.6 1.7 ĐẦU Lý chọn đề tài: Mục tiêu nghiên cứu: Nhiệm vụ nghiên cứu: Đối tượng nghiên cứu: Phương pháp nghiên cứu: Giới hạn đề tài nghiên cứu: Cấu trúc khóa luận: NỘI DUNG 2.1 Giới thiệu tổng quan ngôn ngữ lập trình Mathematica 2.1.1 Giới thiệu sơ ngơn ngữ lập trình Mathematica 2.1.2 Giao diện tương tác Mathematica 2.1.3 Các tính Mathematica 2.2 Vẽ đồ thị hai chiều tĩnh động 2.2.1 Cú pháp 2.2.2 Các tuỳ chọn đồ thị hai chiều 2.2.3 Đồ thị hai chiều nâng cao 2.2.4 Đồ thị liệu hai chiều 2.2.5 Đồ thị hai chiều động 2.3 Vẽ đồ thị ba chiều tĩnh động 2.3.1 Đồ thị mặt ba chiều 2.3.2 Đồ thị tham số ba chiều 2.3.3 Đồ thị liệu ba chiều 2.3.4 Đồ thị ba chiều động 2.4 Ứng dụng vẽ đồ thị vào giảng dạy nghiên cứu vật lý 2.4.1 Bài tốn giao thoa sóng học 2.4.2 Bài toán chuyển động vật ném xiên 2.4.3 Ứng dụng nghiên cứu vật lý KẾT LUẬN 2 3 3 4 4 9 10 18 20 22 22 22 25 27 27 28 28 29 30 38 Phần MỞ ĐẦU 1.1 Lý chọn đề tài: Thế kỷ XX với nhiều thành tựu rực rỡ, Vật lý học có bước phát triển mạnh mẽ Mở đầu đời thuyết tương đối Einstein, thuyết lượng tử Planck, lý thuyết trường lượng tử Để nghiên cứu, khảo sát trình vật lý, xử lý tốn vật lý địi hỏi phải tính tốn phép tốn phức tạp, tốn nhiều thời gian cơng sức Vì vậy, việc đưa máy tính vào để nghiên cứu q trình tính tốn vật lý, sử dụng cơng cụ tính tốn giúp cho việc xử lý toán vật lý nhanh chóng thuận tiện Để làm điều này, ngơn ngữ lập trình giải tích Mathematica lên với ưu điểm vượt trội giao diện thân thiện, khả đồ thị siêu việt khả xử lý số liệu nhanh trở thành công cụ đắc lực cho nhà khoa học, kỹ sư, chuyên gia sinh học, giáo viên, nhà tài Với phát triển nhanh phiên Mathematica 5.0 bổ sung cho người sử dụng thao tác đơn giản, khơng phải lập trình nặng nề trước Trong Mathematica cho phép vẽ tất dạng đồ thị có hàm số với cấu trúc lệnh đơn giản đồ thị hai chiều, đồ thị ba chiều, đồ thị đường viền, đồ thị thống kê Đối với giáo viên phổ thông trung học, sử dụng phần mềm Mathematica để vẽ đồ thị hỗ trợ đắc lực cho giáo viên việc soạn giáo án lên lớp, giảng điện tử, đề thi trắc nghiệm Nên tìm hiểu vẽ đồ thị Mathematica điều cần thiết Vì lý tơi chọn đề tài "Sử dụng phần mềm Mathematica để vẽ đồ thị" làm đề tài khoá luận tốt nghiệp 1.2 Mục tiêu nghiên cứu: Nghiên cứu khai thác sử dụng phần mềm Mathematica vào việc vẽ đồ thị hai chiều ba chiều tĩnh, động ứng dụng KLTN: Sử dụng phần mềm Mathematica để vẽ đồ thị 1.3 Nhiệm vụ nghiên cứu: - 1.4 Phạm Thị HạnhThảo Tập trung tư liệu, nghiên cứu lý thuyết Nghiên cứu sử dụng cú pháp cấu trúc câu lệnh Mathematica Khai thác tính vẽ đồ thị hai, ba chiều Mathematica Ứng dụng: vẽ đồ thị số toán vật lý, khảo sát số trình vật lý Đối tượng nghiên cứu: Ngơn ngữ lập trình Mathematica với tính vẽ đồ thị 1.5 Phương pháp nghiên cứu: - Phương pháp nghiên cứu lý thuyết: Đọc tìm hiểu ngơn ngữ lập trình Mathematica Nghiên cứu bước lập trình Mathematica với tính vẽ đồ thị - Thực chương trình vẽ Mathematica với đồ thị mô tả quy luật vật lý cụ thể 1.6 Giới hạn đề tài nghiên cứu: Trong thời gian khả cho phép nghiên cứu ngơn ngữ lập trình Mathematica với tính vẽ đồ thị hai chiều ba chiều tĩnh, động ứng dụng chúng 1.7 Cấu trúc khóa luận: Khố luận gồm có ba phần: phần mở đầu, phần nội dung phần kết luận Phần mở đầu trình bày lý chọn đề tài, mục tiêu nghiên cứu, nhiệm vụ nghiên cứu, đối tượng nghiên cứu, phương pháp nghiên cứu giới hạn nghiên cứu đề tài Phần nội dung (có ba chương): Chương giới thiệu tổng quan ngơn ngữ lập trình Mathematica; Chương thực vẽ đồ thị hai chiều tĩnh động với việc thay đổi tuỳ chọn; Chương thực vẽ đồ thị ba chiều tĩnh động với việc thay đổi tuỳ chọn; Chương ứng dụng vẽ đồ thị vào số toán vật lý, khảo sát số trình vật lý Phần kết luận: Trình bày kết thu từ việc nghiên cứu vẽ đồ thị Mathematica Phần NỘI DUNG 2.1 2.1.1 Giới thiệu tổng quan ngơn ngữ lập trình Mathematica Giới thiệu sơ ngơn ngữ lập trình Mathematica Mathematica ngơn ngữ tích hợp đầy đủ tính tốn kỹ thuật Là dạng ngôn ngữ dựa nguyên lý xử lý liệu tượng trưng Thế hệ ngôn ngữ giải tích Macsyma, Reduce đời từ năm 60 kỷ XX Các ngơn ngữ chủ yếu dùng cho tốn vật lý lượng cao Nhược điểm chúng chủ yếu định hướng chạy máy tính lớn Thế hệ ngôn ngữ Maple, Mathlab, Mathematica Các ngơn ngữ có ưu điểm chạy nhanh chấp nhận nhớ nhỏ hơn, chạy hồn hảo máy tính cá nhân Trong ngơn ngữ tính tốn loại này, bật lên ngôn ngữ Mathematica với ưu điểm vượt trội giao diện thân thiện, khả đồ thị siêu việt xử lý liệu không thua ngôn ngữ tính tốn khác Nhờ khả mơ hình hố mô hệ lớn, kể hệ động mà Mathematica không ứng dụng lĩnh vực vật lý, kỹ thuật tốn mà cịn mở rộng ứng dụng lĩnh vực sinh học, khoa học xã hội, kể lĩnh vực tài phức tạp Phiên Mathematica phát hành vào năm 1988 Phiên 6.0 phiên 2.1.2 Giao diện tương tác Mathematica Mathematica đưa giao diện thân thiện với người sử dụng đặt tên ghi (notebook - thường gọi tắt nb) Các ghi dạng cửa sổ biểu diễn lượt sử dụng Mathematica bao gồm đầy đủ ghi chép chương trình nguồn, kết thực ghi ghi lại dạng file riêng Mathematica có *.nb Các ghi tổ chức thành ô (cells) cách có trật tự thứ bậc Ta nhóm nhóm lại cho thấy đầu nhóm (với số nhóm lồng tuỳ ý) KLTN: Sử dụng phần mềm Mathematica để vẽ đồ thị Phạm Thị HạnhThảo Mathematica đưa giao diện phụ bảng lệnh (Palettes) nút lệnh (Button) Người sử dụng cần nhấp chuột đơn giản tuỳ biến theo ý 2.1.3 Các tính Mathematica a Khả tính tốn số Mathematica cho phép tính cách trực tiếp giống dùng calculator với độ xác biểu thức phức tạp cách viết biểu thức cần tính bấm tổ hợp phím Shift + Enter Thí dụ ta tính biểu thức sau cách nhanh chóng: 6200 4268252238120274007969748915187737323429887453544894294954790789351129295496 19739019072139340757097296812815466676129830954465240517595242384015591919845376 100! 9332621544394415268169923885626670049071596826438162146859296389521759999322 9915608941463976156518286253697920827223758251185210916864000000000000000000000000 b Khả tính tốn với biến tượng trưng Mathematica cho phép giải phương trình hay tính tốn biểu thức mà nghiệm hay kết biểu diễn biến tượng trưng Thí dụ tính tích phân bất định theo biến chữ x: √ √ x a + xdx √ √ √ √ 3/2 a + x( a x + x ) − a2log( x + a + x) c Khả đồ hoạ hai chiều ba chiều Mathematica cho phép vẽ tất dạng đồ thị có hàm số với cấu trúc lệnh đơn giản đồ thị hai chiều, đồ thị ba chiều, đồ thị đường viền, đồ thị mật độ Thí dụ lệnh sau cho phép vẽ đồ thị hai chiều hàm số sin x+sin 2x khoảng (0, 30) (hình 1.1): P lot[Sin[x] + Sin[2x], {x, 0, 30}]; Hình 1.1 Lệnh sau cho phép ta vẽ đồ thị ba chiều hàm Sin(xy): P lot3D[Sin[xy], {x, 0, 4}, {y, 0, 4}, P lotP oints → 30]; (hình 1.2) KLTN: Sử dụng phần mềm Mathematica để vẽ đồ thị Phạm Thị HạnhThảo Mathematica không cho ta khả vẽ đồ thị hai chiều, ba chiều theo mặc định, mà người dùng sử dụng tuỳ chọn để thay đổi trình diễn đồ thị theo mục đích Hình 1.2 Chẳng hạn để khảo sát đồ thị hàm số khoảng ta cần vẽ đồ thị khoảng tuỳ chọn người sử dụng đưa Hoặc vẽ đồng thời nhiều đồ thị hệ trục toạ độ, lựa chọn màu sắc, nét vẽ đậm nhạt đồ thị khác Hình (1.3) sau ví dụ: P lot[Sin[x2], {x, 0, 3}, AxesOrigin → {−0.2, 0}, AxesStyle → {RGBColor[1, 0, 0], AbsoluteT hickness[2]}, DefaultColor → RGBColor[0, 0, 1], AxesLabel → {"Trục x", "Trục y"}, T icks → {{0, 1, 2, 3}, {−0.5, 0, 0.5, 1}}, GridLines → Automatic, P lotRange → {−0.5, 1}, ImageSize → {400, 400 ∗ 0.62}, DefaultF ont → {V nT ime, 14}, F ormatT ype → T raditionalF orm, P lotLabel → "Đồ thị y=Sin(x2)"]; Hình 1.3 d Khả tính tốn Mathematica Mathematica có khả chấp nhận liệu lớn xử lý thời gian vài giây KLTN: Sử dụng phần mềm Mathematica để vẽ đồ thị Phạm Thị HạnhThảo Thí dụ tạo ma trận 100 × 100 gồm phần tử số nguyên (dấu ";" sau câu lệnh để không in ma trận m kích thước q lớn) m = T able[Random[], {100}, {100}]; Sức mạnh tính tốn Mathematica chỗ cho giá trị riêng ma trận m biểu thị đồ thị với thời gian chưa tới giây (hình1.4) ListP lot[Abs[Eigenvalues[m]]]; Hình 1.4 Mathematica cho phép xử lý số liệu có kích thước lớn Thí dụ Mathematica cho kết xác sau khơng đầy giây cho phép tính giai thừa 100: 100! 933262154439441526816992388562667004907159682643816214685929638952175999932 29915608941463976156518286253697920827223758251185210916864000000000000000000000 000 Mathematica cịn cho phép tính tốn phép tính đại số với độ xác người sử dụng đặt hay thực tính tốn đại số mà người khó thực tay Thí dụ phép tính số Pi với độ xác đến 200 chữ số: N [Π, 200] 3.1415926535897932384626433832795028841971693993751058209749445923078164062 86208998628034825342117067982148086513282306647093844609550582231725359408128481 1174502841027019385211055596446229489549303820 Khai triển biểu thức toán học x99 + y 99: F actor[x99 + y 99] {(x + y)(x2 − xy + y 2)(x6 − x3y + y 6)(x10 − x9y + x8 y − x7y + x6y − x5 y + x4y − x3y + x2y − xy + y 10)(x20 + x19y − x17y − x16y + x14y + x13y − x11y − x10y 10 − x9y 11 + x7y 13 + x6y 14 − x4 y 16 − x3y 17 + xy 19 + y 20)(x60 + x57y − x51y − x48y 12 + x42y 18 + x39y 21 − x33y 27 − x30y 30 − x27y 33 + x21y 39 + x18y 42 − x12y 48 − x9y 51 + x3 y 57 + y 60)} Đồng thời Mathematica cho phép sử dụng thuật toán cho trước để đơn giản hoá biểu thức (dấu "%" để tham chiếu đến kết vừa đưa dòng lệnh trước) KLTN: Sử dụng phần mềm Mathematica để vẽ đồ thị Phạm Thị HạnhThảo Simplify[%] x99 + y 99 e Các thuật toán Mathematica - Khi chạy, Mathematica tự chọn thuật tốn thích hợp (trong thuật tốn sẵn có) cho tính tốn gần số Thí dụ lệnh FindRoot (tìm nghiệm phương trình), NIntegrate (tính tích phân số), NSolve (giải phương trình số): F indRoot[Cos[x] == x + log[x], {x, 1}] {x → 0.840619} NIntegrate[Log[x + Sin[x]], {x, 0, 2}] 0.555889 NSolve[x5 − 6x3 + 8x + == 0, x] {{x → −2.05411}, {x → −1.2915}, {x → −0.126515}, {x → 1.55053}, {x → 1.9216}} Hình 1.5 - Mathematica công cụ dễ dàng để xử lý ma trận Có thể tạo bảng hai chiều, biểu diễn dạng ma trận, thực phép tốn với - Mathematica dễ dàng giải phương trình vi phân lời giải đại số xác lời giải gần cho kết hàm nội suy, đồng thời biểu diễn đồ thị lời giải NDSolve[{x”[t] + x3[t] == Sin[t], x[0] == x [0] == 0}, x, {t, 0, 50}] {{x → InterpolatingF unction[{{0., 50.}}, ]}} Lời giải hàm nội suy biểu diễn đồ thị (hình 1.5) (ở ký tự "/." biểu thị cho phép thay x nghiệm câu lệnh trước (%)) P arametricP lot[Evaluate[{x[t], x [t]}/.%], {t, 0, 50}]; f Mathematica bách khoa toàn thư tốn - Mathematica có chứa sẵn hầu hết hàm đặc biệt dạng tuý toán dạng ứng dụng Thí dụ hàm Legendre: LegendreQ[3, x] 2 − 5x − x(3 − 5x2 )Log[ (1+x) ] (1−x) Phạm Thị HạnhThảo KLTN: Sử dụng phần mềm Mathematica để vẽ đồ thị - Mathematica cho phép tính tốn cách xác số lượng lớn tích phân kể tích phân đặc biệt √ xArctan[x]dx √ √ √ √ √ √ √ √ (−8 x−2 2ArcT an[1− x]+2 2ArcT an[1+ x]+4x ArcT an[x]− 2Log[−1+ √ √6 √ √ √ x − x] + 2Log[1 + x + x]) - Mathematica cho phép tính tốn xác tổng tích vơ hạn n k=1 HarmonicNumber[n, 6] g Các ứng hình ảnh Mathematica Mathematica tạo đồ thị tham số cho thấy vận động trình cách cho chạy dãy đồ thị tĩnh Thí dụ để vận động hoạt hoạ dãy đồ thị (hình 1.6): T able[P lot3D[Sin[2x]Sin[2y]Cos[t], {x, 0, Π}, {y, 0, Π}, P lotRange → {−1, 1}, BoxRatios → {1, 1, 1}, T icks → None, DisplayF unction → Indentity], {t, 0, Π, Π }]; Show[GraphicsArray[{%}, F rame → T rue]]; Hình 1.6 2.2 2.2.1 Vẽ đồ thị hai chiều tĩnh động Cú pháp Lệnh Plot[f,{x, xmin, xmax}]; vẽ đồ thị hai chiều hàm f(x) với x chạy từ xmin đến xmax (hình 2.1) Lệnh Plot[{f1, f2 }, {x, xmin, xmax}]; vẽ đồng thời đồ thị hàm {f1 , f2 } với x chạy từ xmin đến xmax (dấu ";" thêm vào cuối câu lệnh đồ thị để không câu thông báo đối tượng Graphics) (hình 2.2) KLTN: Sử dụng phần mềm Mathematica để vẽ đồ thị Phạm Thị HạnhThảo 10 P lot[T an[x/2], {x, −2Π, 2Π}]; Hình 2.1 P lot[{Sin[x], Sin[2x], Sin[3x]}, {x, 0, 2Π}]; Hình 2.2 Theo cách này, ứng với trị số x tính trực tiếp trị số hàm f (bằng thuật toán tính số Mathematica), ta có tương ứng cặp điểm đồ thị Một trình tự khác tính hàm số (có thể gần đúng) có biểu thức giải tích theo biến chữ (gọi hàm hiện) thay giá trị x vào để tính giá trị cho f(x) Trình tự thường dùng cho hàm nội suy, hàm khơng có biểu thức dạng giải tích Nó thể lệnh: P lot[Evaluate[f ], {x, xmin, xmax}] P lot[Evaluate[T able[{f1, f2 }]], {x, xmin, xmax }] (hình 2.3) P lot[Evaluate[T able[BesselJ[n, x], {n, 4}]], {x, 0, 10}]; Hình 2.3 Một lệnh theo loại thường dùng cho vẽ đồ thị nghiệm phương trình vi phân giải gần (giải số): P lot[y[x]/.nghiệm, {x, xmin, xmax }] 2.2.2 Các tuỳ chọn đồ thị hai chiều a Các tuỳ chọn mặc định đồ thị hai chiều KLTN: Sử dụng phần mềm Mathematica để vẽ đồ thị Phạm Thị HạnhThảo 25 F aceGrids → {{0, 0, −1}, {+1, 0, 0}, {0, 0, +1}}]; Hình 3.4 - Lighting: Là tuỳ chọn đồ thị ba chiều cho màu cho đồ thị Các giá trị tuỳ chọn bao gồm: Lighting → True: Có tơ màu cho đồ thị Lighting → False: Bỏ tơ màu cho đồ thị, có độ xám Giá trị mặc định tuỳ chọn True - ViewPoint: Tuỳ chọn đồ thị ba chiều cho ta tuỳ chọn điểm mà từ ta thấy đồ thị Giá trị mặc định tuỳ chọn {1.3,-2.4,2} Ta đặt lại giá trị tuỳ chọn cách: ViewPoint → {x,y,z} Thí dụ: nhìn từ mặt: {0,-2,0}, nhìn từ phía trước xuống: {0.-2,2}, nhìn thẳng từ xuống: {0,0,2}, Có thể chọn điểm nhìn từ thước lệnh Input\3D View Point Selector Thí dụ ta thay đổi điểm nhìn đồ thị hàm Sin[x y] sau: P lot3D[Sin[xy], {x, 0, 3}, {y, 0, 3}, V iewP oint → {−4.159, 2.732, 2.247}]; Hình 3.5 2.3.2 Đồ thị tham số ba chiều Đồ thị tham số ba chiều cho lệnh sau: - ParametricPlot3D[{fx, fy , fz }, {t, tmin, tmax }]: Vẽ đồ thị tham số đường ba chiều KLTN: Sử dụng phần mềm Mathematica để vẽ đồ thị Phạm Thị HạnhThảo 26 Thí dụ đường Lissajous ba chiều: P arametricP lot3D[{Cos[5t], Sin[3t], Sin[t]}, {t, 0, 2Π}]; Hình 3.6 - ParametricPlot3D[{fx, fy , fz }, {t, tmin, tmax }, {u, umin, umax }]: Vẽ đồ thị tham số mặt ba chiều P arametricP lot3D[{Sin[t], Cos[t], u}, {t, 0, 2Π}, {u, 0, 4}]; Hình 3.7 Hình 3.8 KLTN: Sử dụng phần mềm Mathematica để vẽ đồ thị Phạm Thị HạnhThảo 27 - ParametricPlot3D[{{fx, fy , fz }, {gx , gy , gz }, }]: Vẽ đồng thời vài đồ thị hình P arametricP lot3D[{{Sin[t], Cos[t], t/3}, {Cos[5t], Sin[3t], Sin[t]}}, {t, 0, 10}, V iewP oint → {1.484, −2.740, 1.319}]; (hình 3.8) 2.3.3 Đồ thị liệu ba chiều Để vẽ đồ thị liệu ba chiều ta có lệnh: ListPlot3D[array]: Cho đồ thị liệu mảng array ListPlot3D[array,s]: Cho đồ thị liệu mảng array có độ bóng s Thí dụ bề mặt g có nhiễu loạn: ListP lot3D[T able[Sin[xy] + Random[Real, {−0.15, 0.15}], {x, 0, (3Π)/2, Π/15}, {y, 0, (3Π)/2, Π/15}]]; Hình 3.9 2.3.4 Đồ thị ba chiều động Để vẽ đồ thị ba chiều động có chương trình khác (trong nhóm chương trình đồ thị) Graphics‘Animation‘ cho phép thực khn hình "hoạt hoạ" Cácb lệnh sau: Hình 3.10 Animate[plot,{t, tmin, tmax, dt}]: Vẽ đồ thị hàm plot thực trình chiếu khn hình KLTN: Sử dụng phần mềm Mathematica để vẽ đồ thị Phạm Thị HạnhThảo 28 Lệnh có tuỳ chọn: Frames số khn hình vẽ, giá trị mặc định 24; Closed giá trị mặc định False ShowAnimation[{g1 , g2 , }]: Trình chiếu khn hình "hoạt hoạ" dãy {gi } Trong nhóm có nhiều dạng lệnh SpinShow[graphics] gồm tuỳ chọn như: Frames số khn hình vẽ, mặc định 24; SpinOrigin xác định điểm nhìn, giá trị mặc định {0,0,1.5}; SpinRange góc quay đồ thị, giá trị mặc định {0,360}, Thí dụ sau vẽ đồ thị tham số g với điểm nhìn mặc định sau quay tồn trục toạ độ từ độ đến 180 độ lấy 10 khn hình:

Ngày đăng: 19/05/2014, 10:08

Từ khóa liên quan

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

Tài liệu liên quan