1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Dùng matlab để thiết kế phần mềm trợ giúp giảng dạy và học tập

123 195 0

Đ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 123
Dung lượng 1,33 MB

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

Nội dung

Các ứng dụng tiêu biểu của Matlab bao gồm: hỗ trợ toán học và tính toán; phát triển thuật toán; mô hình mô phỏng; phân tích, khảo sát và hiển thị số liệu; đồ họa khoa học và kỹ thuật; ph

Trang 1

MỤC LỤC

MỞ ĐẦU 5

CHƯƠNG 1 MỘT SỐ KIẾN THỨC CƠ BẢN VỀ MATLAB 7

1.1 Giới thiệu chung và cách sử dụng môi trường Matlab 7

1.1.1 Khả năng và ứng dụng của matlab 7

1.1.2 Đặc điểm của Matlab 7

1.1.3 Không gian làm việc của Matlab 8

1.2 Các khái niệm cơ bản 11

1.2.1 Hằng 11

1.2.2 Biến 12

1.2.3 Kiểu dữ liệu 12

1.2.4 Các phép toán đơn giản 13

1.2.5 Biểu thức 14

1.2.6 Số phức 16

1.2.7 Tập lệnh cơ bản của Matlab 16

1.2.8 Các phép toán đối với mảng và các thao tác với mảng 22

1.3 Các hàm số học 33

1.4 Các hàm giải tích 35

1.4.1 Một số hàm cơ bản 35

1.4.2 Tính đạo hàm 36

1.4.3 Tìm giới hạn 39

1.4.4 Tính tích phân 41

1.5 Các hàm đại số 42

1.6 Đồ họa trong Matlab 47

1.6.1 Đồ hoạ trong hệ toạn độ phẳng: 47

1.6.2 Đồ hoạ trong không gian ba chiều 55

Trang 2

CHƯƠNG 2 LẬP TRÌNH TRONG MATLAB 59

2.1 Cách tổ chức chương trình trong Matlab 59

2.1.1 Chương trình 59

2.1.2 Dòng lệnh 59

2.1.3 Câu giải thích (chú thích) 59

2.2 Câu lệnh gán 60

2.3 Các lệnh vào/ra dữ liệu 60

2.3.1 Lệnh đưa dữ liệu vào 60

2.3.2 Lệnh đưa dữ liệu ra màn hình 61

2.4 Các cấu trúc điều khiển 62

2.4.1 Lệnh if elseif else 62

2.4.2 Câu lệnh swich – case 63

2.4.3 Câu lệnh for 64

2.4.4 Lệnh while 65

2.4.5 Lệnh function 66

2.4.6 Các lệnh break, return, error và pause 67

CHƯƠNG 3 MỘT SỐ BÀI TOÁN GIẢI TÍCH SỐ 68

3.1 Giải gần đúng phương trình 68

3.1.1 Bài toán giải gần đúng phương trình 68

3.1.2 Phương pháp chia đôi 68

3.1.3 Phương pháp lặp 70

3.1.4 Phương pháp dây cung 70

3.1.5 Phương pháp tiếp tuyến 71

3.2 Giải gần đúng hệ phương trình đại số tuyến tính 72

3.2.1 Bài toán giải gần đúng hệ phương trình đại số tuyến tính 72

3.2.2 Phương pháp lặp Jacobi 73

3.2.3 Phương pháp lặp Seidel 76

3.3 Xấp xỉ hàm bằng phương pháp nội suy 77

Trang 3

3.3.1 Bài toán nội suy 77

3.3.2 Đa thức nội suy Lagrange 77

3.3.3 Đa thức nội suy Newton 78

3.4 Tìm hàm thực nghiệm bằng phương pháp bình phương tối thiểu 78

3.4.1 Bài toán 78

3.4.2 Tìm hàm thực nghiệm dạng tuyến tính 79

3.4.3 Tìm hàm thực nghiệm dạng phi tuyến 80

3.5 Giải gần đúng phương trình vi phân thường cấp 1 81

3.5.1 Bài toán Cauchy đối với phương trình vi phân thường cấp 1 81

3.5.2 Phương pháp Euler 82

3.5.3 Phương pháp Euler cải tiến 82

3.5.4 Phương pháp Runge−Kutta cấp 4 83

CHƯƠNG 4 VẬN DỤNG MATLAB GIẢI MỘT SỐ BÀI TOÁN GIẢI TÍCH SỐ 85

4.1 Giải gần đúng phương trình 85

