/ Chia phải ab=
function[x1, x2] =GPTB2(a,b,c)
=GPTB2(a,b,c) x1=(-b+sqrt(delta))/(4*a); %Tinh nghiem x1 2 ( b >>a= 1; >>b=-2; >>c=1;
>>[x1,x2]=GPTB2 (a,b,c) % cấu trúc chung lμ [x1,x2]=Tên_file (a,b,c)
a=1; b=-2; c=1; delta=b^2-4*a*c; x1=(-b+sqrt(delta))/(4*a) x2=(-b-sqrt(delta))/(4*a)
L−u ý rằng khi viết chơng trỡnh trong M-file, bạn mn ghi chú thích ta dùng ký tự % đặt tr−ớc dịng chú thích nh− sau
%----------dịng chú thích -------------- Ví dụ 2
Viết chơng trỡnh trong M-file đ−ỵc dùng lμ chủ yếu ,đặc biệt đối với những ch−ơng trỡnh dμi , phức tạp thỡ bạn nờn viết trong M-fil
1.4 Dũng nhắc gỏn giỏ trị biờn
Đối với bạn đà học lập trỡnh Pascal, bạn muốn nhập giỏ trị khi thực thi ch−ơng trỡnh bạn dựng cặp lệnh:
writeln( 'Nhập giỏ trị của a='); readln(a);
Nh−ng đối với MATLAB thỡ bạn sẽ thấy rất đơn giản chỉ dựng một lệnh duy nhất đó lμ : a=input(‘Nhap gia tri cua a=’);
Ví dụ: Trong cưa sỉ Commandwindow ta gõ lệnh
>> a =input(‘nhap a=’);
Nhấn Enter cho kết quả d−ới dạng
nhap a= 3; đồng nghĩa với việc gỏn a=3.
Sử dụng dũng nhắc gỏn giỏ trị biờn trong trờng hợp ta muốn thay đổi giỏ trị cỏc biến lúc thực thi ch−ơng trỡnh.
Vớ dụ : sử dụng dũng nhắc gỏn giỏ trị biờn để giải phơng trỡnh bậc hai
%Viết trong M-file(dạng Script file) x=0:0.1:10 ; %Tạo vector x
y=cos(x);
plot(x,y); % Vẽ đồ thị hμm cosin %l−u vμo file có tên lμ dai1.m
% Ch−ơng trỡnh viết trong M-file, bạn cú thể viết trong CommandWindow CommandWindow a=input(‘nhap he so a=’); b=input(‘nhap he so b=’); c=input(‘nhap he so c-=’); Delta=b^2-4*a*c; x1=(-b+ sqrt(Delta))/(4*a)
Thực thi hμm trên cưa sỉ commandwindow bằng lƯnh >> dai1
1.5 Cỏch tạo một hμm function
Tr−ớc hết ta thống nhất rằng, để tạo một hμm function ta phải soạn thảo nú trong M- fil Cấu trúc hμm nh− sau:
Chú ý:
• Danh sách tờn kết quả, v tham số đầu vμo đợc cỏch nhau bằng dấu phẩỵ Ví dụ : function[x1,x2,x3]=dai2(a,b,c,d)
• Thân chơng trỡnh khụng bắt đầu bằng từ khoỏ Begin vμ không kết thúc bằng từ khố End nh− Ngơn ngữ lập trỡnh Pascal.
ó Ta nên l−u vμo file có tên trùng với tên hμm
Ví dụ: Cho sơ đồ khối của hệ thống điều khiển tự động nh− hình d−ới đõy
NhiƯm vơ: Tính hμm truyền kín cđa hƯ thống Ch−ơng trỡnh cú thể đỵc viết nh− sau:
function[numk, denk]=ham_truyen(num1, den1, num2, den2)
numh=conv(num1, num2);% conv lμ hμm nhân, hμm nμy đ−ợc định nghĩa sẵn denh=conv(den1,den2);
numk=numh;
m=length(denh)- length(numh); numh1=[zeros(:,m), numh]; denk= numh1+denh;
%kết thúc ch−ơng trỡnh tại đõy bạn nờn l−u vμo file có tên lμ ham_truyen. Thực thi hμm:
%Khai báo hμm có từ khố function
function[danh sỏch tờn kết quả]= Tờn_hμm(danh sách cỏc biến đầu vo) % Thân ch−ơng trỡnh câu lƯnh 1; câu lƯnh 2; câu lƯnh 3; ……….... câu lƯnh n;
%kết thúc ch−ơng trỡnh khi kết thỳc cõu lệnh
22 2 den num 1 1 den num y u (-
>> num1=[1 1]; >>den1=[1 2 1]; >>num2=[1 2]; >>den2=[1 2 1 4]; >>[numk,denk]=ham_truyen(num1,den1,num2,den2); 1.6 Sư dơng hμm có sẵn
Có rất nhiều hμm cú sẵn, đú lμ các hμm đã đ−ợc lập trỡnh sẵn,vμ đợc đ−a vμo th− viƯn, đĨ xem một hμm cũng nh− cấu trúc, cách sư dơng ta dùng lƯnh >>help tên_hμm
Ví dụ Ta muốn xem cấu trúc hμm ode23 >>help ode23
1.7 Vẽ các hμm
Dùng lệnh fplot để vẽ cỏc hμm, hμm nμy có thể có sẵn(ví dơ nh− sin, cos . . .), hc các hμm tạo bởi ng−ời dùng viết trong M-file dạng function
Cấu trúc:
L−u ý:Đối với cỏc hμm tốn học có sẵn(khụng phải định nghĩa) vớ dụ nh− sin, cos ,... thì có thĨ thực hiện nh− sau:
+ fplot(‘sin(x)’,2*pi*[-1 1] ) %vẽ y=sin(x) với x=[-2*pi 2*pi]; + fplot([sin(x),tan(x),cos(x)]’, 2*pi*[-1 1] );
%vẽ ba đồ thị trờn cựng một cửa sổ với x=[-2*pi 2*pi] ; • Dùng hμm inline ví dụ : f=inline(‘x+2’); fplot(f,[0 2] ); • Đối với cỏc hμm trong M-file có thĨ sư dơng các cách sau Ví dụ: Tính f1, f2, f3
Hμm FUNC sẽ trả vỊ một vector hμng ứng với mỗi giỏ trị của x, vớ dụ x=[x1;x2] thỡ hμm FUNC sẽ trả vỊ ma trận sau đõ
f1(x1) ,f2(x1), f3(x1) f1(x2) ,f2(x2), f3(x2)
Lợi dụng đặc điểm nμy ta cú thể vẽ nhiều đồ thị trờn cùng một cưa sỉ thơng qua ví dụ sau:
fplot( Tên_hμm ,[Xmin ,Xmax] ,tol,N, LineSpec );hc ,tol,N, LineSpec );hc
function [f1,f2,f3]= FUNC(x) f1= x+3;
f2=x; f3=x.^2;
Thực thi ch−ơng trỡnh trờn trong Commandwindow >>fplot( ‘myfun’,[-20 20] );
(hc dùng >>fplot(@myfun ,[-20 20] )
Cỏc thụng số tol, N , LineSpec lần lựot lμ sai số liên quan(t−ơng đối), số điểm ớt nhất, biĨu diƠn thc tính cđa đ−ờng.
Chú ý:Khi bạn mn hạn chế khoảng biểu diễn cả trục x vμ y thì dùng [Xmin Xmax Ymin Ymax] .
1.8 L−u vμ lấy dữ liƯu
Với Matlab khi thoát khỏi ch−ơng trỡnh(tắt),cỏc biến dữ liệu(trongWorkspace) sẽ bị mất,do vậy khi thực hiƯn lại ch−ơng trỡnh bạn phải khai bỏo lại cỏc biến cần thiết trờn, điều nμy gây mất thời gian, vμ biƯn pháp tốt lμ bạn l−u tất cả cỏc biến cần thiết cho ch−ơng trỡnh của bạn vμo file riêng, vμ khi cần chúng ta gọi chúng ra bằng một lƯnh
L−u dữ liƯu có thĨ lμ :
• L−u tất cả cỏc biến trong vựng lμm việc( Workspace) hoặc ó Một số biến nhất định tuỳ theo nhu cầu .
Sau đõy l các cách lu cỏc biến dữ liệu:
1.8.1 L−u vμ lấy dữ liƯu d−ới file nhi phân(binary)
L−u dữ liƯu:
>>save('C:\matlabR12\work\ten_filộ) %l−u toμn bộ biến trong Workspace >>save('C:\matlabR12\work\ten_filộ, 'x','ý)% chỉ l−u biến x vμ y
Chú ý: C:\matlabR12\work\ten_file lμ đ−ờng dẫn tới file, thông th−ờng khi cμi đặt chơng trỡnh thỡ mặc định l cμi vμo ỉ C (nếu bạn cμi vμo ỉ D, khi sư dơng lƯnh save, bạn chỉ cần thay đổi thμnh :D:\matlabR12\work\ten_file)
Ví dụ:
Khụi phục lại dữ liệu dựng lệnh sau:
load ('C:\matlabR12\work\ten_filộ) % lấy dữ liƯu %Tạo hμm Y
function Y=myfun(x)
Y(:,1)=200*sin(x(:))./(x(:); Y(:,2)=x(:).^2;