(NB) Phần 2 Bài giảng Giải tích mạch và mô phỏng trên máy tính gồm có 4 chương trình bày các nội dung sau Chương 4: Các lệnh điều khiển trong MATLAB, Chương 5: Đồ họa trong MATLAB, Chương 6: Các bài toán đại số tuyến tính và phương trình vi phân, Chương 7: Simulink.
Trang 131
Chương 4 CÁC LỆNH ĐIỀU KHIỂN TRONG MATLAB
4.1 Các lệnh rẽ nhánh: if end, switch end
4.1.1 Lệnh if … end
Nhiều khi chúng ta cần những câu lệnh được thực hiện theo một điều kiện nào đó
Trong ngôn ngữ lập trình, logic này được cung cấp bởi cấu trúc if … end Cú pháp của
cấu trúc này như sau:
If < biểu thức điều kiện>
khối các lệnh
end
Khối các lệnh giữa hai trạng thái if và end được thực hiện khi tất biểu thức điều kiện
là đúng Trong trường hợp điều kiện bao gồm các điều kiện con, thì tất cả các điều kiện con được tính và trả về một trạng thái logic của điều kiện
Trong trường hợp có hai điều kiện thay đổi, cấu trúc if-else-end là:
if Biểu thức điều kiện
Khối các lệnh được thực hiện nếu điều kiện là đúng
else
Khối các lệnh được thực hiện nếu điều kiện là sai
end
Khi có ba hoặc nhiều điều kiện thay đổi, cấu trúc của nó sẽ là:
if Biểu thức điều kiện 1
Khối các lệnh được thực hiện nếu điều kiện 1 là đúng
elseif Biểu thức điều kiện 2
Khối các lệnh được thực hiện nếu điều kiện 2 là đúng
elseif Biểu thức điều kiện 3
Khối các lệnh được thực hiện nếu điều kiện 3 là đúng
elseif Biểu thức điều kiện 4
Trang 2Trong mẫu dạng này thì khi biểu thức điều kiện đầu tiên đúng thì các câu lệnh sau
không được kiểm tra nữa, các cấu trúc if-else-end còn lại được bỏ qua Hơn nữa câu lệnh
else ở cuối có thể không cần cho vào
Ví dụ 1: Giải phương trình bậc nhất dạng tổng quát sau: ax + b = 0
Nhận xét:
Khi a ≠ 0 thì phương trình có nghiệm x = -b/a
Khi a = 0 thì xét hệ số b
Nếu b ≠ 0: phương trình vô nghiệm
b = 0: phương trình có vô số nghiệm
Từ đó ta xây dựng chương trình matlab như sau:
a=input( 'nhap a=' );
disp( 'ptvsn' ) end
end
Tương tự ta xét ví dụ 2: Giải phương trình bậc 2 có dạng tổng quát sau:
ax2 + bx + c = 0 (a ≠ 0)
Lập luận và đưa tới chương trình sau:
disp( 'giai phuong trinh bac hai' )
a=input( 'nhap a=' );
Trang 3Khi một chuỗi các lệnh đánh giá dựa trên một biểu thức thử hoặc biểu thức điều
kiện với nhiều giá trị thử khác nhau, người ta thường dùng cấu trúc switch-end Cấu trúc
switch-end có dạng như sau:
switch biểu thức điều kiện
Ở đây biểu thức điều kiện phải là dạng số hoặc dạng chuỗi, nếu biểu thức điều kiện
là dạng số thì lệnh case sẽ thử xem giá trị của biểu thức đó có bằng giá trị thử i hay không Nếu biểu thức điều kiện là một chuỗi thì lệnh case sẽ so sánh chuỗi đó với giá trị thử i
Trong ví dụ trước, biểu thức điều kiện được đem so sánh với giá trị thử 1, nếu chúng bằng nhau thì khối lệnh đầu tiện được thực hiện, mà các khối lệnh tiếp theo cho đến trước trạng
thái end được bỏ qua, nếu chúng không bằng nhau thì điều kiện tiếp tục được đem so sánh
với giá trị thử 2, giá trị thử 3, giá trị thử 4, nếu một trong các giá trị này bằng biểu thức
điều kiện thì khối lệnh 2 được thực hiện Nếu tất cả các lệnh so sánh của case đều không
Trang 434
đúng thì khối lệnh 3 được thực hiện Chú ý rằng trong cấu trúc switch-end có ít nhất một
nhóm lệnh phải được thực hiện Sau đây là một ví dụ về cấu trúc switch-end
Ví dụ: Bài toán phân loại học sinh: điểm 9-10 xếp loại giỏi, điểm 7-8 xếp loại khá, điểm 5-6 xếp loại trung bình; điểm 1,2,3,4 xếp loại yếu; nếu điểm vào không phải số nguyên nằm giữa 1 và 10 thì thông báo điểm không hợp lệ
n = input ( 'nhap diem: ' );
disp( 'phan loai:' );
Nhận xét: Cấu trúc IF…END chỉ hữu ích trong trường hợp chỉ có một vài lựa chọn
Còn khi có một số lượng lớn các lựa chọn khả dĩ, thông thường ta sử dụng cấu trúc
SWITCH …END để thay thế
4.2 Các lệnh lặp: for end, while end
4.2.1 Lệnh lặp for … end
MATLAB có phiên bản riêng của nó về vòng lặp "FOR" tìm thấy trong các ngôn
ngữ máy tính Nó cho phép một câu lệnh, một nhóm lệnh, được lặp lại một số lần cố định xác định trước
Cú pháp:
for chỉ số = biểu thức
nhóm lệnh A;
end
Diễn đạt : Nếu thỏa điều kiện thì sẽ thực hiện lệnh của vòng lặp Đến khi không thỏa điều
kiện thì sẽ thoát ra khỏi vòng lặp
Qui tắc thực hiện:
- Chỉ số của vòng lặp phải là biến
- Nếu ma trận biểu thức là rổng thì không thực hiện vòng lặp
Trang 5- Khi kết thúc vòng lặp chỉ số nhận giá trị cuối cùng
- Có thể dùng toán tử: Trong vòng lặp for i = chỉ số đầu : gia số : chỉ số cuối Và số vòng lặp được tính = (chỉ số cuối – chỉ số đầu)/ số gia + 1
Trang 6disp( 'tinh tong' );
n=input( 'nhap so hang can tinh tong n=' );
MATLAB cũng có phiên bản về vòng lặp "WHILE", cho phép một lệnh hoặc
nhóm lệnh lặp lại với số lần không xác định, dưới điều khiển của một điều kiện logic
Được sử dụng khi số lần lặp không được biết trước Quá trình lặp sẽ chấm dứt khi một điều kiện xác định nào đó được thỏa Cấu trúc của vòng lặp while như sau:
while expression
statements
end
Trong đó:
expression : Điều kiện của vòng lặp
statements : Lệnh hoặc nhóm lệnh thực thi của vòng lặp
Diễn đạt: Nếu thỏa điều kiện thì sẽ thực hiện lệnh của vòng lặp Hàm while được sử dụng
khi chưa biết số lần lặp, trong khi hàm for được sử dụng khi đã biết rõ số lần lặp
Trang 7Hai lệnh hữu ích rất hay được sử dụng để điều khiển chu trình tính toán là continue
và break Trong vòng lặp for hay while, khi gọi continue ngay lập tức chu trình tính
chuyển sang bước lặp kế tiếp, mọi lệnh chưa thực hiện của vòng lặp (thuộc về bước lặp hiện tại) sẽ bị bỏ qua
Lệnh break còn mạnh hơn: Ngừng vòng lặp đang tính Lệnh break có tác dụng
trong cả các cấu trúc rẻ nhánh dùng if, switch
Ví dụ sau sẽ minh họa các nội dung vừa đề cập đến trong mục này với nội dung: Cần kiểm tra xem trong các số nguyên thuộc khoảng 3-7, số nào là số nguyên tố Việc kiểm tra này được thực hiện ở mạch vòng bên ngoài
for m = 3 : 1 : 7,
for n = 2: 1 : m-1,
if mod(m,n)~= 0, continue , end
fprintf( ' %2d khong phai la so nguyen to!\n' , m)
đã được rời bỏ bởi lệnh break để tiếp tục các lệnh thuộc vòng lặp phía ngoài Matlab đưa
ra kết quả ngoài màn hình như sau:
!! 3 la so nguyen to!
4 khong phai la so nguyen to!
!! 5 la so nguyen to!
Trang 838
6 khong phai la so nguyen to!
!! 7 la so nguyen to!
Lệnh chuyển đến cuối m-file
Nếu break được sử dụng ngoài vòng for, while trong phạm vi một script hay function của Matlab, khi ấy script file và function sẽ bị ngừng tại vị trí của break
Ví dụ: Viết chương trình nhập vào một số n (n>=0) với các trường hợp sau:
a) Nếu n < 0 thì in thông báo bạn nhập sai
b) Nếu n > 0 và lẽ thì tính tổng s1=1+3+5+ +n, n là số lẽ
c) Nếu n > 0 và chẵn thì s2=2+4+6+ +n, n chẵn
d) Nếu n = 0 dừng chương trình lại
Giải:
n=input( 'nhap n= ' ); % nhap so n
du=rem(n,2); % kiem tra so n la chan hay le
% neu n le =1, n chan du = 0
if n<0
fprintf( 'Ban nhap sai' ) % xuat ra thong bao
end
if (n>0) & (du==1) % neu n>0 và le
i=1; % gan i=1;
s1=1; %gan tong s1=1
while i<n % thuc hien vong lap
i=i+2; % tang i len 2 sau moi vong lap
s1=s1+i; % tinh tong s1 voi gia tri i moi
Trang 9pause off: tắt chức năng pause
pause (n): dừng chương trình tại n giây
Press any key to continue…
Press any key to continue…
Press any key to continue…
Trang 1040
Câu hỏi ôn tập chương 4
Câu 1: Trình bày nội dung của lệnh if … end trong trường hợp bài toán có hai điều kiện
thay đổi và có nhiều điều kiện thay đổi?
Câu 2: Trình bày nội dụng của lệnh Switch … end?
Câu 3: Viết và giải thích cấu trúc của lệnh vòng lặp for … end?
Câu 4: Viết và giải thích cấu trúc của lệnh vòng lặp while … end?
-
Trang 1141
Chương 5 ĐỒ HỌA TRONG MATLAB
5.1 Cơ sở đồ họa Matlab
Khuôn khổ của mọi thao tác xuất đồ hoạ trên nền Matlab là Figure Có thể tạo ra cửa
sổ như hình 2.2 bằng cách gọi lệnh figure và mỗi figure sẽ tự động được đánh số
Bằng lệnh subplots (row, column, counter), có thể chia đều một figure thành
nhiều subplots (đồ hoạ con) được counter (bộ đếm) đánh số ở phía trên bên trái Nếu việc
đánh số chỉ cần một chữ số, chúng sẽ được viết tuần tự không cần dấu phẩy hay dấu cách
Có thể xoá nội dung của một figure bằng lệnh clf (clear current figure), và
lệnh delete figure(number) sẽ xoá chính figure Tương tự, lệnh close(number) sẽ đóng figure mang số number còn lệnh close all sẽ đóng tất cả các figures đang mở Có thể xem đặc điểm của một figure bằng lệnh get, với lệnh set ta lại có thể lập đặc điểm cho figure
Việc lập trình đồ hoạ trong Matlab luôn phụ thuộc vào đối tượng cụ thể và vô cùng phong phú Một công cụ làm nhẹ bớt công việc là trình soạn thảo đặc tính đồ hoạ (property editor) với cửa sổ giới thiệu ở hình sau:
Trang 1242
Việc phân chia thang bậc của trục thường được Matlab tự động thực hiện Tuy nhiên, ta có thể phân chia thủ công trong trường hợp hai chiều (2-D) bằng lệnh
axis([x_min,x_max,y_min,y_max,z_min,z_max]) Lệnh axis(’auto’) sẽ trao quyền chia trục
lại cho Matlab Lệnh grid on sẽ tạo ra một lưới toạ độ ứng với cách chia trục đã xác định Đối với đồ hoạ 3-D ta có thêm lệnh box on để tạo khung bao cho 3-D-Plot
Để điền ký tự vào một đồ hoạ ta có nhiều khả năng khác nhau: Dùng
xlabel(string), ylabel(string), zlabel(string) để điền tên cho trục; dùng title(string) để
điền tên cho figure Ngoài ra ta còn có thể viết các ký tự lên cao, tụt thấp hay các ký tự
Hy Lạp
Bằng lệnh legend(string_1,string_2,…, [position]) ta có thể điền thêm một số lời
ghi chú vào đồ hoạ Vị trí của lời ghi chú được xác định bởi số ghi trong [position], với ý nghĩa: 1…4 sẽ đặt lời ghi chú vào 4 góc, 0 đặt tự động và -1 đặt vào bên phải, cạnh
đồ hoạ Lệnh text(x_value,y_value,string) cho phép ta điền một đoạn văn bản với nội
dung string vào toạ độ bất kỳ x_value, y_value trong đồ hoạ
Sử dụng lệnh zoom on | off để dùng chuột cắt và co dãn mảng đó Ngoài ra,
cửa sổ figure còn có một vài nút cho phép dùng chuột điền đoạn văn bản, vẽ thêm
nét hoặc mũi tên, và mở Property Editor
Có thể thêm thông tin chi tiết về xuất đồ hoạ ra mà hình bằng cách gọi help
graph2d, help graph3d và help specgraph
5.2 Đồ họa 2 chiều
Lệnh plot (x_value,y_value …[,plotstyle]) vẽ đồ thị nối các điểm cho bởi cặp giá trị
x_value, y_value Thông thường các điểm đó được nối bởi một nét liền
Nếu ta nạp luân phiên nhiều vector x/y, ta sẽ thu được nhiều nét nối độc
lập với nhau Nếu thiếu x_value, khi ấy các giá trị của y_value sẽ được vẽ theo thứ tự chỉ
số của chúng Nếu y_value là các giá trị phức, khi ấy đồ thị vẽ với hai trục ảo và trục thực Lệnh stars cũng được viết với cú pháp tương tự nhưng sẽ tạo ra đồ thị bậc thang
Trang 1343
Chuỗi ký tự plotstyle cấu tạo bởi hai thành phần: Thành phần thứ nhất là
một chữ cái để chọn mầu và thành phần thứ hai là chuỗi ký hiệu đặc trưng cho dạng chấm/ gạch nối tạo nên nét đồ thị
Mỗi lần gọi mới lệnh plot, các đồ thị đã có trong Figure (hoặc trong Subplot) hiện
tại sẽ bị xoá Có thể ngăn chặn các điều đó bằng cách gọi lệnh hold on sau lệnh plot đầu
tiên
Trang 14Lệnh plot3 có tác dụng tương tự như lệnh plot, điểm khác duy nhất là plot3 có thêm
vector số liệu thứ ba dành cho trục z
Trang 1545
Để biểu diễn các hàm 2 chiều dưới dạng mặt trong không gian ta sử dụng lệnh
surf(x_value, y_value, z_value… [, color]) Nếu x_value, y_value, z_value là các ma trận
có số hàng và số cột giống nhau, khi ấy các điểm của đồ hoạ sẽ được vẽ và nối liền thành mặt
Nếu các điểm có một khoảng cách đều đặn về phía hai trục x và y, khi ấy x_value
và y_value có thể chỉ là vector Trong trường hợp này, các giá trị x_value được chuẩn theo cột và y_value chuẩn theo hang của ma trận z_value
Hai lệnh mesh và waterfall có cú pháp giống như surf, nhưng lại tạo ra mặt lưới không điền đầy và đồ hoạ kiểu thác nước Ngược lại contour lại vẽ nên các đường “đẳng mức” (đường nối các điểm có cùng z_value)
Ngoài ra ta còn có thể thêm một ma trận color để xác định màu cho đồ hoạ Mỗi phần tử của color ứng với một phần tử của z_value Các giá trị màu sẽ được sử dụng trong một bảng màu, và ta có thể thay đổi bảng đó nhờ lệnh colormap(name) Nếu
không khai báo ma trận màu, Matlab sẽ tự động gán color = z_value Dải màu có thể được co dãn thang nhờ lệnh caxis (color_min, color_max)
Trang 1646
5.3.2 Phối cảnh trong đồ hoạ 3 chiều
Có thể dùng lệnh view(horizontal,vertical) để phối cảnh cho đồ hoạ 3 chiều
bằng cách khai các góc theo phương nằm ngang và phương thẳng đứng tính bằng độ (o, Degree) Góc chuẩn cho trước là (-37.5o, 30o) Ngoài ra, cũng có thể tạo dựng hay thay đổi phối cảnh bằng cách nháy và kéo thả chuột, sau khi đã gọi lệnh rotate3d
5.3.3 Nhập, xuất và in đồ hoạ
Nếu cần phải gán một File đồ hoạ có sẵn vào khuôn hình của Figure, ta có thể sử
dụng hai lệnh variable = imread(file,fmt) và image(variable)
Bằng lệnh imread ta gán File đồ hoạ với định dạng fmt cho biến variable Nếu
variable nhận hình ảnh chỉ bao gồm gam màu xám, variable sẽ là một biến 2 chiều Nếu
đó là hình ảnh mầu RGB, variable sẽ là một mảng 3 chiều Định dạng của đồ hoạ được khai báo bởi fmt Lệnh image (variable) sẽ xuất đồ hoạ mới gán cho variable ra màn hành
Figure có chứa ảnh với định dạng jpg
Đồ hoạ Figure của Matlab cũng có thể được xuất sang các định dạng khác Lệnh
print –fnumber sẽ in Figure mang số number ra máy in Lệnh print –fnumber -dfmt file
sẽ xuất Figure thành file với các định dạng đồ hoạ khác Ví dụ: bmp (Windows bitmap), emf (Enhanced meta), eps (EPS level 1), jpg (JPEG image), pcx (Paintbrush 24-bit) hay tif (TIFF image, compressed) Để biết chi tiết hãy gọi lệnh help
Nếu cần phải lưu lại để sau này xử lý, có thể cất các đồ hoạ đã thu được
thành File với định dạng fig của Matlab Để cất hoặc ta đi theo menu File / Save as, hoặc gọi lệnh saveas(handle, ‘file’ [,format])
Lệnh saveas cất handle (Figure hiện tại, có thể dùng gcf để hỏi) thành tệp có tên file với một trong các định dạng: ‘fig’ (File nhị phân), ‘m’ (gồm một File fig và một
File Script)
5.4 Thiết kế giao diện đồ họa
Tạo GUI bằng công cụ đồ hoạ: Trên đây ta đã xem xét cách tạo GUI bằng phương
pháp thủ công Ta có thể tạo GUI bằng công cụ đồ hoạ Khi nhập lệnh guide ta gọi trình
đồ hoạ (Graphics User Interface Development Environment) để soạn thảo layout Kết quả đầu tiên là ta có một layout rỗng
Trang 1747
Hình 5.1 Giao diện ban đầu của cửa sổ thiết kế GUI
Việc đầu tiên là ta thiết kế giao diện mong muốn Ta sẽ dùng chuột kéo các phần tử cần dùng từ bên trái và thả vào layout rỗng bên phải Ta có thể dịch chuyển các phần tử này đế các vị trí mong muốn và cân chỉnh bằng công cụ Alignment Với mỗi phần tử ta cấn xác định thuộc tính cho nó bằng cách bấm đúp vào phần tử hay bấm vào công cụ soạn thảo thộc tính
Sau khi thiết kế xong ta lưu nó lại Lúc này MATLAB tự động tạo ra file *.fig dùng lưu giao diện vừa tạo và file *.m chưa các mã lệnh cần thực hiện Việc cuối cùng là viết các mã lệnh vào file *.m Trong quá trình thiết kế ta có thể chạy thử xem sau mỗi bước thiết kế đã đạt yêu cầu chưa bằng cách bấm vào ô chạy thử
Ví dụ tạo GUI: Giải phương trình bậc 2, Ta thiết kế một giao diện như sau:
Trang 1848
Hình 5.2 Cửa sổ giao diện giải phương trình bậc 2
Trước hết ta gọi guide và có được một layout rỗng Vào Property Inspector (ô soạn thảo thuộc tính) và ghi vào Name chuỗi ‘giaiphuongtrinhbac2’ và chấp nhận thuộc tích Tag mặc định của nó là figure1; dùng Font chữ mặc định, cỡ chữ 12, bold Ta dùng ô Edit Text để ghi lại các hệ số a, b, c nhập vào Ta vào Property Inspector rồi chọn ô Tag, đặt tên lần lượt là hesoa, hesob, hesoc và cũng dùng Font chữ mắc định, cỡ chữ 12 và bold Tương tự như vậy là cũng tạo tiếp một Static text để hiển thị kết luận phương trình có nghiệm phân biệt, nghiệm kép hay vô nghiệm với thuộc tính Tag là ketluan, Font chữ mắc định, cỡ chữ 12 và bold Tiếp tục tạo 2 Static text để hiển thị kết quả hai nghiệm tương tự như trên Như vậy là ta đã thiết kế xong Bây giờ ta lưu lại với tên là
giaiphuongtrinhbac2.fig và giaiphuongtrinhbac2.m
Nhiệm vụ tiếp theo là ghi các lệnh cần thiết vào file giaiphuongtrinhbac2.m File
này đã được MATLAB tự động tạo ra Ta phải thêm vào đó các mã lệnh để khi bấm chuột thì kết quả hiển thị trên ô kết luận và hai nghiệm X1 và X2 Ta sẽ ghi các mã lệnh này vào phần:
function GIAIPT_Callback(hObject, eventdata, handles)
Do lệnh cần được thực hiện khi gọi pushbutton Nội dung của
giaiphuongtrinhbac2.m là:
Trang 1949 Chạy chương trình ta có kết quả sau:
Trang 2050
Câu hỏi ôn tập chương 5
Câu 5.1: Trình bày cách tạo cửa sổ đồ họa để thực hiện thiết kế?
Câu 5.2: Hãy giải thích cách sử dụng các lệnh sau: gcf, subplots, clf, delete
figure(number), set?
Câu 5.3: Trình bày cách chèn kí tự vào một đồ họa như tên cho trục, tên cho figure?
Câu 5.4: Trình bày cấu trúc lệnh legend?
Câu 5.5: Trình bày cấu trúc lệnh zoom on | off ?
Câu 5.6: Đồ họa 2D là gì? Cấu trúc vẽ đồ họa 2D như thế nào? Cho ví dụ minh họa?
Câu 5.7: Trình bày cấu trúc lệnh plot3 trong đồ họa 3D?
Câu 5.8: Hãy nêu cách phối cảnh trong đồ họa?
Câu 5.9: Hãy viết các lệnh để nhập, xuất, in đồ họa?
Câu 5.10: Trình bày phương pháp tạo GUI bằng công cụ đồ họa?
Câu 5.11: Hãy tạo giao diện GUI và lập trình giải mạch điện với giao diện dưới đây:
Với yêu cầu:
- Nhập thông số các nhánh
- Lập trình cho kết quả dòng điện trên các nhánh
-
Trang 21- Ma trận hàng (1 x m) số liệu được bố trí trên một hàng
- Ma trận cột (n x 1) số liệu được bố trí trên 1 cột
a Qui định để định nghĩa một ma trận trong Matlab
Tên ma trận (có thể đến 31 ký tự), bắt đầu phải bằng chữ cái sau đó có thể là số, chữ cái, các ký tự đặc biệt Tên đặt bên trái dấu bằng, bên phải dấu bằng là các phần tử của
ma trận, các phần tử của ma trận được đóng bằng dấu ngoặc vuông ([]), các phần tử trong trong cùng một hàng được cách nhau bởi ký tự trống hoặc dấu phẩy (, ), các phần tử thuộc các hàng khác nhau cách nhau bởi dấu (;)
b Các phương pháp nhập một ma trận
- Liệt kê trực tiếp, ví dụ lệnh:
>> A = [1 2 3; 4 5 6; 7 8 9]
Kết quả cho ra một ma trận có 3 hàng, 3 cột
- Nhập thông qua lệnh input, ví dụ lệnh:
>> input('Nhap gia tri cho ma tran A = ')
Nhap gia tri cho ma tran A = [1 2 3; 4 5 6; 7 8 9]
Trang 22Việc tạo ma trận véc tơ được thực hiện theo công thức sau:
Biến = giới hạn đầu : bước chạy : gới hạn cuối
Trong đó: Giới hạn đầu, giới hạn cuối, bước chạy: Là các số thực, bước chạy có thể dương hoặc âm
Trang 236.2 Hệ phương trình đại số tuyến tính
Trong toán học (cụ thể là trong đại số tuyến tính), một hệ phương trình đại số tuyến tính hay đơn giản là hệ phương trình tuyến tính là một tập hợp các phương trình tuyến tính với cùng những biến số Ví dụ:
Là hệ gồm ba phương trình với ba biến số x, y, z Một nghiệm của hệ là một hệ thống tuyến tính thỏa mãn các phương trình đã cho
Dạng tổng quát:
Hình thức tổng quát của hệ phương trình đại số tuyến tính gồm n phương trình tuyến
tính với k biến số:
Hệ phương trình trên có thể được viết theo dạng phương trình ma trận: Ax=b
Với A là ma trận chứa các hệ số ai,j (ai,j là phần tử ở hàng thứ i, cột thứ j
của A); x là vector chứa các biến xj; b là vector chứa các hằng số bi Tức là:
Nếu các biến số của hệ phương trình tuyến tính nằm trong các trường đại số vô hạn (ví dụ số thực hay số phức), thì chỉ có ba trường hợp xảy ra:
Hệ không có nghiệm (vô nghiệm)
Trang 246.3 Giải thuật giải phương trình vi phân
Phương trình vi phân là biểu thức liên hệ giữa một biến độc lập, hàm phải tìm và các đạo hàm của nó
Nếu phương trình chứa nhiều biến độc lập cùng với hàm của các biến này cần phải tìm và các đạo hàm riêng của hàm theo các biến thì ta gọi đó là các phương trình vi phân đạo hàm riêng (gọi tắt là phương trình đạo hàm riêng)
6.3.1 Phương trình vi phân cấp 1
- Đối với phương trình vi phân không có điều kiện đầu ta sử dụng cú pháp:
>> y = dsolve('phương trình')
6.3.2 Phương trình vi phân cấp 2