4.1.1 Phương pháp chia đôi 85

4.1.2 Phương pháp lặp 89

4.1.3 Phương pháp tiếp tuyến 91

4.1.4 Phương pháp dây cung 95

4.2 Giải gần đúng hệ phương trình đại số tuyến tính 98

4.2.1 Phương pháp lặp 98

4.2.2 Phương pháp lặp Seidel 101

4.3 Xấp xỉ hàm bằng phương pháp nội suy 103

4.3.1 Đa thức nội suy Lagrange 103

4.3.2 Đa thức nội suy Newton tiến 105

4.3.3 Đa thức nội suy Newton lùi 109

4.4 Tìm hàm thực nghiệm bằng phương pháp bình phương tối thiểu 113

Trang 4

4.4.1 Chương trình tìm hàm thực nghiệm theo một số dạng tuyến

tính 113

4.4.2 Chương trình tìm hàm thực nghiệm theo một số dạng phi tuyến 113

4.5 Giải gần đúng phương trình vi phân thường cấp 1 114

4.5.1 Phương pháp Euler 114

4.5.2 Phương pháp Euler cải tiến 117

4.5.3 Phương pháp Runge−Kutta cấp 4 119

KẾT LUẬN 122

TÀI LIỆU THAM KHẢO 123

Trang 5

MỞ ĐẦU

1 Lý do chọn đề tài

Giải tích số hiện đang phát triển mạnh và càng mạnh hơn với sự phát triển nhanh của tin học Công nghệ thông tin và giải tích số có vai trò rất quan trọng trong nhiều lĩnh vực

Thực tế hiện nay, đã có nhiều tài liệu về giải tích số song còn ít tài liệu giới thiệu các phần mềm tính toán (Maple, Matlab, .) và chương trình máy tính giải quyết các bài toán số Trong khi đó Matlab là phần mềm nổi tiếng của công ty MathWorks, là một ngôn ngữ hiệu năng cao cho tính toán kỹ thuật Nó tích hợp tính toán, hiển thị và lập trình trong môi trường dễ sử dụng Các ứng dụng tiêu biểu của Matlab bao gồm: hỗ trợ toán học và tính toán; phát triển thuật toán; mô hình mô phỏng; phân tích, khảo sát và hiển thị số liệu; đồ họa khoa học và kỹ thuật; phát triển ứng dụng với giao diện đồ họa, …

Ngoài ra Matlab cơ bản với các khả năng rất phong phú, phần mềm Matlab còn có trang bị thêm các ToolBox – các gói chương trình (thư viên) cho các ứng dụng rất đa dạng như xử lý tín hiệu, nhận dạng hệ thống, xử lý ảnh, mạng nơ ron, logic mờ, tài chính, tối ưu hóa, phương trình đạo hàm riêng, … Đây là các tập mã nguồn viết bằng chính Matlab dựa theo các thuật toán mới, hữu hiệu mà người dùng

có thể chỉnh sửa hoặc bổ sung thêm các hàm mới Matlab được thiết kế để giải bài toán bằng số chứ không nhằm mục đích chính là tính toán ký hiệu như Mathematica

và Maple Tuy nhiên trong Matlab cũng có thể tính toán ký hiệu được nhờ các hàm trong Symbolic Math ToolBox

Hiện nay có rất nhiều trường đại học trong nước cũng như nước ngoài, nhất

là những trường kỹ thuật đã đưa Matlab vào giảng dạy và nghiên cứu

Với ưu thế về tính toán số trị Matlab rất thích hợp cho việc giảng dạy môn học thuộc lĩnh vực giải tích số - môn học quan trọng đối với sinh viên các ngành kỹ thuật và khoa học tự nhiên Việc sử dụng Matlab để lập trình các thuật toán của môn học này có thuận lợi là đơn giản, dễ dàng vẽ các đồ thị để hiển thị kết quả và kiểm

Trang 6

tra kết quả, thư viện phong phú các hàm toán học đã được cài đặt sẵn Dùng Matlab

để thiết kế phần mềm trợ giúp đối với các môn Toán, đặc biệt là môn Giải tích số,

có ý nghĩa thiết thực nhằm nâng cao chất lượng dạy và học

2 Mục tiêu nghiên cứu

Sử dụng ngôn ngữ lập trình trong Matlab để xây dựng các phần mềm trợ giúp giải quyết các bài toán giải tích số nhằm nâng cao hiệu quả giảng dạy và học tập môn học này

3 Nhiệm vụ và phạm vi nghiên cứu

