1. Trang chủ
  2. » Giáo Dục - Đào Tạo

giải phương trình siêu việt bằng matlab

72 6,6K 15

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

Nội dung

CHƯƠNG 1: TỔNG QUAN VỀ MATLAB 1.1. LÀM QUEN VỚI MATLAB. MATLAB là từ viết tắt của Matrix Laboratory, được công ty Math Works khai thác và phát triển. MATLAB cho phép tính toán số với ma trận, vẽ đồ thị hàm số hay biểu đồ thông tin, thực hiện thuật toán, tạo các giao diện người dùng và liên kết với những chương trình máy tính viết trên nhiều ngôn ngữ lập trình khác. Với thư viện Toolbox, MATLAB cho phép mô phỏng tính toán, thực nghiệm nhiều mô hình trong thực tế và kỹ thuật. Khả năng nổi trội của MATLAB: - Các phép toán ma trận. - Giải phương trình, hệ phương trình. - Vẽ đồ thị hàm số 2D, 3D. - Xử lý ảnh trong MATLAB. - Lập trình trong MATLAB. - Một số hàm trong MATLAB. Trong phạm vi đề tài này, nhóm sinh viên sử dụng MATLAB version 2010b. 1.1.1. Khởi động và thoát khỏi MATLAB. Màn hình mặc định của MATLAB khi khởi động như sau: - Cửa sổ Command Window: cửa sổ lệnh - Các menu quen thuộc như trong Windows như file, edit, debug,desktop, window và help. MATLAB hiển thị dấu nhắc dạng “>>”: câu lệnh được viết sau dấu nhắc và nhấn enter để thực hiện, kết quả được hiển thị ngay trên cửa sổ. Chỉnh sửa câu lệnh bằng các phím: esc: xóa câu lệnh, phím ↑ để lấy lại câu lệnh, phím , ← → , delete, backspace để chỉnh sửa. Cửa sổ Command History: ghi lại toàn bộ các dòng lệnh đã vào trên cửa sổ lệnh. -1- Hình 1.1: Giao diện chính của chương trình. 1.1.2. Trợ giúp trực tuyến trong MATLAB. MATLAB có trợ giúp trực tuyến đối với tất cả các lệnh và hàm nội trú. Cú pháp: >> help <tên lệnh hoặc tên hàm muốn tìm hiểu> Ví dụ 1.1: >> help sin SIN Sine of argument in radians. SIN(X) is the sine of the elements of X. See also asin, sind. Overloaded methods: sym/sin codistributed/sin Reference page in Help browser doc sin Nói chung, MATLAB phân biệt chữ hoa và chữ thường trong câu lệnh. Hầu hết các tên biến và hàm nội trú của MATLAB được viết bằng chữ thường. 1.1.3. Chế độ làm việc trực tiếp và chế độ M-file trong MATLAB. MATLAB có 2 chế độ làm việc: Làm việc trực tiếp: gõ lệnh trực tiếp trong cửa sổ Command và chương trình thực hiện lệnh ngay khi nhấn Enter, kết quả cũng được hiển thị trên cửa sổ. Ví dụ 1.2: >> x = 1; >> 4*atan(x) ans = 3.14159265358979 -2- Nếu cuối câu lệnh có dấu ‘;’ thì MATLAB sẽ không hiển thị kết quả câu lệnh đó ở phía dưới. Kết quả sẽ được gán tự động vào biến ans. Chạy chương trình MATLAB với file script được soạn thảo trước, được lưu dưới dạng file *m, khi chạy file này các lệnh trong file sẽ thứ tự được thực hiện. Ví dụ 1.3: Ta thực hiện đoạn chương trình trên với M-file, lưu với tên file là pi.m. % Chuong trinh tinh in ra so pi" x = 1; format long g; 4*atan(x) End <Dấu ‘%’ đặt đầu câu lệnh báo cho chương trình dịch bỏ qua câu lệnh đó> Trong cửa sổ lệnh ta chỉ việc gõ lệnh >>pi Enter. >> pi ans = 3.1416 1.1.4. Một số biến gán sẵn và hàm nội trú của MATLAB. Trong MATLAB có một số tên hàm và biến chuẩn. Khi đặt tên m-fle và tên biến tránh. Trùng với các tên đó để tránh xảy ra xung đột. Ta có bảng các tên biến và tên hàm hay được sử dụng như sau: Bảng 1.1: Danh sách một số biến gán sẵn và hàm nội trú của MATLAB STT Tên Ý nghĩa 1 ans Tên biến chứ kết quả nếu chưa gán kết quả tính cho biến nào 2 eps Số epsilon, số thực đủ nhỏ để khi thêm vào một số thành một số khác mà MATLAB sẽ phân biệt được nó với số gốc: Eps =2.2204.e-16 3 Pi Số pi = 3.1416 4 inf Số vô cùng, kết quả của phép chia 5 NaN Not-a-Number, số vô định, kết quả của phép chia 6 i (and) j Đơn vị ảo hay 7 realmin Số dương nhỏ nhất biểu diễn được trên MTĐT: 2.2251 8 realmax Số dương lớn nhất biểu diễn được trên MTĐT: 1.7977 9 abs(x) Hàm giá trị tuyệt đối hoặc modul của số phức x 10 acos(x) Hàm 11 asin(x) Hàm 12 atan(x) Hàm 13 atan2(y,x) Hàm 14 conj(x) Hàm tính số liên hợp của số phức x 15 cos(x) Hàm 16 exp(x) Hàm 17 imag(x) Phần ảo của số phức x 18 log(x) Hàm 19 log2(x) Hàm -3- 20 log10(x) Hàm 21 real(x) Hàm lấy phần thực của số phức x 22 sign(x) Hàm dấu của số thực x 23 sin(x) Hàm 24 sqrt(x) Hàm 25 tan(x) Hàm 26 cot(x) Hàm 1.1.5. Định dạng dữ liệu hiển thị trên màn hình. Tất cả các biến đều có thể được hiển thị trên màn hình theo các định dạng khác nhau phụ thuộc vào phương án sử dụng câu lệnh Format mới nhất. Cú pháp câu lệnh Format: format <string1> [ <string 2>] Giải thích: Lệnh FORMAT dùng để thay đổi qui cách hiển thị dữ liệu. - Nếu <string1> là: + ‘long’ : Hiển thị kết quả tới 16 chữ số có nghĩa. + ‘short’ (giá trị mặc định): Hiển thị kết quả với 5 chữ số có nghĩa. + ‘rat’: Hiển thị kết quả dạng phân số (giá trị xấp xỉ). - Nếu <string2> là: + ‘e’: Hiển thị kết quả kiểu số thực dấu phẩy động. + ‘g’: Hiển thị kết quả kiểu số thực dấu phẩy tĩnh. Ví dụ 1.4: >> 4*atan(1) ans = 3.1416 >> format long e; ans ans = 34 3.141592653589793e+00 >> format long g ans ans = 3.14159265358979 >> format rat ; ans ans = 355/113 1.1.6. Tạo vector ma trận. Một thế mạnh của MATLAB là xử lí được vector, ma trận và cả số phức. Vector và ma trận có thể được gán cho các biến theo nhiều cách khác nhau. Cú pháp của lệnh tạo vector cách đều như sau: <Var-Name> = [First : Increment : Last] Lệnh sẽ sinh ra một vector hàng với phần tử đầu là First, phần tử cuối là Last và số gia là Increment, mặc định là 1. Vector này sẽ được gán cho biến <Var-Name>. Ví dụ 1.5: -4- >> a = [1 2 3 4 5 6 7 8 9 10]; % Tạo vector hàng >> b = [1 ; 2 ; 3; 4 ; 5 ; 6 ; 7 ; 8 ; 9 ; 10];% Tạo vector cột >> c = [1:10]; % Vector hàng giống a >> e = sin(a); % Vector cùng cỡ với a >> A=[1 2 3 ; 4 5 6 ; 7 8 9]; % Ma trận cỡ 3x3 >> B = [A; 10 11 12 ]; % Ma trận cỡ 4x3 >> f = [ 0.5:2:10] f = 0.5000 2.5000 4.5000 6.5000 8.5000 1.1.7. Xử lý các phần tử ma trận. Trong MATLAB các phần tử của một vector hay ma trận có thể được xác định theo nhiều cách khác nhau. Một cách đơn giản nhất là viết tên ma trận đi kèm với các chỉ số hàng và cột của của phần tử cần xử lý. Ví dụ 1.6: >> A=[1 2 3 ; 4 5 6 ; 7 8 9 ]; >> C = [A; 10 11 12 ]; >> C(4,2) %% Hiện phần tử hàng 4 cột 2 của ma trận C ans = 11 >> A(8) %% Hiện phần tử thứ 8 trong ma trận A ans = 6 Nếu muốn rút trích cả một hàng, một cột hay một ma trận con thì dùng các câu lệnh như sau: Ví dụ 1.7: >> A(2,:) %% Hiện hàng thứ 2 của A ans= 4 5 6 >>A(:,3) %% Hiện cột thứ 3 của A >> Asub = A(1:2, 2:3) ; >> C=A(:,[2 3]; Bạn cũng có thể rút trích dữ liệu trong các ma trận để “lắp ghép” với nhau để tạo thành một ma trận mới: Ví dụ 1.8: >> B =A([3 1 1], :) B = 7 8 9 1 2 3 1 2 3 >> E=[A B; B A] 36 E = 1 2 3 7 8 9 4 5 6 1 2 3 7 8 9 1 2 3 7 8 9 1 2 3 -5- 1 2 3 4 5 6 1 2 3 7 8 9 1.1.8. Các phép toán trên ma trận. Bảng 1.2: Danh sách các phép toán số học trên ma trận. Stt Toán tử Ý nghĩa 1 * Phép nhân nói chung: Vô hướng –Vô hướng, Vô hướng -Vector, Vô hướng- Ma trận, Ma trận – Ma trận 2 .* Phép nhân phần tử với phần tử tương ứng 3 ^ Phép luỹ thừa 4 .^ Phép luỹ thừa của từng phần tử 5 ‘ Phép chuyển vị ma trận hoặc tính số phức liên hợp 6 .’ Phép chuyển vị ma trận 7 + (-) Phép cộng (trừ) ma trận-ma trận, ma trận-vô hướng 8 / Phép chia phải 9 ./ Phép chia phải tương ứng từng phần tử của ma trận. Các ma trận phải cùng kích thước 10 \ Phép chia trái 11 .\ Phép chia trái tương ứng từng phần tử của ma trận. Các ma trận phải cùng kích thước Khi tính toán với các ma trận, kích thước của chúng phải phù hợp. Nếu không, MATLAB sẽ đưa ra thông báo lỗi. Ví dụ 1.9: >> d = [10:-1.5:5.5]'; %% Tạo ra một vector cột >> C = [ 1 2 3; 4 5 6; 7 8 9]; >> b = [ 10 11 12]; >> b.*b %% Tương tự như b.^2 ans = 100 121 144 >> C*C' ans = 14 32 50 32 77 122 50 122 194 >> C^2 %% Tương tự như C*C ans = 30 36 42 66 81 96 -6- 102 126 150 >> C*b %% Câu lệnh có lỗi kích thước ??? Error using ==>* Inner matrix dimensions must agree >> C*b' ans = 68 167 266 >> C.^2; %% Bình phương từng phần tử >> B= C/2; %% Có kết quả tương tự B= 2\A >> a=[1:5}; b=[6:10]; >> a.\b 38 ans = 6.0000 3.5000 2.6667 2.2500 2.0000 >> C = [ 1 2 3; 4 5 -6; 7 -8 9]; >> d = [ 10; 11; 12]; >> C\d %% Giải hệ phương trình Cx=d ans = 2.2667 1.9333 1.2889 1.1.9. Các hàm về kích thước vector và ma trận. Trong các chương trình của MATLAB, các biến không cần khai báo trước. Kiểu và kích thước mỗi biến tùy thuộc vào dữ liệu thực tế mà nó đang lưu trữ. Do đó, nhiều khi ta cần phải xác định kích thước hiện tại của ma trận để chọn câu lệnh xử lý thích hợp, chẳng hạn như trong câu lệnh điều khiển vòng lặp. Bảng 1.3: Các hàm về kích thước vector và ma trận. Stt Tên hàm Ý nghĩa 1 length(x) Trả về số phần tử của vector x hoặc max của số hàng và số cột của ma trận x 2 size(a) Trả về vector 2 chiều gồm số hàng và số cột của ma trận A 3 size(a,p) Kết quả là : số hàng nếu p =1, số cột nếu p=2 , bằng 1 nếu p>2 Ví dụ 1.10: >> a = [1, 2, 3; 4, 5, 6; 7, 8, 9; 10, 11, 12] a = 1 2 3 4 5 6 7 8 9 10 11 12 >> [m n] = size(a) m = 4 n = 3 >> size(a,1) ans = -7- 4 >> size(a,2) ans = 3 >> length(a) ans = 4 1.1.10. Một số ma trận chuẩn của MATLAB. Trong MATLAB có một số ma trận được xây dựng sẵn, gọi là các ma trận chuẩn. Các ma trận đơn giản được cho ở bảng dưới đây: Bảng 1.4: Một số ma trận quen thuộc. Stt Ma trận Ý nghĩa 1 ones(m,n) Ma trận gồm toàn số 1, cỡ mn 2 zeros(m,n) Ma trận không, cỡ mn 3 eye(m,n) Ma trận đơn vị mở rộng, cỡ mn 4 [] Ma trận rỗng, tương tự như ones(0,0), zeros(0,0), eye(0,0) Ví dụ 1.11: >> a = ones(3,4) a = 1 1 1 1 1 1 1 1 1 1 1 1 >> e = eye(4) e = 1 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 2 1.2. NHỮNG CÂU LỆNH ĐIỀU KHIỂN CHƯƠNG TRÌNH. 1.2.1. Các toán tử, hàm quan hệ và logic. Khi so sánh 2 số, kết quả đúng là 1 và kết quả sai là 0. Nếu các ma trận so sánh với nhau, thì chúng phải cùng cỡ và việc so sánh thực hiện với từng phần tử tương ứng của hai ma trận và kết quả của phép so sánh là một 0-1 ma trận cùng cỡ với chúng. Bảng 1.5: Danh sách các toán tử quan hệ và logic. Stt Toán tử Ý nghĩa 1 < So sánh nhỏ hơn 2 <= So sánh nhỏ hơn hoặc bẳng -8- 3 > So sánh lớn hơn 4 >= So sánh lớn hơn hoặc bẳng 5 == So sánh bằng nhau 6 ~= So sánh không bằng nhau 7 & Toán tử logic Hội 8 || Toán tử logic Tuyển 9 ~ Toán tử logic Phủ định Ví dụ 1.12: >> 5~=7-2 ans = 0 >> A =[ 1 2 3; 3 2 1] ; >> A(1,:) <= A(2,:) ans = 1 1 0 >> B = [ 1 2 3; 4 5 6; 7 8 9]; >> L = ~(B>5) 42 L = 1 1 1 0 1 0 0 0 0 Bảng 1.6: Danh sách một số hàm quan hệ và logic. STT Hàm Ý nghĩa 1 any(x) Bằng 1 nếu một phần tử của vector x0, ngược lại bằng 0 2 all(x) Bằng 1 nếu mọi phần tử của vector x0, ngược lại bằng 0 3 find(x) Tạo ra một vector gồm các chỉ số của các phần tử 0 của vector x; nếu x là ma trận thì nó được coi như vector bằng cách nối các cột của ma trận với nhau 4 exist(‘item’ ) Bằng 0 nếu Item không tồn tại; Bằng 1 nếu Item là biến; Bằng 2 nếu Item là M-file; Bằng 3 nếu Item là một Mex-file; Bằng 4 nếu Item là file được dịch từ phần mềm Simulink; Bằng 5 nếu Item là tên hàm nội trú của MATLAB 5 finite(x) Là ma trận cùng cỡ với x có các phần tử là 1 nếu các phần tử tương ứng của x là hữu hạn, ngược lại là 0 6 isnan(x) Là ma trận cùng cỡ với x có các phần tử là 1 nếu các phần tử tương ứng của x là NaN, ngược lại là 0 -9- 7 isempty(x) Bằng 1 nếu x là ma trận rỗng, ngược lại bằng 0 8 isstr(x) Bằng 1 nếu x là một xâu, ngược lại bằng 0 9 strcmp(x,y) Bằng 1 nếu 2 xâu x và y giống nhau, ngược lại bằng 0 10 xor(x,y) Hàm logic đối xứng xor(x,y)= x xor y. Các biến x và y phải là các ma trận cùng cỡ hoặc một trong chúng phải là vô hướng. Kết quả là một 0-1 ma trận cùng cỡ: phần tử của nó là 0 nếu cả 2 phần tử tương ứng của x và y cùng bằng 0 hoặc cùng khác 0 11 sign(x) Hàm dấu của x Ví dụ: 1.13: >> A = [ 1 2 3; 4 0 6; 0 0 0]; >> exist('A') ans = 1 >> B=[ 1 0 3; 4 5 NaN; inf 7 8]; >> isnan(B) ans = 0 0 0 0 0 1 0 0 0 >> finite(B) ans = 1 1 1 1 1 0 0 1 1 >> any(A) ans = 1 1 1 >> any(A') ans = 1 1 0 >> all(A) 44 ans = 0 0 0 >> all(A') ans = 1 0 0 >> C=[ ]; >> isempty(C) ans = 1 >> find(A) ans = 1 2 4 7 8 >>find(A(:,1)) ans = 1 2 >> find(A(:,2)) -10- [...]... phép toán siêu việt y= y= y= y = 2 – 2x – 1 y= y= y= y= y= y= y= -4 y= 2.3.2 Phương trình siêu việt Phương trình siêu việt là phương trình chứa các phép toán siêu việt như: lượng giác, logarit, mũ, căn thức Việc giải các phương trình này thường rất khó khăn, chỉ một số ít các phương pháp được nêu ra và chỉ dành cho một số loại phương trình nhất định Ta có các ví dụ về các phương trình siêu việt: Ví... việt: Ví dụ 2.10: Các phương trình siêu việt: - Phương trình Logarit: Là phương trình có chứa phép toán logarit: Điều kiện: (a ≠ 1; b>0) Ví dụ: )= =0 - Phương trình hàm số mũ: Là loại phương trình có chứa Ví dụ: 8 > 1+ - Phương trình lượng giác: Là phương trình có chứa phép toán lượng giác như: Ví dụ: cos2x+ =2 4+3-4cos x+2cot x+4=0 Ví dụ 2.11: -30- Một số phương trình siêu việt có trong đề thi tuyển... trị đó gọi là nghiệm gần đúng của phương trình Chẳng hạn, bằng máy tính bỏ túi, ta tính nghiệm gần đúng (chính xác đến hàng phần nghìn) của phương trình = 7 là x ≈ 1,913 2.2.2 Điều kiện của một phương trình Cho phương trình: = Khi x = 2, vế trái của phương trình không có nghĩa Vậy, trước khi giải phương trình ta cần xác định điều kiện của phương trình Khi giải phương trình f(x) = g(x), ta cần lưu ý tới... của phương trình (hay gọi tắt là điều kiện của phương trình) Khi các phép toán ở hai vế của một phương trình đều thực hiện được với mọi giá trị của x thì ta có thể không ghi điều kiện của phương trình 2.2.3 Phương trình nhiều ẩn Ngoài các phương trình một ẩn, ta còn gặp những phương trình có nhiều ẩn số, chẳng hạn: 3x + 2y = - 2xy + 8 (2) -27- 4 - xy + 2z = 3 + 2xz + (3) Phương trình (2) là phương trình. .. tìm tập nghiệm) Nếu phương trình không có nghiệm nào cả thì ta nói phương trình vô nghiệm (hoặc nói tập nghiệm của nó là rỗng) Ví dụ 2.5: Một số loại phương trình - Phương trình đa thức - Phương trình chứa căn - Phương trình chứa logarit - Phương trình chứa phép tính lượng giác - Phương trình chứa phân số Chú ý: Nhiều khi giải một phương trình, ta chỉ cần, hoặc chỉ có thể tính giá trị gần đúng của nghiệm... nghiệm của phương trình có thể phụ thuộc vào tham số Giải và biện luận phương trình chứa tham số nghĩa là xét xem với giá trị nào của tham số thì phương trình vô nghiệm, có nghiệm và tìm các nghiệm đó Chẳng hạn: - Phương trình (m + 1)x - 3 = 0 có thể được coi là một phương trình ẩn x chứa tham số m - Phương trình - 2y + t = 0 có thể được coi là một phương trình ẩn y chứa tham số t 2.2.5 Phương trình tương... VỀ PHƯƠNG TRÌNH 2.2.1 Phương trình một ẩn Phương trình ẩn x là mệnh đề chứa biến có dạng: f(x) = g(x) (1) trong đó f(x) và g(x) là những biểu thức của x Ta gọi f(x) vế trái, g(x) là vế phải của phương trình (1) Nếu có số thực sao cho f() = g() là mệnh đề đúng thì được gọi là một nghiệm của phương trình (1) Giải phương trình (1) là tìm tất cả các nghiệm của nó (nghĩa là tìm tập nghiệm) Nếu phương trình. .. của phương trình với một đa thức Lúc đó, để loại nghiệm ngoại lai ta phải thử lại các nghiệm tìm được Đối với phương trình nhiều ẩn, ta cũng có các khái niệm tương tự Ví dụ 2.8: Giải phương trình: + = (4) Lời giải: Điều kiện của phương trình là: x ≠ 0 và x ≠ 1 Nhân hai vế của phương trình (4) với x(x - 1) ta được phương trình hệ quả: (4) => x + 3 + 3(x - 1) = x(2 - x) => + 2x = 0 => x(x + 2) = 0 Phương. .. gọi là phương trình hệ quả của phương trình f(x) = g(x) Ta viết f(x) = g(x) => (x) = (x) Phương trình hệ quả có thể có thêm nghiệm không phải là nghiệm của phương trình ban đầu Ta gọi là nghiệm ngoại lai Khi giải phương trình, không phải lúc nào cũng áp dụng được phép biến đổi tương đương Trong nhiều trường hợp ta phải thực hiện các phép biến đổi đưa tới phương trình hệ quả, chẳng hạn bình phương hai... + 2x = 0 => x(x + 2) = 0 Phương trình cuối cùng có hai nghiệm là x = 0 và x = -2 Ta thấy x = 0 không thỏa mãn điều kiện của phương trình (4), đó là nghiệm ngoại lai, nên bị loại Còn lại x = -2 thỏa mãn điều kiện và thỏa mãn phương trình (4) Vậy phương trình (4) có nghiệm duy nhất là x = -2 2.3 HÀM SỐ VÀ PHƯƠNG TRÌNH SIÊU VIỆT 2.3.1 Hàm số Hàm số chứa phép toán siêu việt là hàm số có chứa các phép toán . MATLAB: - Các phép toán ma trận. - Giải phương trình, hệ phương trình. - Vẽ đồ thị hàm số 2D, 3D. - Xử lý ảnh trong MATLAB. - Lập trình trong MATLAB. - Một số hàm trong MATLAB. Trong phạm vi đề tài. vector bằng cách nối các cột của ma trận với nhau 4 exist(‘item’ ) Bằng 0 nếu Item không tồn tại; Bằng 1 nếu Item là biến; Bằng 2 nếu Item là M-file; Bằng 3 nếu Item là một Mex-file; Bằng 4 nếu. 0 -9- 7 isempty(x) Bằng 1 nếu x là ma trận rỗng, ngược lại bằng 0 8 isstr(x) Bằng 1 nếu x là một xâu, ngược lại bằng 0 9 strcmp(x,y) Bằng 1 nếu 2 xâu x và y giống nhau, ngược lại bằng 0 10 xor(x,y) Hàm

Ngày đăng: 20/01/2015, 09:02

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w