1. Trang chủ
  2. » Giáo án - Bài giảng

Tự học Matlab Simulink ( ez )

138 232 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 138
Dung lượng 2,16 MB

Nội dung

MATLAB là phần mềm cung cấp môi trường tính toán số và lập trình, do công ty MathWorks thiết kế. 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.

Pikachu – Vietdown.org − 1.1 Tỉng quan vỊ Matlab lμ ngôn ngữ lập trình thực hnh bậc cao đợc sử dụng để giải bi toán kỹ thuật.Matlab tích hợp đợc việc tính toán, thể kết quả, cho phÐp lËp tr×nh, giao diƯn lμm viƯc rÊt dƠ dμng cho ng−êi sư dơng D÷ liƯu cïng víi th− viện đợc lập trình sẵn cho phép ngời sử dụng có đợc ứng dụng sau Sử dụng hm có sẵn th viện, phép tính toán học thông thờng Cho phép lập trình tạo ứng dụng Cho phép mô mô hình thực tế Phân tích, khảo sát v hiển thị liệu Với phần mềm đồ hoạ cực mạnh Cho phép phát triển,giao tiếp với số phần mềm khác nh C++, Fortran Matlab l hệ thống tơng giao,các phần tử liệu l mảng( mảng ny không đòi hỏi kích thớc ) Chúng cho phép giải vấn đề liên quan đến lập trình máy tính,đặc biệt sư dơng c¸c phÐp tÝnh vỊ ma trËn hay vÐc tor v sử dụng ngôn ngữ C học Fortran lËp tr×nh råi thùc hiƯn øng dơng lËp tr×nh câu lệnh goị từ MATLAB MATLAB đợc viết tắt từ chữ matrix laboratory tức l th viện ma trận, từ phần mềm MATLAB đợc viết nh»m cung cÊp cho viƯc truy cËp vμo phÇn mỊm ma trận cáh dễ dng, phần mềm ma trận ny đợc phát triển công trình Linpack v Eispack Ngy MATLAB đợc phát triển Lapack v Artpack tạo nên nghệ thuật phần mềm cho ma trận Dữ liệu MATLAB thể dới dạng ma trận( mảng tổng quát), v có kiểu liệu đợc liệt kê sau , kiểu ny có lợi nhớ liệu đòi hỏi byte nhớ hơn, Kiểu đơn kiểu liệu ny không đợc sử dụng phép tính toán học, độ xác Kiểu double kiểu ny l kiểu thông dụng biến MATLAB • KiĨu Sparse • KiĨu int8, uint8, int16 Tr a n g • KiĨu char vÝ dơ ‘Hello’ • KiĨu cell • KiĨu Structure Trong MATLAB kiểu liệu double l kiểu mặc định sử dụng phép tính số học Các bạn tham khảo kiểu liệu khác ®Üa CD Help MATLAB 6.0 b ø MATLAB t¹o ®iỊu kiện thuận lợi cho: Các khoá học toán học Các kỹ s, nh nghiên cứu khoa học Dùng MATLAB để tính toán ,nghiên cứu tạo sản phẩm tốt sản xuất Công cụ ny đợc MATLAB cung cấp cho phép bạn ứng dụng kỹ thuật để phân tích, thiết kế , mô mô hình Ta tìm thấy toolbox mô trờng lm việc Mạng nơron Logic mờ Simulink Hệ thống giao diện MATLAB đợc chia thnh phần Môi trờng phát triển Đây l nơi đặt công cụ, phơng tiện giúp sử dơng c¸c lƯnh vμ c¸c file, ta cã thĨ liƯt kª mét sè nh− sau + Desktop + Command Window + Command History + Browsers for viewinghelp • Th− viƯn, c¸c hμm to¸n häc Bao gåm c¸c cÊu tróc nh− tÝnh tỉng, sin cosin atan, atan2 etc , c¸c phÐp tính đơn giản đến phép tính phức tạp nh tính ma trận nghich đảo, trị riêng, chuyển đổi furier ,laplace , symbolic library Ngôn ngữ MATLAB Đó l ngôn ngữ cao ma trận v mảng, với dòng lệnh, hm, cấu trúc liệu vo , lập trình hớng đối tợng Đồ ho¹ MATLAB Tr a n g Bao gåm câu lệnh thể đồ hạo môi trờng 2D v 3D, tạo hình ảnh chuyển động, cung cấp giao diện tơng tác ngời sử dụng v máy tính Giao tiếp với ngôn ngữ khác MATLAB cho phép tơng tác với ngôn ngữ khác nh C , Fortran 1.1.4 Lm quen với matlab Trớc tiên để khởi động MATLAB bạn kích đúp (hoặc đơn) v biểu tợng file MATLAB.exe ,trên mn hình xt hiƯn cưa sỉ sau.( Xem h×nh vÏ 1.1 ) Cửa sổ chứa công cụ( giao diện ngời v máy) cần thiết cho việc quản lý files, c¸c biÕn ,cưa sỉ lƯnh, cã thĨ coi desktop l panel gồm ô, vùng, quản lý v tác dụng cửa sổ nhỏ đợc quản lý bëi desktop Tr a n g μ 1.1.5 Lμm việc với cửa sổ MATLAB đợc quản lý bëi desktop a Cưa sỉ Command window μ μ μ − μ − function − ‘ − ‘ μ − >> A= pi/2 ; >> B= sin(A) B= − − % Chuong trinh M-file x= 0:pi/6:2*pi; y=sin(x); plot(x,y); − % − μ − >> ve_sin “ “ C¸c dòng m bạn nhập vo cửa sổ Command window ( dòng ny l dòng nhập biến ,hoặc l dòng lệnh thực hm no ) đợc giữ lại cửa sổ Command History ,vμ cưa sỉ nμy cho phÐp ta sư dơng l¹i lệnh cách kích Tr a n g đôi chuột lên lệnh biến, nh bạn muốn sử dụng lại biến c Cửa sổ Workspace: L cửa sổ thể tên biến bạn sử dụng với kích thơc vùng nhớ(số bytes), kiểu liệu(lớp) ,các biến đợc giải phóng sau lần tắt chơng trình.( ) Kích đôi chuột lên biến để xem liệu(hoặc thay đổi giá trị) Ngoi cho phép thay đổi giá tri , nh kích thớc biến cách kích đôi chuột lên biến Hoặc kích vo nút bên trái cạnh nút save Ví dụ chọn biến(giả thử l biến b) kích đúp(hoặc kích chuột vo nút cạnh nút save) ta đơc cửa sổ sau gọi l Array Editor: Tr a n g Tiêu đề l tên biến b , định dạng liệu ô có tên l: Numeric format, mặc định l dạng short, Kích th−íc size lμ by (tøc lμ mét hμng vμ cét) ta cã thĨ thay ®ỉi kÝch th−íc ny cách thay đổi số có ô kích thớc size + Dùng cửa sổ ny để lu biÕn ë d−íi lμ d÷ liƯu cđa biÕn b, ta thay đổi chúng cách thay đổi giá trị ô Nhập biến >>b=[1 ]; >>x=pi; Tất biến đợc lu Workspace thể kích thớc (Size), số Bytes v kiểu liệu(class) (8 bytes cho phần d÷ liƯu kiĨu double thĨ lμ 24 bytes dμnh cho b vμ bytes dμnh cho a) Lμ cửa sổ dùng để soạn thảo chơng trình ứng dụng, để thực thi chơng trình viết M-file cách gõ tên file chứa chơng trình cửa sổ Commandwindow Khi chơng trình viết M-file, th× t theo øng dơng thĨ, t theo ng−êi lập trình m chơng trình viết dới dạng sau +Dạng :Tức l chơng trình gồm tập hợp câu lệnh viết dới dạng liệt kê ,không có biến liệu vo v biến lấy giá trị +Dạng hμm function cã biÕn d÷ liƯu vμo vμ biÕn : Nơi lu giữ file chơng trình Sau xt hiƯn dÊu nh¾c >> cưa sỉ command window điều đồng nghĩa cho phép bạn nhập biến thực câu lệnh mong muốn Tr a n g − − − − μ • Tên ma trận(biến) phải bắt đầu chữ cái, vμ cã thĨ chøa ®Õn 19 ký lμ sè chữ Bên phải dấu l giá trị ma trận Dấu chấm phẩy(; )l để phân cách hng, giá trị hng đợc phân cách dấu phẩy(,) dấu cách( phÝm space) • KÕt thóc nhËp ma trËn th−êng cã dấu chấm phẩy không tuỳ theo bạn muốn thể kết hay không a Nhập biến, matrận, lệnh liệt kê trực tiếp Thông thờng Matlab sư dơng vÞ trÝ sau dÊu phÈy cho số thập phân có dấu phẩy chấm động, v sư dơng biÕn “ ans “ cho kÕt qu¶ cđa phép tính Ta đăng ký biến thể kết ny riêng Xét tập lệnh sau: Ví dụ trờng hợp không sử dụng biến lu kết quả, biến ans tự động đợc gán >> 8+9 ans = 17 NhËp biÕn r = 8/10 cưa sỉ CommandWindow nh− sau: >> r = 8/10 r=0.8000 Bạn sử dụng biến ny cho phÐp tÝnh tiÕp theo vÝ dô nh−: >> s=10*r s= VÝ dơ nhËp trùc tiÕp c¸c sè liƯu nh− sau >> a=[1 2;3 4] a = Matlab có hng trăm hm đợc định nghĩa sẵn vÝ dô nh− hμm tÝnh sin >> x=pi; %nhËp biÕn x >> sin(x) % nhËp lÖnh sin(x), Ên enter ®Ĩ thùc hiƯn lƯnh tÝnh sin(x) ans = 1.2246e-016 Tr a n g Trong MATLAB còng sư dơng c¸c phép toán thông thờng đợc liệt kê bảngsau Ký LÖnh Matlab ý nghÜa + * / \ ^ Céng a + b Trõ a - b Nh©n ab Chia phải a a/b= b Chia trái a b\a = b Mò a^b a+b a-b a*b a/b b/a a^2 Thø tự u tiên phép toán: Tất biểu thức toán học đợc thực từ trái qua phải, ta có bảng thứ tự u tiên nh sau: Thứ tự u tiên Các phép Dấu ngoặc biĨu thøc To¸n mò ^ , thùc thi từ trái qua phải Toán tử nhân, chia có mức u tiên,thực từ trái sang phải Céng , trõ VÝ dô1 : >> a=[1 2;3 4]; >> b=[5 6;7 8]; >> a+b^2 ans = 68 80 94 110 Ví dụ2 Giải phơng trình bậc hai, c¸c lƯnh nhËp cđa sỉ CommandWindow >>a= 1; >>b=-2; >>c=1; >>delta= b^2- 4*a*c; >>x1=(-b+ sqrt(delta) )/(4*a); >>x2=(-b- sqrt(delta) )/(4*a); Tr a n g − μ − μ + μ VÝ dô >>Number_apples=10;Number_Oranges=25,Number_bananas=34; >>Fruit_Purchased= Number_apples+ Number_Oranges+ Number_bananas Nh− trình by phần cửa sổ M-file, tập hợp lệnh MATLAB đợc soạn thảo cửa sổ M-file dới dạng Script file dạng hm function(có biến đầu vo v ra), v đợc ghi (lu)vo file liệu có phần mở rộng l m (Thông thờng chơng trình soạn thảo M-file thờng đợc lu theo đờng dẫn C:\matlab\ work\Tên_file ), muốn thực thi chơng trình soạn thảo ta gọi lệnh cửa sổ Commandwindow, tuỳ theo chơng trình viết dạng Script file hay function mμ cưa sỉ ta cã c¸ch gäi nh− sau: Đối với chơng trình viết dạng Script file >> tªn_file ; a=1; b=-2; c=1; delta=b^2-4*a*c; x1=(-b+sqrt(delta))/(2*a) x2=(-b-sqrt(delta))/(2*a) − Ví dụ giải phơng trình bậc hai tìm nghiệm x1 vμ x2 viÕt M-file d¹ng Scriptfile: Thùc thi chơng trình cửa sổ CommandWindow lệnh >>GPTB2 Đối với chơng trình viết dạng function ,có tham số đầu vo v ra,ta phải truyền đủ tham số cần thiết Ví dụ : Giải phơng trình bậc hai với ba tham số đầu vo l hệ số a , b, c v hai biến đầu l nghiệm phơng trình x1 v x2 (Xem cách viÕt hμm ë môc sau) function [x1, x2] =GPTB2(a,b,c) x1=(-b+sqrt(delta))/(2*a); %Tinh nghiem x1 x2=(-bsqrt(delta))/(2*a); Tr a n g Thùc bi toán Command window nh sau: >>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) ( [x1,x2]=GPTB2(1,-2,1) ) Lu ý viết chơng trình M-file, bạn muốn ghi thích ta dùng ký tự % đặt trớc dòng thích nh− sau % dßng chó thÝch -VÝ dô %ViÕt M-file(d¹ng Script file) x=0:0.1:10 ; %T¹o vector x y=cos(x); plot(x,y); % Vẽ đồ thị hm cosin %lu vo file cã tªn lμ dai1.m Thùc thi hμm trªn cưa sỉ commandwindow lệnh >> dai1 Viết chơng trình M-file đợc dùng l chủ yếu ,đặc biệt chơng trình di , phức tạp bạn nên viết M-file Đối với bạn học lập trình Pascal, bạn muốn nhập giá trị thực thi chơng trình bạn dùng cặp lệnh: writeln( 'Nhập giá trị a='); readln(a); Nhng MATLAB bạn thấy đơn giản dùng lệnh l : a=input(‘Nhap gia tri cua a=’); : Trong cưa sỉ Commandwindow ta gâ lÖnh >> a =input(‘nhap a=’); Tr a n g C= [ -b2/(-a1*b2+b1*a2), a2/(-a1*b2+b1*a2)] [ b1/(-a1*b2+b1*a2), -a1/(-a1*b2+b1*a2)] >> KQ=C*B KQ = [ -b2/(-a1*b2+b1*a2)*c1+a2/(-a1*b2+b1*a2)*c2] [ b1/(-a1*b2+b1*a2)*c1-a1/(-a1*b2+b1*a2)*c2] − 6.3.5 ( VÝ dô: sin(x)+y^2+log(z)=7 3*x+2^y+z^3=4 x+y+z=2 >>[x,y,z]=solve('sin(x)+y^2+log(z)=7','3*x+2^y+z^3=4','x+y+z=2') x= -2.3495756224572032187410536400368 y= 2.6835269194785219427270239079010 z= 1.666048702978681276014029732135 VÝ dô: x^2 + x*y + y = x^2 - 4*x + = >>[x,y] = solve('x^2 + x*y + y = 3','x^2 - 4*x + = 0') x= [ 1] [ 3] y= [ 1] [ -3/2] − >>[a,u] = solve('a*u^2 + v^2= 0','u - v = 1','a,u') a= -v^2/(v^2+2*v+1) u= v+1 Tr a n g >>[a,v] = solve('a*u^2 + v^2','u - v = 1','a,v') a= -(u^2-2*u+1)/u^2 v= u-1 − − ( >>y = dsolve('(D2y) =1','y(0) = 1') y= 1/2*t^2+C1*t+1 >>[x,y]=dsolve('Dx = y', 'Dy = -x') x= cos(t)*C1+sin(t)*C2 y = -sin(t)*C1+cos(t)*C2 Ví dụ: Cho hệ phờng trình vi phân Chơng trình mô tả phơng trình vi phân dạng M-file: function dy = rigid(t,y) dy = zeros(3,1); dy(1) = y(2) * y(3); dy(2) = -y(1) * y(3); dy(3) = -0.51 * y(1) * y(2); Thời gian giải phơng trình vi phân Tspan =[0 12], vector điều kiện đầu [0 1] >>options = odeset('RelTol',1e-4,'AbsTol',[1e-4 1e-4 1e5]); >>[t,y] = ode45('rigid',[0 12],[0 1],options); >>plot(t,y(:,1),'-',t,y(:,2),'-.',t,y(:,3),'.') Tr a n g 1.5 0.5 -0.5 -1 -1.5 10 12 μ hμ 6.4 Symbolics Matlab lμ th− viÖn phép tính toán kiểu ký tự đợc đa vo môi trờng tính học Matlab Ta cần ý r»ng, viÕt mét lÖnh hay mét hμm Matlab phải viết chữ thờng diff(S): Đạo hm biểu thức symbolic S với biến đạo hm tự diff(S,v) hay diff(S,sym(v)): Đạo hm biểu thức symbolic S với biến lấy đạo hm l biến symbolic v diff(S,n) : Đạo hm cấp n biểu thức S, n l số nguyên dơng Ví dụ: >>syms x t >> y = sin(x^2); >>z = diff(y); z = 2*cos(x^2)*x pretty(z)% hiÓn thị dạng quen thuộc 2.cos2x.x >>y = diff(t^6,6) % đạo hμm bËc cña hμm t6 Tr a n g Y = 720 VÝ dô: >>syms u v >>y = u^2*v - u*v^3; >> y2u = diff(y,u,2) %dao ham cap theo u >> y3u = diff(y,v,3) %dao ham cap theo v y2u = 2*v y3u = -6*u int(S): Tích phân không xác định biển thức symbolic S với biến tự mặc định Muốn biết biến mặc định ta dùng lệnh fìndsym int(S,v): Tích phân không xác định biểu thức symbolic S với biến tích phân v int(S,a,b): Tích phân không xác định biĨu thøc symbolic S víi biÕn vμ cËn lấy tích phân từ [a,b] int(S,v,a,b): Tích phân không xác định biểu thức symbolic S với biến tích phân v vμ cËn lÊy tÝch ph©n tõ [a,b] Vidơ: >>syms x t z alpha >>int(-2*x/(1+x^2)^2) ans = 1/(1+x^2) >>int(x/(1+z^2),z) ans = x*atan(z) >>int(x*log(1+x),0,1) ans = 1/4 >>int(-2*x/(1+x^2)^2) ans = 1/(1+x^2) >> int([exp(t),exp(alpha*t)]) ans = [ exp(t), 1/alpha*exp(alpha*t)] VÝdô: TÝnh tÝch ph©n I = ∫ ∞ e −( sx ) dx −∞ >>Syms x s real Tr a n g >>f = exp(-(s*x)^2); >>I = int(f,x,-inf,inf)% inf lμ v« cïng lín I= Signum(s)/s*pi^(1/2) Hμm signum chÝnh lμ hμm sign (hμm dÊu), nghÜa lμ sign(s) cho ta: sign(s) = s>0; sign(s) = s =0; sign(s) = -1 s>syms x a t h >>limit(sin(x)/x) ans = >>limit(1/x,x,0,’right’) ans = inf >>limit(1/x,x,0,’left’) ans = -inf >>limit((sin(x+h)-sin(x))/h,h,0) ans = cos(x) >>v = [(1+a/x)^x,exp(-x)]; >>limit(v,x,inf,’left’) ans = [exp(a),0] • μ symsum(S): Tỉng cđa biĨu thức symbolic theo biến symbolic k , k đợc xác ®Þnh b»ng lƯnh findsym tõ → k -1 symsum(S,v): Tỉng cđa biĨu thøc symbolic S theo biÕn symbolic v,v đợc xác định từ k - Tr a n g symsum(S,a,b), symsum(S,v,a,b): Tỉng cđa biĨu thøc symbolic S theo symbolic v, v đợc xác định từ v = s ®Õn v = b VÝ dơ: >>syms k n x >>symsum(k^2) ans = 1/3*k^3-1/2*k^2+1/6*k >>symsum(k) ans = 1/2*k^2-1/2*k >>symsum(sin(k*pi)/k,0,n) ans = -1/2*sin(k*(n+1))/k+1/2*sin(k)/k/(cos(k)-1)*cos(k*(n+1))1/2*sin(k)/k/(cos(k)-1) >>symsum(k^2,0,10) ans = 385 >>symsum(x^k/sym(‘k!’), k, 0,inf) ans = exp(x) Vi dơ: Cho tỉng cđa d·y S1 = + 1 + + … 2 S2 = + x + x2 +… >>syms x k >>s1 = symsum(1/k^2,1,inf) %inf l vô s1 = 1/6*pi^2 >>s2 = symsum(x^k,k,0,inf) finverse(f): Tìm hm ngợc f f l hm symbolic với biến x finverse(f,u): Tìm hm ngợc cđa f f lμ hμm symbolic víi mét biÕn u VÝ dô: >>syms u v x >>finverse(1/tan(x)) ans = atan(1/x) >>finverse(exp(u-2*v),u) ans = 2*v+log(u) Tr a n g s2 = -1/(x-1) • taylor(f) taylor(f,n,v): Cho ta xÊp xØ ®a thøc theo Maclaurin bËc (n-1) cđa biĨu thøc, hμm khai triĨn symbolic f vμ v lμ biÕn ®éc lËp biĨu thøc v cã thĨ lμ mét x©u (string) hay lμ biÕn symbolic taylor(f,n,v,a): Khai triĨn Taylor cđa biĨu thức hay hm symbolic f quanh điểm a Đối số l giá trị số, hm symbolic hay xâuNếu không cho gía trị n Matlab n = Vi dơ: Khai triĨn Taylor cđa hμm f = exsin(x) quanh ®iĨm x0 = (NÕu x0 = ta cã khai triÓn Maclaurin) >>syms x >> f = exp(x*sin(x)); >>t = taylor(f,4,2)% khai triÓn số hạng khác o v xung quanh điểm x0 = Kết quả: exp(2*sin(2))+exp(2*sin(2))*(2*cos(2)+sin(2))*(x-2)+exp(2*sin(2))*(sin(2)+cos(2)+2*cos(2)^2+2*cos(2)*sin(2)+1/2*sin(2)^2)*(x-2)^2+exp(2*sin(2))*(1/3*cos(2)-1/2*sin(2)-cos(2)*sin(2)+2*cos(2)^2sin(2)^2+4/3*cos(2)^3+2*cos(2)^2*sin(2)+cos(2)*sin(2)^2+1/6*sin(2)^3)*(x-2)^3 Bây ta cã thĨ vÏ hμm ®· cho vμ hμm ®· khai triển chuỗi Taylor quanh điểm x0 = v cho nhËn xÐt >>syms x >> f = exp(x*sin(x)); >>t = taylor(f,10,2); >>xd= 1:0.05:3; >>yd = subs(f,x,xd);% thay thÕ biÔn x b»ng xd >>ezplot(t,[1,3])% vÏ hμm symbolic >> hold on >>plot(xd,yd,'r-') 6.4.2 collect(S): S l đa thức, gom số hạng chứa biến x collect(S,v): S l đa thức, gom số hạng chứa biến v Tr a n g 1 VÝ dô: >>syms x y; >>R1 = collect((exp(x)+x)*(x+2)) >>R2 = collect((x+y)*(x^2+y^2+1), y) >>R3 = collect([(x+1)*(y+1),x+y]) KÕt qu¶: R1 = x^2+(exp(x)+2)*x+2*exp(x) R2 = y^3+x*y^2+(x^2+1)*y+x*(x^2+1) R3 = [(y+1)*x+y+1, x+y] • expand: Khai triĨn biĨu thøc symbolic S VÝ dô: >>syms x y a b c t >>expand((x-2)*(x-4)) ans = x^2-6*x+8 >>expand(cos(x+y)) ans = cos(x)*cos(y)-sin(x)*sin(y) >>expand(exp((a+b)^2)) ans = exp(a^2)*exp(a*b)^2*exp(b^2) >>expand(log(a*b/sqrt(c))) ans = log(a)+log(b)-1/2*log(c) >>expand([sin(2*t), cos(2*t)]) ans = [2*sin(t)*cos(t), 2*cos(t)^2-1] Factor(X): Phân tích biểu thức mảng symbolic X thμnh thõa sè VÝ dô: >>syms x y a b >>factor(x^3-y^3) (x-y)*(x^2+x*y+y^2) >>factor([a^2-b^2, a^3+b^3]) [(a-b)*(a+b), (a+b)*(a^2-a*b+b^2)] >>factor(sym('12345678901234567890')) Tr a n g (2)*(3)^2*(5)*(101)*(3803)*(3607)*(27961)*(3541) • R = horner(p): VÝ dô: >>syms x y >>horner(x^3-6*x^2+11*x-6) ans = -6+(11+(-6+x)*x)*x >>horner([x^2+x;y^3-2*y]) ans = [ (1+x)*x] [(-2+y^2)*y] • μ [n.d] = numden(A): lÊy sè cđa A lμ n, mÉu sè cđa A lμ d VÝ dô: >>syms x y a b >>A= (4-x)/5; >>[n,d] = numden(A) n= d= 4-x >>[n,d] = numden(x/y + y/x) n = x^2+y^2 d = y*x >>A = [a, 1/b] >>[n,d] = numden(A) n = [a, 1] d = [1, b] • R = simplify(S) R = simple(S) [r, how] = simple(S) VÝ dô: >>syms x y a b c >>simplify(sin(x)^2 + cos(x)^2) Tr a n g ans = >>simplify(exp(c*log(sqrt(a+b)))) ans = (a+b)^(1/2*c) >>S = [(x^2+5*x+6)/(x+2),sqrt(16)]; >>R = simplify(S) R = [x+3,4] 6.4.3 F = fourier(f): Biến đổi fourier hm vô hớng f với biến độc lập f v cho ta hm qua phép biến đổi nyl w F = fourier(f,v): F lμ hμm cña biÕn v thay biến w F = fourier(f,u,v): f lμ hμm cña u vμ F lμ hμm cña v chúng thay biến x v w VÝ dô: >>syms x w u >>f = exp(-x^2) >>fourier(f) ans = pi^(1/2)*exp(-1/4*w^2) >>g = exp(-abs(w)) >>fourier(g) ans = 2/(1+t^2) >>f= x*exp(-abs(x)) >>fourier(f,u) ans = -4*i/(1+u^2)^2*u >>syms x v u real >>f= exp(-x^2*abs(v))*sin(v)/v >>fourier(f,v,u) ans = -atan((u-1)/x^2)+atan((u+1)/x^2) • − f = ifourier(F): Biến đổi ngợc hm mục tiêu vô hớng F với biến độc lập w phép biến đổi ngợc ny l hm x f = ifourier(F,u): f lμ hμm cđabiÕn u thay thÕ biÕn mỈc nhiªn x f = ifourier(F,v,u): F lμ hμm cđa v vμ f lμ hμm cđa u chóng thay thÕ c¸c biến w v x tơng ứng Tr a n g VÝ dô: >>syms a w x t v real >>f = exp(-w^2/(4*a^2)) >>F = ifourier(f); >>F = simple(F) F = a*exp(-x^2*a^2)/pi^(1/2) >>g=exp(-abs(x)) >>ifourier(g) ans = 1/(1+t^2)/pi >>f=2*exp(-abs(w))-1 >>simplify(ifourier(f,t)) ans = (2-pi*Dirac(t)-pi*Dirac(t)*t^2)/(pi+pi*t^2) >>f=exp(-w^2*abs(v))*sin(v)/v; >>ifourier(f,v,t) ans = 1/2*(atan((t+1)/w^2) - atan((-1+t)/w^2))/pi L = laplace(F): Biến đổi Laplace hm F với biến độc lập t cho ta mét hμm cña s L = laplace(F,t): L l hm t thay biến s L = laplace(F,w,z): L lμ hμm cña z vμ F lμ hμm cđa w, nã thay thÕ c¸c biÕn symbolic s v t tơng ứng Ví dụ: >>syms t v x a >>f = t^4 >>laplace(f) ans = 24/s^5 >>g=1/sqrt(s) >>laplace(g) ans = 1/s^(1/2)*pi^(1/2) >>f=exp(-a*t) >>laplace(f,x) ans= 1/(x + a) Tr a n g >>f=1- cos(t*v) >>laplace(f,x) ans = 1/x-x/(x^2+v^2) Biến đổi laplace ng-ợc F = ilaplace(L): Biến đổi Laplace ngợc hm symbolic L với biến độc lập s Nó cho ta mét hμm cña t F = ilaplace(L,y): F lμ hm y thay biến t F = ilaplace(L,y,x): F lμ hμm cña x vμ L lμ hm y, thay biến symbolic mặc nhiªn t vμ s VÝ dơ : >>syms s a t >>f=1/s^2 >>ilaplace(f) ans = t >>g=1/(t-a)^2 >>ilaplace(g) ans = x*exp(a*x) >>syms u a x >>f=1/(u^2-a^2) >>ilaplace(f,x) ans = 1/(-a^2)^(1/2)*sin((-a^2)^(1/2)*x) >>syms s v x >>f=s^3*v/(s^2+v^2) >>ilaplace(f,v,x) ans = s^3*cos(s*x) 6.4.4 áp dụng đồ hoạ: ezplot( vẽ đ-ờng) ezplot(f): Vẽ hàm f = f(x) với miền -2 syms x >>ezplot(erf(x)) >>grid • − ezplot3(x,y,z): VÏ c¸c hμm x = x(t), y = y(t), v z = z(t) với miền mặc định lt < t < ezplot3(x,y,z,[tmin,tmax]): VÏ c¸c hμm x = x(t), y = y(t), vμ z = z(t) khoảng giá trị tmin < t < tmax Ví dô: >>syms t; ezplot3(sin(t), cos(t), t,[0,6*pi]) Tr a n g • Cho hμm f(x) = víi x [a,b] + cos( x) Vẽ đồ thị v đạo hm bậc 1, bậc miền xác định symbolic Matlab l x Hãy vo cửa sổ soạn thảo v cửa sổ ny ta viết chơng trình nh sau: syms x f1 = 1/(5+4*cos(x)); f2 = diff(f1); % dao ham bac cua f1 f3 = diff(f2); % dao ham bac cua f1 subplot(2,2,1) ezplot(f1) subplot(2,2,2) ezplot(f2) subplot(2,2,3) ezplot(f3) Tìm điểm x lm cho đạo hm bËc cđa hμm f(x) = b»ng kh«ng vμ vÏ đồ thị Hãy vo cửa sổ soạn thảo v cửa sổ ny ta viết chơng trình nh sau: syms x f = 1/(5+4*cos(x)); f3 = diff(f,3); % dao ham bac cua f pretty(f3); %dua ve dang quyen toan hoc f3 = simplify(f3); pretty(f3); z = solve(f3); %Giai phuong trinh f3 = format; %lay chu so so le zr = double(z); %chuyen ma tran, bieu thuc symbolic ve dang so ezplot(f3) %ve ham f3 hold on; %luu thi da ve Tr a n g + cos( x) plot(zr,0*zr,'ro') % ve diem "o" mau cho cac diem co gia tri thuc de f3 = plot([-2*pi,2*pi],[0,0],'g-.') Tr a n g ... f1(x 1) ,f2(x 1), f3(x 1) f1(x 2) ,f2(x 2), f3(x 2) μ %T¹o hμm Y function Y=myfun(x) Y(:, 1)= 200*sin(x( :)) ./(x( :); Y(:, 2)= x( :). ^2; − μ Thực thi chơng trình Commandwindow >>fplot( myfun,[-20 20] ); (hc... đầu l nghiệm phơng trình x1 v x2 (Xem c¸ch viÕt hμm ë mơc sau) function [x1, x2] =GPTB2(a,b,c) x1 =(- b+sqrt(delta )) /(2 *a); %Tinh nghiem x1 x2 =(- bsqrt(delta )) /(2 *a); Tr a n g Thực bi toán Command... 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] ); Tr a n g %vẽ ba đồ thị cửa sổ víi x=[-2*pi 2*pi] ; • Dïng hμm inline vÝ dơ : f=inline(x+ 2);

Ngày đăng: 04/10/2018, 23:03

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w