- Tìm hiểu về phần mềm toán học Matlab

- Nghiên cứu nội dung môn phương pháp tính thuộc lĩnh vực giải tích số, theo chương trình giảng dạy tại trường đại học Bách Khoa Hà Nội

- Sử dụng phần mềm Matlab xây dựng các chương trình giải các bài toán số

4 Phương pháp nghiên cứu

- Nghiên cứu tài liệu hướng dẫn sử dụng và lập trình trong phần mềm Toán học Matlab

- Nghiên cứu nội dung môn học phương pháp tính, từ đó thiết kế thuật toán cho các phương pháp giải gần đúng các bài toán số

- Cài đặt thuật toán thành phần mềm tính toán nhằm minh họa và giải quyết các bài toán số trong môn học phương pháp tính

5 Cấu trúc luận văn

Ngoài phần mở đầu, kết luận, tài liệu tham khảo và phụ lục, luận văn gồm 4 chương:

Chương 1 Một số kiến thức cơ bản về Matlab

Chương 2 Lập trình trong Matlab

Chương 3 Một số bài toán giải tích số

Chương 4 Vận dụng Matlab giải một số bài toán giải tích số

Trang 7

CHƯƠNG 1 MỘT SỐ KIẾN THỨC CƠ BẢN VỀ MATLAB

1.1 Giới thiệu chung và cách sử dụng môi trường Matlab

1.1.1 Khả năng và ứng dụng của matlab

- Một trong những tính năng tuyệt với nhất của Matlab nhìn từ góc độ những nhà khoa học tính toán là thư viện dựng sẵn rất phong phú các chương trình tính toán và các công cụ hiển thị đồ hoạ

- Matlab cho phép người dùng tiến hành rất nhiều các nhiệm vụ thông thường liên quan tới việc xử lý tính toán số với tốc độ nhanh, độ chính xác cao Các tính toán rất mạnh có thể được thực hiện chỉ với một hoặc hai câu lệnh

- Người dùng có thể xây dựng riêng cho mình những hàm toán học trong những ứng dụng đặc biệt

- Matlab có giao diện đồ hoạ đẹp, sinh động, các hình từ Matlab có thể đem chèn vào các phần mềm soạn thảo văn bản như LATEX , WORD,

1.1.2 Đặc điểm của Matlab

Chương trình trong Matlab được xây dựng tương tự như trong các ngôn ngữ lập trình có cấu trúc thông thường Đặc điểm ưu thế của chương trình Matlab là đơn giản, ngắn gọn hơn nhờ việc tận dụng thư viện đầy đủ các hàm đã được lập sẵn và

có thể mô tả các cấu trúc toán học cũng như thể hiện các tính toán một cách tự nhiên

Để minh hoạ điều này, ta xét một ví dụ đơn giản: So sánh hai phép cộng véctơ trong ngôn ngữ lập trình Pascal và Matlab

Sử dụng Pascal:

Var

A: Array[1 5] of Integer = (3, 7, 4, 2, 0);

A: Array[1 5] of Integer = (-2, 4, 8, 5, 1) A: Array[1 5] of Integer;

i: byte;

Begin

for i:= 1 to 5 do C[i]:=A[i] + B[i];

for i:= 1 to 5 do write(c[i], „ „);

Trang 8

Một đặc điểm nữa là tất cả các biến dùng trong Pascal đều phải được khai báo Trong Matlab các biến sẽ tự động hình thành trong mỗi câu lệnh gán

1.1.3 Không gian làm việc của Matlab

- Về cơ bản không gian làm việc của Matlab gồm có các phần sau:

+ Cửa sổ trợ giúp (Help Windon) + Nút Start

+ Cửa sổ nhập lệnh (Command Windon) + Cửa sổ không gian làm việc (Workspace Windon) + Cửa sổ quá trình lệnh (Command History Windon) + Cửa sổ biên tập mảng, véctơ, ma trận (Array editor Windon) + Cửa sổ địa chỉ thư mục hiện thời (Current directory Windon)

- Nút ở góc trên bên phải mỗi cửa sổ dùng để đóng chúng Hiển thị lại cửa sổ bằng cách tích  vào tên của sổ tương ứng trong menu Desktop

- Nút bên cạnh nút dùng để tách của sổ làm việc trong cửa sổ chính Matlab thành cửa sổ con độc lập Ấn nút này một lần nữa sẽ nhập một cửa sổ độc lập về cửa sổ chính của Matlab

