MATLAB cho phép tính toán số với ma trận, vẽ đồ thị hàm số hay biểu đồ thôngtin, 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ìnhmáy tính viết trên n
Trang 1CHƯƠ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ôngtin, 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ìnhmá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:
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
Trang 2Hì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.
Trang 3Nế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
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
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
Trang 420 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
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ácnhau 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ạovector 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:
Trang 5>> 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
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 theonhiề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ý
Trang 61 * 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
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
Trang 7Bảng 1.3: Các hàm về kích thước vector và ma trận.
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
Trang 81.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:
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ớinhau, 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ủahai 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.
2 <= So sánh nhỏ hơn hoặc bẳng
Trang 93 > So sánh lớn hơn
4 >= So sánh lớn hơn hoặc bẳng
6 ~= So sánh không bằng nhau
7 & Toán tử logic Hội
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 vectorx; nếu x là ma trận thì nó được coi như vector bằng cách nối cáccộ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 2nếu Item là M-file; Bằng 3 nếu Item là một Mex-file; Bằng 4nếu Item là file được dịch từ phần mềm Simulink; Bằng 5 nếuItem 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
Trang 107 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))
Trang 11Có thể không có hoặc có mặt nhiều lần trong cùng một câu lệnh IF
Đầu tiên, MATLAB kiểm tra giá trị của biểu thức logic <ExpL1>: Nếu nó đúng(khác 0) thì thực hiện nhóm lệnh <Commands-1> Ngược lại, nếu <ExpL1>=0,MATLAB sẽ lần lượt kiểm tra các biểu thức logic dạng <ExpL2>, nếu một biểu thứclogic là đúng thì thực hiện nhóm lệnh <Commands-2> tương ứng… hoặc sẽ thực hiện
<Commands-3> nếu không tìm thấy biểu thức logic nào cho giá trị đúng
Ta có thể mô tả câu lệnh bằng sơ đồ sau:
Trang 12Toán tử phủ định NOT:được ký hiệu bằng dấu ~
Ví dụ 1.15:
Nếu (x>=0) có giá trị đúng thì ~(x>=0) có giá trị sai và ngược lại
Toán tử AND: được ký hiệu bằng dấu &
Ví dụ: nếu các biểu thức (x>=0),(y>=0) đều có giá trị đúng thì biểu thức tổ hợp(x>=0)&(y>=0) có giá trị đúng Ngược lại 1 trong 2 biểu thức trên có giá trị sai thì biểuthức tổ hợp (x>=0)&(y>=0) có giá trị sai
Toán tử OR: được ký hiệu bằng dấu |
Trang 13Ví dụ: nếu các biểu thức (x>=0),(y>=0) đều có giá trị sai thì biểu thức tổ hợp(x>=0)|(y>=0) có giá trị sai Ngược lại 1 trong 2 biểu thức trên có giá trị đúng thì biểuthức tổ hợp (x>=0)|(y>=0) có giá trị đúng.
Ví dụ 1.16:
Đoạn chương trình được viết trong M-flie: phanloai.m
n = input('Cho biet diem');
Trang 14Cho biet diem 8
Trang 15Giải thích Câu lệnh BREAK không có tham số, dùng để chấm dứt tác dụng củamột câu lệnh có cấu trúc như: FOR, WHILE hoặc IF, SWITCH (nhảy về sau câu lệnhEND tương ứng) Nói chung, khi viết chương trình không nên dùng BREAK đối với cáccâu lệnh IF hoặc câu lệnh SWITCH.
1.3 NHÓM LỆNH INPUT, OUTPUT.
1.3.1 File dữ liệu.
Trong MATLAB, ma trận có thể được lưu trữ dưới một trong hai dạng Mat-file vàASCII file Mat-file lưu trữ dữ liệu dạng nhị phân, thích hợp cho xử lí trong các chươngtrình MATLAB ASCII file lưu trữ dữ liệu dưới dạng văn bản, thích hợp với việc truyền
dữ liệu trong các chương trình viết bằng các ngôn ngữ khác nhau
1.3.2 Mở và đóng một ASCII file.
1.3.2.1 Mở file.
Cú pháp:
FID = fopen (<File name>,<Permission>)
Giải thích MATLAB mở file có tên <Filename>, gán file cho biến file có tên FID Kiểu mở file được xác định bởi <Permission> <Permission> là một xâu có thểnhận giá trị và ý nghĩa như sau:
'r' : Mở để đọc (reading);
'w' : Mở để ghi (writing), xóa bỏ nội dung của file cũ;
'a' : Mở hoặc tạo file để ghi, nối (append) dữ liệu vào đuôi file cũ;
'r+' : Mở file (không tạo file mới) để đọc và ghi;
'w+' : Mở hoặc tạo file để đọc và ghi, xóa bỏ nội dung của file;
'a+' : Mở hoặc tạo file để đọc và ghi, nối dữ liệu vào đuôi file cũ
1.3.2.2 Đóng file.
Cú pháp:
fclose(FID) Giải thích: Lệnh FCLOSE thực hiện đóng file đã mở với tên biến là FID
Khi thực hiện các câu lệnh ghi thông tin lên file, MATLAB chỉ thực hiện cập nhậtthông tin với nội dung file đang có trong bộ nhớ Sau câu lệnh FCLOSED, nội dung mớicủa file mới thực sự được cập nhật trên đĩa Nếu không có câu lệnh này, nội dung cậpnhật có thể bị mất
Bảng 1.7: Một số lệnh trích xuất dữ liệu.
1 disp(x) Hiện giá trị của biến x hoặc một xâu kí tự lên màn hình
Trang 162 <Biến> = input (‘Lời thoại’) In xâu ‘Lời thoại’ ra màn hình và nhập dữ liệu từ bàn phím cho biến.
3 save <Tên-file> x,y Lưu các ma trận x và y vào Mat-file, mặc định kiểu file
là *.mat trong thư mục chủ
4 load <Tên-file> Nhập dữ liệu từ file, mặc định là kiểu file *.mat trong thư mục chủ
5 fprintf ('Lời thoại % format', x) Đưa ra màn hình lời thoại và giá trị của x theo định dạng của format
6 fprintf(FID, ' Lời thoại % format', x) Ghi xâu ‘Lời thoại’ và giá trị của x theo định dạng của format vào text file được mở với tên biến file là FID
Ví dụ 1.19:
>> h = input (' Cho biet chieu cao: ');
Cho biet chieu cao: | %% Gõ 15.25 và Enter
Trang 17Hình 1.3: Đồ thị hàm y=sin(x).
1.4 HÀM TRONG MATLAB.
1.4.1 Phân loại hàm.
Có thể chia hàm trong MATLAB thành hai loại:
- Hàm chuẩn là các hàm nội trú, được lập sẵn của MATLAB
- Hàm do người sử dụng tạo ra là các hàm do người sử dụng MATLAB viết dướidạng hàm M-file hay dạng hàm Inline
-4
Trang 181.4.2 File kịch bản (script file hay M-file).
Script file là các file chương trình do người sử dụng viết ra được lưu dưới dạng file (*.m) M-file là loại text file nên bạn có thể sử dụng các hệ soạn thảo văn bản khácnhau để soạn thảo file hoặc bạn có thể chọn chức năng mở file (New hoặc Open) trongmenu File Khi gọi thực hiện chương trình, bạn chỉ cần gõ trên file mà không cần gõ cảphần mở rộng của file
M-1.4.3 Hàm M-file và cách tạo hàm M-file trong MATLAB.
Hàm trong MATLAB có thể được viết dưới dạng file hay hàm Inline Hàm file cần được lưu vào thư mục làm việc của MATLAB Cấu trúc của hàm M-file như sau:
M Các dòng chú thích bắt đầu là dấu %
- Một dòng bắt đầu là từ khóa function, sau đó lần lượt là: Danh sách tham số đầu ra(vô hướng hoặc vector), dấu bằng, tên hàm và danh sách các tham số đầu vào để trongngoặc đơn Dòng này được dùng để phân biệt giữa các file hàm với các script-file
- Các dòng lệnh của hàm
- Dòng cuối cùng có thể thêm từ khóa end hoặc không
Những điều cần chú ý khi tạo hàm:
- Trong hàm phải có các lệnh gán giá trị cho tham số ra Khi kết thúc thực hiện hàm,nếu một trong các tham số ra chưa được gán giá trị lần nào thì MATLAB sẽ đưa ra thôngbáo lỗi
- Các biến sử dụng trong hàm đều là các biến địa phương Tên biến trong hàm vàtên biến trong bộ nhớ hay trong chương trình gọi có thể trùng tên nhưng đó là hai biếnkhác biệt
- Trong hàm có các biến đặc biệt mặc định là nargin và nargout, chúng là các biếncục bộ Chúng tự động được gán giá trị bằng số các tham số vào và số các tham số rađược sử dụng trong câu lệnh gọi hàm
Bảng 1.9: Một số lệnh với các m-file
1 echo on/off Hiện hoặc ẩn các câu lệnh của M-file khi chúng thực hiện
2 return Kết thúc thực hiện hàm một cách bất thường
Trang 193 type <Tên-file> Xem nội dung file văn bản, mặc định đuôi file là *.m
4 what Xem danh sách M-file và MAT-file trong thư mục hiện hành
5 help <Tên-file> Hiện các câu chú thích trong M-file lên màn hình
Ví dụ 1.20:
Xây dựng m-file giải phương trình bậc 2 có tên Equa2
% Ham giai phuong trinh bac 2
F = inline('Expr','x1', 'x2', ,): Định nghĩa một hàm inline F bằng một biểu thức nằmtrong xâu 'Expr' Tên của các tham số vào của hàm lần lượt là 'x1', 'x2',
F = inline('Exp', N): Với N là một số nguyên, MATLAB sẽ tạo hàm inline F với(N+1) biến bằng một biểu thức nằm trong xâu 'Exp' Tên của các tham số vào của hàmlần lượt là 'x', 'P1' , 'P2', , ’PN’
Khi cần tính toán với một hàm số xác định từ một biểu thức đơn giản chúng ta nênđịnh nghĩa hàm dưới dạng đối tượng Inline
Ví dụ 1.21:
>> F1 = inline('pi^2')
Trang 20F1 =
Inline function:
F1(x) = pi^2
>> F2 = inline('sin(2*pi*f + theta)') F2 =
1.5.1 Các lệnh tính toán thời gian của máy tính.
Khi nghiên cứu hiệu quả của một giải thuật, cái được người ta quan tâm đầu tiên làvới một bài toán cụ thể thì chương trình thực hiện giải thuật đó chạy hết bao nhiêu thờigian Trong MATLAB có một số hàm giúp người sử dụng kiểm tra thời gian thực hiệntoán của một chương trình
Bảng 1.10: Danh sách các hàm tính toán thời gian máy tính.
1 tic Khởi động đồng hồ tính thời gian
2 toc Dừng đồng hồ tính thời gian và cho biết thời gian tính toán
3 cputime Thời gian làm việc từ khi khởi động MATLAB, tính bằng đơn
Elapsed time is 0.000204 seconds
Để tính thời gian thực hiện chương trình bạn cũng có thể làm như sau:
>> t= cputime; Calpi; t=cputime –t
ans =
Trang 211 who Liệt kê các biến đang sử dụng
2 whos Liệt kê các biến đang sử dụng với chi tiết cụ thể
3 clear Xóa tất cả các biến trong bộ nhớ
4 clear x, y, z Xóa 1 hay nhiều biến cụ thể x, y, z
s 1x7 14 char array Grand total is 23 elements using 142 bytes
??? Error using ==> plus
Matrix dimensions must agree
>> t ='Viva';
>> s+t %% Được hiểu là cộng 2 ma trận
ans =
170 210 234 208
1.5.3 Tạo menu đơn giản.
Để người sử dụng có thể linh hoạt trong việc xử lý các tình huống xảy ra trong khithực hiện chương trình, ta nên bổ sung các menu vào chương trình Bạn có thể tìm hiểuphương pháp tạo menu đồ họa cao cấp hơn trong MATLAB Tuy nhiên, trong nội dungcuốn sách về các phương pháp tính toán số chúng tôi chỉ giới thiệu một cách tạo nhữngmenu đơn giản
Trang 22Hàm MENU
Cú pháp:
Choice = menu (Header, Item1, Item2, ) Choice = menu (Header, ItemList)
Giải thích Hàm MENU dùng để tạo menu trên màn hình, trong đó:
- Header là một xâu dùng để tạo tiêu đề của menu;
- Item1, Item2,… là một danh sách liệt kê các xâu ghi tiêu đề các nút để người sửdụng có thể lựa chọn bằng click chuột trái; MATLAB không hạn chế số lượng xâu
- ItemList là một xâu hoặc một mảng xâu mà mỗi xâu là một tiêu đề của nút có thểđược lựa chọn;
- Kết quả trả về cho biến Choice là số thứ tự của nút được chọn Nếu chọn nút đóngcửa sổ trên menu thì kết quả là số 0 Sau đó Menu biến mất
Ví dụ 1.24:
>> k = menu('Choose a Name', 'Smith', 'Henry', 'Peter', 'Mary')
Kết quả câu lệnh trên cũng tương tự như kết quả sử dụng 2 lệnh liên tiếp:
>> ItemList={ 'Smith', 'Henry', 'Peter', 'Mary' };
>> k = menu('Choose a Name', ItemList)
Khi đó, tại góc trên bên trái màn hình sẽ xuất hiện menu có dạng:
Nếu bạn click chuột trái vào nút “Peter” trên Menu, thì kết quả hiện trên cửa sổCommand sẽ là:
k =
3 Nếu bạn click chuột trái vào nút trên góc trên bên phải của Menu, thì kết quảhiện trên cửa sổ Command sẽ là:
k =
0 Trong cả hai trường hợp trên, khi thực hiện click chuột trái xong thì Menu đều biếnmất Nếu muốn Menu chỉ có thể biến mất khi chọn nút kết thúc thì bạn nên đưa câulệnh MENU vào một vòng lặp while
Trang 24- Tập Y gọi là miền giá trị.
- x gọi là biến độc lập hay còn gọi là đối số, biến số.
- y gọi là biến phụ thuộc hay còn được gọi là hàm số.
- f(x) được gọi là giá trị của hàm f tại x.
Hình 2.1: Mỗi số thuộc tập X tương ứng với một số duy nhất thuộc tập Y
qua hàm f.
Định nghĩa: Nếu một đại lượng y phụ thuộc vào một đại lượng thay đổi x sao cho một giá trị của x ta luôn xác định được chỉ một giá trị tương ứng của y thì y được gọi là hàm số của x, và x gọi là biến số.
Trang 252.1.3 Tập giá trị và tập xác định của hàm số.
Tập giá trị G là tập hợp các giá trị của hàm số y
Tập xác định D là tập hợp các giá trị của biến số x
Trang 26Trong đó:
- Ox: trục hoành
- Oy: trục tung
- O: gốc tọa độ
- I, II, III, IV: lần lượt là góc phần tư thứ nhất, thứ hai, thứ ba và thứ tư
Biểu diễn điểm A(α, β) trên mặt phẳng tọa độ Oxy:
Ta có : A(α, β) trong đó :
α: hoành độ của điểm A
β: hoành độ của điểm A
Hình 2.2: Đồ thị hàm số y=2x+1 và y=+2x-1.
2.1.5 Sự biến thiên của hàm số.
Định nghĩa: Cho hàm số y = f(x) xác định với mọi giá trị của x thuộc R.
Nếu giá trị của biến x tăng lên mà giá trị tương ứng của hàm số f(x) cũng tăng lên thì hàm số y = f(x) được gọi là hàm số đồng biến trên R (gọi tắt là hàm số đồng biến) Nếu giá trị của biến x tăng lên mà giá trị tương ứng của hàm số f(x) cũng giảm đi thì
hàm số được gọi là hàm số nghịch biến trên R (gọi tắt là hàm số nghịch biến)
Định lí : với , thuộc R.
- Nếu < mà f() < f() thì hàm số y = f(x) đồng biến trên R
- Nếu < mà f() > f() thì hàm số y = f(x) nghịch biến trên R
Trang 27phươ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 không có nghiệm nào cả thì ta nói phương trình vô nghiệm (hoặc nóitậ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 (với độ chính xác nào đó) Giá trị đó gọi là nghiệm gần đúng củaphươ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
Khi giải phương trình f(x) = g(x), ta cần lưu ý tới điều kiện đối với ẩn số x để f(x)
và g(x) có nghĩa (tức là mọi phép toán đều thực hiện được) Ta cũng nói đó là điều kiệnxác định 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:
Trang 28Trong một phương trình (một hoặc nhiều ẩn), ngoài các chữ đóng vai trò ẩn số còn
có thể có các chữ khác, các chữ này được xem như những hằng số và được gọi là tham
số Tập 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ủatham 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 đương và phương trình hệ quả.
2.2.5.1 Phương trình tương đương.
Hai phương trình (cùng ẩn) được gọi là tương đương nếu chúng có cùng tậpnghiệm
Nếu f(x) = g(x) tương đương với (x) = (x) thì ta viết:
- Hai phương trình tương đương trên D
- Với điều kiện D, hai phương trình là tương đương với nhau
Ví dụ 2.7:
Với điều kiện x > 0, ta có hai phương trình = 1 và x = 1 tương đương với nhau.
Phép biến đổi tương đương
Để giải một phương trình, thông thường ta biến đổi phương trình đó thành mộtphương trình tương đương đơn giản hơn Các phép biến đổi như vậy được gọi là các phépbiến đổi tương đương
Trang 29Định lí sau đây nêu lên một số phép biến đổi tương đương thường sử dụng.
Nếu thực hiện các phép biến đổi sau đây trên một phương trình mà không làm thayđổi điều kiện của nó thì ta được một phương trình mới tương đương
- Cộng hay trừ từng vế với cùng một số hoặc cùng một biểu thức
- Nhân hoặc chia hai vế với cùng một số khác 0 hoặc với cùng một biểu thức luôn
Đ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 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ạilai, 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 căn thức, logarit,phép toán lượng giác hay phép toán mũ
Ví dụ 2.9:
Trang 30Một số hàm số chứa phép toán siêu việt
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ố ítcá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í 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:
Trang 31Một số phương trình siêu việt có trong đề thi tuyển sinh đại học, cao đẳng:
* Đối với hàm số, phương trình có chứa căn thức bậc chẵn với n ϵ Z+:
Ví dụ 2.13:
z =
Tập xác định:
* Đối với hàm số, phương trình có chứa phép toán lượng giác:
Lưu ý về tan(x) và cot(x):
Đối với hàm số và phương trình có chứa phép toán mũ
Nếu a < 0 thì b khi tối giản không phải là (n, k ϵ Z, n ≠ 0)
Trang 32CHƯƠNG 3: CƠ SỞ MATLAB VẼ ĐỒ THỊ HÀM SỐ
VÀ GIẢI PHƯƠNG TRÌNH SIÊU VIỆT
3.1 CƠ SỞ MATLAB ĐỂ VẼ ĐỒ THỊ TRÊN MATLAB.
3.1.1 Câu lệnh vẽ đồ thị 2D.
Các đồ thị, hình vẽ đóng một vai trò rất quan trọng trong việc trình bày kết quả tínhtoán một vấn đề kỹ thuật nào đó: chúng luôn gây được ấn tượng mạnh mẽ và có sứcthuyết phục người nghe hơn là các con số dày đặc trong các bảng biểu
Hình 3.1: Đồ thị hàm số y = với x ϵ vẽ trên MATLAB.
Câu lệnh trên MATLAB:
>> x = [0:0.001:2];
>> y = 2*x.^2 - 3*x + 1;
>> plot(x,y)
Trang 33Ý nghĩa: Vẽ đồ thị hàm y đối với x, Hai vector thực x và y phải cùng cỡ 'Symbol' làxâu quy định kiểu màu hoặc đường vẽ.
Màu vẽ cho bởi bảng sau:
Các kiểu đường thể hiện trong PLOT cho bởi bảng sau:
Bảng 3.2: Quy định kiểu đường vẽ.
- đường liên tục
đường đứt nét
- đường gạch chấm
: đường chấm chấm
Kiểu đường liên tục là kiểu đường mặc định của hàm PLOT
Câu lệnh 2: plot (y, 'symbol'): Nếu y là vector thực lệnh vẽ đồ thị của hàm y đối với
x là số thứ tự của toạ độ của y Nếu y là vector phức thì lệnh trên tương đương với:
Plot (real(y), imag(y), 'symbol')
3.1.1.b Xác định tỉ lệ trên đồ thị bằng lệnh AXIS.
Khi thực hiện lệnh plot(x,y) , Mathlab tự động chỉnh tỉ lệ trên 2 trục gồm phạm vithay đổi cuả các đại lượng, cũng như khoảng cách giữa 2 điểm đánh dấu (tick-mark) liềnnhau trên trục sao cho dễ nhìn Chúng ta có thể dùng lệnh axis để can thiệp vào chứcnăng autoscanling của Matlab
Câu lệnh: axis ([xmin xmax ymin ymax])
Ý nghĩa: Thay đổi lại tỷ lệ của các trục toạ độ
Bảng 3.3: Một số câu lệnh bổ sung:
axis auto Mặc định, MATLAB sẽ tự chọn một tỷ lệ thích hợp cho đồ thị
Trang 34V = axis Trả về một vectơ hàng mô tả tỷ lệ của đồ thị hiện tại, có
dạng V = [xmin xmax ymin ymax]
axis equal Các trục toạ độ có cùng đơn vị
axis square Hộp đồ thị hình vuông
Khi xem đồ thị có thể dùng các công cụ “+” và “ –“ để phóng to thu nhỏ vùng đồ thịmuốn xem
3.1.1.c Các câu lệnh chú thích trên đồ thị.
Text (x, y, 'text'): Đặt một chú thích (trong dấu ' ') lên đồ thị tại tọa độ (x, y).
Gtext (' text '): Đặt chú thích lên đồ thị, vị trí được xác định bởi click chuột.
Title (‘text '): Tựa đề của đồ thị.
Xlabel (' text '): Ghi nhãn cho trục Ox.
Ylabel (' text '): Ghi nhãn cho trục Oy.
Lưu ý: Các hàm xlabel(‘text’), ylabel(‘text’), title(‘text’) có đối số là 1 chuỗi kí tự(string) đi liền sau hàm vẽ plot(x,y) sẽ dán các nhãn lên trục x, trục y và ghi tên đồ thị ởphía trên của hình vẽ Các hàm này phải xuất hiện sau hàm plot(x,y) và được ngăn cáchbởi dấu phẩy
Hold on/off: Bật/tắt chế độ cho phép vẽ nhiều đồ thị trong cùng một hệ trục tọa
độ
Legend (‘text1’,’text2’): Tạo 1 khung chú thích bên trong đồ thị , các chú thíchnày có các nét vẽ tương ứng đi kèm theo đúng thứ tự vẽ: text1 đi kèm với đường y1 vàtext2 đi kèm với đường y2 Chúng ta có thể dùng chuột trái để rê khung này đến vị trímong muốn
Trang 35Hình 3.2: Minh họa bằng đồ thị.
3.1.1.d Vẽ đồ thị bằng các điểm được đánh dấu.
Lấy tọa độ các điểm trên đồ thị:
+ Hàm Ginput(n): Khi vẽ xong đồ thị, ta muốn lấy tọa độ 1 số điểm trên đường
này, dùng lệnh:
[x,y] = ginput (n), trong đó n là số điểm cần lấy tọa độ Khi đồ thị hiện ra, ta nhấn
phím trái chuột vào các vị trí muốn lấy tọa độ trên đồ thị, các hoành độ sẽ được chứatrong vectơ x và tung độ trong vectơ y
Vẽ đồ thị với các điểm cho trước:
Trang 36Hình 3.3: Đồ thị vẽ được trên MATLAB
Ta có các kiểu data marker:
Bảng 3.4: Các kiểu data marker.
Các kiểu data marker Ký hiệu trong hàm plot
Cú pháp : FPLOT (‘string’,[xmin xmax]), trong đó:
“string” là chuỗi kí tự dùng để mô tả hàm cần vẽ.
[xmin xmax]: xác định các giá trị bé nhất và lớn nhất của đối số x.
Dạng đầy đủ: fplot(‘string’,[xmin xmax ymin ymax]), trong phạm vi thay đổi của
biến phụ thuộc cũng được xác định