- Nút Start ở góc dưới bên trái của màn hình Matlab cho phép ta chạy các ứng dụng mẫu (demos), các công cụ và cửa sổ chưa hiển thị khi khởi động Matlab Bằng cách đánh dấu lệnh „demo‟ ta có thể tiếp cận với một tập rất nhiều những file trình diễn giá trị cao

Trang 9

Ví dụ: Thử chạy Start -> Matlab –> Demos và chạy một ứng dụng mẫu trong cửa sổ Demo (s)

Lưu ý: Lệnh này sẽ xoá tất cả các giá trị của các biến hiện có

1.1.3.1 Cửa sổ lệnh

Đây là cửa sổ chính của Matlab, tại đây thực hiện toàn bộ việc nhập dữ liệu

và xuất kết quả tính toán Dấu nhắc >> để gõ các lệnh

Matlab là một môi trường tương tác, khi một câu lệnh được đưa ra Matlab thực thi nó ngay lập tức trước khi đòi hỏi một lệnh tiếp theo

Các diễn giải có cấu trúc như sau:

>> diễn giải 

hoặc có thể lưu lại kết quả tính toán vào biến:

>> Biến = diễn giải 

Trong đó, các diễn giải thường được soạn bằng các toán tử, các hàm, và tên các biến, và được hiển thị trên màn hình sau khi nhấn Enter Các câu lệnh có dạng

“tên biến = diễn giải” thì diễn giải đó sẽ được gán cho biến sử dụng sau này Khi tên biến và dấu bằng được bỏ đi thì kết quả của “diễn giải” sẽ được tự động gán cho biến có tên „ans‟ (hay answer - câu trả lời) và hiển thị trên màn hình

Một số lệnh tổng quát liên quan đến cửa sổ này:

+ cls: Xóa cửa sổ lệnh

+ Home: Di chuyển con trỏ lên góc trên trái của cửa sổ (khi chạy chương trình)

+ Help: Trợ giúp thông tin về một mục nào đó

+ echo, echo on/ off: Tắt mở hiển thị các dòng của file m khi chạy chương trình + edit: Gọi chương trình soạn file *.m

+ type tên_file: Đọc nội dung file *.m

+ demo: Gọi chương trình demo

+ quit, exit: Thoát chương trình Matlab

Trang 10

Một số phím hỗ trợ thao tác:

 Gọi lại hàng trước end Về cuối hàng

 Tới một ký tự Delete Xoá ký tự ở con trở

 Lùi lại một ký tự Backspace Xoá ký tự ở trước con trỏ Ctrl  Qua phải một từ Ctrl K Xóa đến cuối hàng

Ctrl  Qua trái một từ Shift Home Đánh dấu đến đầu hàng

Home Về đầu hàng Shift End Đánh dấu đến cuối hàng

1.1.3.2 Cửa sổ lịch sử lệnh Command History

Liệt kê các lệnh đã sử dụng trước đó kèm thời gian bắt đầu Có thể lặp lại lệnh cũ bằng cách nhắp chuột kép vào lệnh đó Cũng có thể cắt, sao hoặc xoá cả nhóm lệnh hoặc từng lệnh riêng rẻ

1.1.3.3 Cửa sổ không gian làm việc

Các biến và dữ liệu mà ta nhập vào hoặc tính toán ra sẽ được Matlab lưu trong một phần gọi là “Không gian làm việc” Tất cả các biến ngoại trừ những biến cục bộ thuộc về một M- file, sẽ được hiển thị trong không gian làm việc

+ Lệnh who hay lệnh whos liệt kê các biến trong không gian làm việc

Ví dụ: Đánh lệnh „whos‟ vào cửa sổ lệnh, ta sẽ thấy một danh sách các biến hiện có cùng kiểu và kích cỡ của chúng

+ Để biết giá trị hiện tại của một biến, ta đánh vào tên biến ở cửa sổ lệnh và nhấn Enter

+ Để xoá một hàm hay một biến khỏi không gian làm việc ta sử dụng lệnh clear

Trang 11

Ví dụ: Cho ma trận M, hãy thử click và thay đổi nó, thay đổi các phần tử, thay đổi kích thước ma trận Quay lại cửa sổ lệnh và gõ „M‟ rồi nhấn Enter, xem ma trận M sau khi đã thay đổi

Ta cũng có thể biên tập lại ma trận M bằng cách đánh lệnh

>> openvar („C‟)

1.1.3.5 Cửa sổ địa chỉ thư mục hiện thời

Thư mục hiện thời là nơi chương trình Matlab sẽ tìm các M-file, và các file không gian làm việc (.mat file) mà ta đã Load và Save

1.2 Các khái niệm cơ bản

Eps Số nhỏ nhất, như vậy dùng cộng với 1 để được số

nhỏ nhất lớn hơn 1 (hay Sai số 2-52) Flops Số phép chia toàn số thực

Trang 12

1.2.2 Biến

- Biến là đại lượng được đặt tên, giá trị của biến có thể thay đổi trong suốt quá trình hoạt động của chương trình

- Quy tắc đặt tên biến:

+ Tên biến phải là một từ (không chứa dấu cách)

+ Tên biến gồm các chữ cái, chữ số và dấu gạch dưới

+ Tên biến có phân biệt chữ hoa với chữ thường

+ Tên biến có thể chứa nhiều nhất 31 kí tự, còn các ký tự sau kí tự thứ 31 bị bỏ đi + Tên biến bắt đầu bằng chữ cái tiếp theo có thể là chữ số hặc dấu gạch dưới

- Ví dụ: Items, items, x1, x2, den_ta,

1.2.3 Kiểu dữ liệu

- Matlab có đầy đủ các kiểu dữ liệu đơn giản như:

+ Số nguyên gồm có: int8; int16; int32; int64; uint8; uint16; uint32; uint64; single + Số thực: double

+ Kí tự: char

+ Logic: boolean

- Chuỗi kí tự được đặt trong dấu nháy đơn hoặc nháy kép, chẳng hạn „Viet Nam‟

- Kiểu dãy (sequence) có dạng:

dau:buoc:cuoi bao gồm một véc-tơ gồm các phần tử bắt đầu từ số đầu “dau” tăng dần theo từng bước “buoc” cho đến bằng (không vượt quá) số cuối “cuoi” Kết quả cho ra một véc-tơ hàng:

+ 1.2:0.2:1.7 % chú thích: Tương đương với [1.2 1.4 1.6]

+ 1.2:0.2:1.8 % chú thích: Tương đương với [1.2 1.4 1.6 1.8]

- Kiểu ma trận đóng vai trò trung tâm trong Matlab Ví dụ một ma trận hai hàng ba cột như sau (hết một hàng cần dấu chấm phẩy để phân tách, nhưng không nhất thiết xuống dòng):

[ -3 4 5.2 ;

2.1 -8 7.6 ]

- Matlab còn có một số kiểu dữ liệu khác cao cấp hơn: kiểu cell, kiểu struct (bản ghi)

Trang 13

- Khuôn dạng hiển thị số:

format short e 5 số với số mũ 5.0833e+01

format long e 16 số với số mũ 50.88333333333334 e+01 format short g Chính xác hơn format short

hoặc format short e format long g Chính xác hơn format long

hoặc format long e format + Dương, âm hoặc bằng không +

1.2.4 Các phép toán đơn giản

1.2.4.1 Các phép toán số học cơ bản của Matlab

Trang 14

Biểu thức số học là một biến kiểu số hoặc một hằng số hoặc các biến kiểu số

và các hằng số liên kết với nhau bởi một số hữu hạn các phép toán, các dấu ngoặc tròn ( và ) tạo thành một biểu thức có dạng tương tự như cách viết trong toán học với những quy tắc sau:

- Chỉ dùng cặp ngoặc tròn để xác định trình tự thực hiện phép toán trong trường hợp cần thiết

- Viết lần lượt từ trái qua phải

- Không được bỏ qua dấu nhân (*) trong tích

Thứ tự ưu tiên thực hiện tính toán một biểu thức trong Matlab như sau:

1 Tính đại lượng trong ngoặc đơn

2 Tính phép toán Luỹ thừa

3 Tính phép toán nhân (*), chia (/), thực hiện từ trái qua phải

4 Tính phép toán công (+), trừ (-), thực hiện từ trái qua phải

Ví dụ : Matlab tính theo thứ tự sau biểu thức 2+3^2+20/(4*5)*3-5

1 Tính đại lượng trong ngoặc đơn nghĩa là tính 4*5=20

2 Tính luỹ thừa nghĩa là tính 3^2=9

Trang 15

- Thực hiện phép toán quan hệ

Kết quả của biểu thức quan hệ là giá trị lôgic: 1 (true – Đúng) hoặc 0 (false – Sai) Trong ví dụ trên, nếu x có giá trị là 3 thì biểu thức x<5 có giá trị là 1 (đúng) Nếu i có giá trị là 2 và j có giá trị là 3 thì biểu thức i+1 >= 2*j cho giá trị là 0 (sai)

1.2.5.3 Biểu thức logic

Biểu thức logic đơn giản là một biến logic

Biểu thức logic là các biểu thức logic đơn giản, các biểu thức quan hệ

liên kết với nhau bởi các phép toán logic Giá trị biểu thức logic là 1 (true –

Đúng) hoặc 0 (false – Sai)

Biểu thức logic với các toán tử tổ hợp đƣợc xác đinh theo quy luật sau:

Giả thiết các biến A và B là những biến logic để dễ hiểu, ta sẽ kí hiệu giá trị logic 1

là true và 0 là False Khí đó, kết quả của các phép toán logic ~A, A | B và A & B đƣợc xác định trong bảng sau:

Trang 16

Đôi khi gặp nhiểu biểu thức logic phức tạp chứa cả toán tử & lẫn | thì Matlab

sẽ có quy luật về trình tự xử lý nhƣ sau:

Đầu tiên là xử lý các tính toán số học Sau đó, các toán tử logic đƣợc xem xét

từ trái sang phải

* Chú ý: Khi làm việc với số phức cần phân biệt 2 cách viết ví dụ:

y=7/2*i và x=7/2i hai cách viết này cho kết quả khác nhau

Trang 17

b Giải thích (Description): Khi thực hiện một lệnh nào đó mà chƣa có biến kết quả, thì Matlab lấy biến ans làm biến chứa kết quả đó

clear: Xoá tất cả các biến khỏi vùng làm việc

clear name: Xoá các biến hay hàm đƣợc chỉ ra trong name

Trang 18

clear function: Xoá tất cả các hàm trong bộ nhớ

clear variables: Xoá tất cả các biến ra khỏi bộ nhớ

clear mex: Xoá tất cả các tập tin mex ra khỏi bộ nhớ

clear all: Xoá tất cả các biến, hàm, và các tập tin mex khỏi bộ nhớ Lệnh này làm cho bộ nhớ trống hoàn toàn

filename: Tập tin cần xoá

N: Biến chứa đối tƣợng đồ hoạ cần xoá Nếu đối tƣợng là một cửa sổ thì cửa

Trang 19

short: Hiển thị 4 con số sau dấu chấm

long: Hiển thị 14 co số sau dấu chấm

rat: Hiển thị dạng phân số của phần nguyên nhỏ nhất

+: Hiển thị số dương hay âm

l: Biến chứa chiều dài của vectơ

d Ví dụ 1.5 Tính chiều dài của vectơ x

Trang 20

d: Tên vectơ hai phần tử, phần tử thứ nhất là số dòng, phần tử còn lại là số cột

m, n: Biến m chứa số dòng, biến n chứa số cột

Trang 21

what: Liệt kê tên các tập tin m, mat, mex có trong thƣ mục hiện hành

Dirname: Tên thƣ mục cần liệt kê

Trang 22

who global

whos global

c Giải thích:

who: Liệt kê tất cả các tên biến đang tồn tại trong bộ nhớ

Whos: Liệt kê tên biến, kích thước, số phần tử và xét các phần ảo có khác không Who global và whos global: Liệt kê các biến trong vùng làm việc chung

1.2.8 Các phép toán đối với mảng và các thao tác với mảng

1.2.8.1 Các pháp toán với mảng:

a Các mảng đơn giản:

Giả sử ta xét hàm y=sin(x) trong một nữa chu kỳ (  x 0) trong khoảng này số điểm giá trị của x là vô tận, nhưng ta chỉ xét những điểm cách nhau một khoảng giá trị 0.1 như vậy số giá trị của x là đếm được Từ đó ta có mảng các giá trị cho x là:

Trong mảng y chứa các phần tử y1, y2, , y11

Trong Matlab để tạo những mảng này rất đơn giản:

Ví dụ 1.7 Để tạo hai mảng x, y trên ta đánh các lệnh sau vào dấu nhắc của Matlab

>> x=[0.1*pi 0.2*pi 0.3*pi 0.4*pi 0.5*pi 0.6*pi 0.7*pi 0.8*pi 0.9*pi pi]

Trang 23

Để tạo mảng, ta đặt các phần tử của mảng vào giữa cặp dấu ngoặc vuông

“[ ]”; giữa hai phần tử của mảng có thể là dấu cách hoặc dấu phẩy “,”

b Địa chỉ của mảng

+ Để đến phần tử của mảng ta dùng các chỉ số thứ tự của phần tử đó trong mảng

Ví dụ 1.8 Ta xét mảng x nêu trên, ta viết x(1) là phân tử thứ nhất của mảng

x, x(2) là phần tử thứ 2 của mảng,

>>x(2) % phần tử thứ hai của mảng

ans=

0.3142 + Để truy cập đến nhiều phần tử của mảng, ví dụ ta truy cấp từ phần tử thứ nhất đến phần tử thứ năm của mảng x: Tại dấu nhắc ta gõ

>>x(1:4)

ans=

0 0.3142 0.6283 0.9425 + Để truy cập thừ phần tử thứ 9 đến phần tử cuối cùng của mảng y

>>y(9:end)

ans=

0.5878 0.3090 0.0000 + Truy câp từ phân tử thứ 3 đến phần tử thứ nhất của mảng y

>>y(3:-1:1)

ans=

0.5878 0.3090 0 Trong ví dụ trên 3 là phần tử thứ 3, 1 là phần tử đầu tiên, con -1 là giá trị công (vị trí phần tử sau bằng vị trí của phần tử trước cộng với -1)

Trang 24

Ví dụ: 1.9: Truy nhập đến các phần tử trong khoảng từ phần tử thứ 2, đến phần tử thứ 7, vị trí của phần tử sau bằng vị trí của phần tử trước cộng với 2, của mảng x)

+ Tạo một bảng bắt đầu là phần tử 0, sau bằng phần tử trước cộng 0.1, phần

tử cuối là 1 Cú pháp của cách này như sau: x=(0:0.1:1)

2.1991 2.5133 2.8274 3.1416 + Tạo mảng bằng hàm linspace Cú pháp của hàm này như sau:

linspace(giá trị phần tử đầu, giá trị phần tử cuối, số các phần tử)

Ví dụ 1.11 Tạo mảng x nêu trên

>>x=linspace(0,pi,11)

x=

Columns 1 through 7

0 0.3142 0.6283 0.9425 1.2508 1.8850 Columns 8 through 11

2.1991 2.5133 2.8274 3.1416

Trang 25

+ Ngoài các mảng trên, Matlab còn cung cấp một số cấu trúc khác như:

x=first:last Tạo vector hàng x bắt đầu tại first, phần tử sau

bằng phần tử trước cộng 1, kết thúc là phần tử

có giá trị bằng hoặc nhỏ hơn last x=first: increment:last Tạo vector hàng x bắt đầu tại first, giá trị cộng

là increment, kết thúc là phần tử có giá trị bằng hoặc nhỏ hơn last

x=logspace(first,last,n) Tạo vector hàng không gian logarihm x bắt đầu

tại 10first, kết thúc tại 10last, có n phần tử

Ví dụ 1.12

>>a=1:5, b=1:2:9, logspace(0,2,11)

a=

1 2 3 4 5 b=

1 3 5 7 9 ans=

Columns 1 through 7 1.0000 1.5849 2.5119 3.9811 6.3096 10.0000 15.8489 Columns 8 thổugh 11

25.1189 39.8107 63.0957 100.0000

d Vector hàng và vector cột

Trong các ví dụ trước, mảng chứa một hàng và nhiều cột Người ta thường gọi là vector hàng Ngoài ra ta còn có mảng là vector cột, tức là mảng có một cột và nhiều hàng, trong trường hợp này tất cả mọi thao tác và tính toán đối với mảng như

ở trên là không thay đổi

Từ các hàm tạo mảng minh hoạ ở phần trước (tất cả đều là vector hàng), có nhiều cách để tạo vector cột

d1 Cách trực tiếp tạo vector cột

* Xét trong mảng một chiều

Trang 26

Khác với trước là ta dùng dấu cách hay dấu phẩy để phân cách giữa hai cột của một vector hàng Còn cách này ta dùng dấu chấm phẩy để phân cách giữa hai hàng của vector cột

* Xét trong mảng nhiều chiều (hay còn gọi là ma trận)

Đối với mảng nhiều chiều thì ta dùng dấu cách để vào các phần tử trong hàng

và dấu chấm phẩy (;) để tạo hai hàng

Lưu ý: Khi nhập vào ma trận thì giữa các hàng số phần tử phải bằng nhau nếu

không chương trình sẽ bị báo lỗi

d2 Cách dùng phương pháp chuyển vị

Matlab dùng toán tử chuyển vị là (‟) hoặc (.‟) để chuyển từ vector hàng thành vector cột và ngược lại Trong đó toán tử chuyển vị (.‟) khác với toán tử chuyển vị (‟) là: Khi các phần tử của mảng là số phức, tức là từ một vector nguồn với các phần

tử là số phức, toán tử (‟) tạo ra vector phức liên hợp chuyển vị, còn toán tử (.‟) tạo

ra vector chuyển vị

Ví dụ 1.15

>>a=1:3 a=

1 2 3

Trang 27

>>e = d.‟

e =

1.0000+1.0000i 2.0000+2.0000i 3.0000+3.0000i

>>f = d‟

f=

1.0000-1.0000i 2.0000-2.0000i 3.0000-3.0000i

1.2.8.2 Các phép toán đối với mảng

a Các phép toán đối với mảng – vô hướng (Các phép cộng, trừ, nhân, chia từng

phần tử với hằng số)

Trang 28

Ta thực hiện tương tự đối với các phép toán trừ, nhân và chia

b Các phép toán đối với mảng - mảng

2n 22 21

1n 12 11

ccc

ccc

ccc

2n 22 21

1n 12 11

dd

d

ddd

ddd

Trang 32

cm1^dm1 cm2^dm2 cmn^dmn

Trang 34

a Công dụng: Cho phần dƣ của phép chia

b Cú pháp: r = rem(a,b)

c Ví dụ 1.23

>> r = rem(5,3)

r = 2 1.3.5 Hàm round

a Công dụng: Làm tròn số sao cho gần số nguyên nhất

a Công dụng: Làm tròn số về phía số nguyên nhỏ hơn

b Cú pháp: y = floor(x)

c Ví dụ 1.25

>> x=-1.9000 -0.2000 3.4000 5.6000 7.000

>> y=floor(x) y=-2 -1 3 5 7

Trang 36

1.4.2 Tính đạo hàm

1.4.2.1 Sử dụng hàm polyder

Tính đạo hàm của đa thức

0 1

1

n n

c Ví dụ 1.28 Tính đạo hàm của đa thức y = x3

Trang 37

Trong đó:

+ polyder: Là hàm dùng để tính đạo hàm

+ y1, y2: Các ma trận hàng + q:Tử số

+ r: Mẩu số

c Ví dụ 1.29 Tính đạo hàm của phân thức

1 2

Ví dụ 1.30 Tính đạo hàm của hàm f(x)=sim(a*x)

>> syns a x % Tạo các biến đặc trƣng

>> f=sin(a*x); % Tạo biểu thức chữ

>> df=diff(f) % Tính đạo hàm của hàm f(x) theo biến x

f‟=n.xn-1

f=x^n diff(f) hay diff(f,x) g=sin(at+b)

g‟=a.cos(at+b)

g=sin(a*t+b) diff(g) hay diff(g,t)

Để tính đạo hàm bậc 2 của f trên theo x và a ta viết:

>> diff(f,2) % Đạo hàm bậc 2 của f theo x

ans=

-sin(a*x)*a^2

Trang 38

>> diff(f,a,2)

ans=

-sin(a*x)*x^2 Hàm diff có thể dùng đối số là ma trận Trong trường hợp này đạo hàm được thực hiện trên từng phần tử

sin cos

cos cos

Để tính ma trận Jacobi J của phép biến đổi này ta dùng hàm jacobian Định

nghĩa toán học của J là:

) , , (

) , , (

r

z y x J

Trang 39

J=

[cos(l)*cos(f), -r*sin(l)*cos(f), -r*cos(l)*sin(f)]

[cos(l)*sin(f), -r*sin(l)*sin(f), r*cos(l)*cos(f) ] [sin(l), r*cos(l), 0]

>>detf=simple(det(j))

detf=

-cos(l)*r^2 Chú ý: Là đối số thứ nhất của hàm jacobian phải là vectơ cột và đối số thứ hai là vectơ hàng Hơn nữa do định thức của ma trận Jacobian là biểu thức lƣợng giác khá phức tạp nên ta dùng lệnh simple để thay thế và rút gọn

) , (

) , (

v u

t r J

f

h

) ( ) ( lim )

Trang 40

0

 cho 3 kết quả khác nhau: Không xác định, -∞ và +∞ Trong trường hợp không tồn tại giới hạn Symbolic Math Toolbox trả về kết quả NaN

Bảng sau cho các giới hạn

Hàm toán học Lệnh Matlab

)(lim

0 f x

Ngày đăng: 15/07/2017, 23:16

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