




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第 1 節 Matlab 基本知識 一、 Matlab 的主要功能Matlab是一種功能非常強大的工程語言,誕生于20世紀70年代,1984年正式推向市場。2002年8月,Matlab6.5開始發布。是進行科學研究和產品開發必不可少的工具。l 數值和符號計算矩陣(數組)的四則運算(MatrixLaboratory)、數值差分、導數、積分、求解微分方程、微分方程的優化等l 數字圖像、數字信號處理l 工程和科學繪圖l 控制系統設計l 財務工程l 建模、仿真功能二、 Matlab 的界面1.命令窗口(Command Window):Matlab各種操作命令都是由命令窗口開始,用戶可以在命令窗口中輸入
2、Matlab命令,實現其相應的功能。此命令窗口主要包括文本的編輯區域和菜單欄(如:四則運算;“;”禁止顯示變量的值;遍歷以前的命令)。在命令窗口空白區域單擊鼠標右鍵,打開快捷菜單,各項命令功能如下:Evaluate Selection :打開所選文本對應的表達式的值。Open Selection :打開文本所對應的MatLab文件。Cut :剪切編輯命令。Paste :粘貼編輯命令。2. M-文件編輯/調試(Editor/Debugger)窗口Matlab Editor/Debugger窗口是一個集編輯與調試兩種功能于一體的工具環境。M-文件(函數文件)l 什么是M-文件:它是一種和Dos環境
3、中的批處理文件相似的腳本文件,對于簡單問題,直接輸入命令即可,但對于復雜的問題和需要反復使用的則需做成M文件(Script File)。l 創建M-文件的方法:Matlab命令窗的File/New/M-file。在Matlab命令窗口運行edit。l M文件的擴展名: *.ml 執行M-文件:F5l M文件的調試 選擇Debug菜單,其各項命令功能如下: Step :逐步執行程序。Step in :進入子程序中逐步執行調試程序。Step out :跳出子程序中逐步執行調試程序。run:執行M-文件。Go Until Cursor :執行到光標所在處。Exit Debug Mode :跳出調試狀
4、態。l 函數文件的創建要求:文件名與函數名必須相同,如sin(x)必有sin.m函數文件存在。要求實參和形參位置一一對應。形參在工作空間中不會存在。可以編寫遞歸函數,可以嵌套其他函數。可以用return命令返回,也可以執行到終點返回3.工作空間(Workspace)窗口:顯示目前保存在內存中的Matlab的數學結構、字節數、變量名以及類型窗口。保存變量:File菜單Save Workspace as 命令行:save 文件名裝入變量:File菜單Import Data 命令行:Load 文件名4.現在目錄窗口(Current Directory) 5.命令歷史窗口(Command Histor
5、y ):提供先前使用過的函數,可以復制或者再次執行這些命令。Matlab幫助系統 Matlab在命令窗口提供了可以獲得幫助的命令,用戶可以很方便的獲得幫助信息。例如:在窗口中輸入“help fft”就可以獲得函數“fft”的信息。常用的幫助信息有help ,demo ,doc ,who ,whos ,what ,which ,lookfor ,helpbrowser ,helpdesk ,exit ,web 等。三 、關于變量變量命名規則:l 變量名是不包含空格的單個詞l 變量名區分大小寫l 變量名必須以字母開頭的字母、數字、下劃線的組合,最多19個字符。l Matlab提供的標準函數名均以小
6、寫字母開頭特殊變量名:l ans 缺省變量名l pi 圓周率l i,j 虛數單位l eps 無窮小l inf ,Inf 無窮大 l realmax 最大正實數l realmin 最小正實數清除變量的值l clear l clear 變量名1 變量名2顯示駐留內存的變量名l whol whos第 2 節 Matlab編程一、 矩陣(數組)的輸入1、直接輸入直接按行方式輸入每個元素:同一行中的元素用逗號(,)或者用空格符來分隔,且空格個數不限;不同的行用分號(;)分隔。所有元素處于一方括號( )內;多維矩陣用多重方括弧。可建立復數矩陣如: Null_M = %生成一個空矩陣可建立復數矩陣R=1,2
7、,3;4,5,6I=7,8,9;10,11,12Z=R+I*j2. 由M文件方式建立,今后使用鍵入M文件名即可建立相應矩陣2、利用函數輸入 “:”表達式,產生等差行向量 start:step:end 或start:end(step1)如:t1:20產生等距輸入: linspace(a,b,n) 將a,b區間分成n1個等距小區間產生隨機排列: randperm(n) 產生1n之間整數的隨機排列3、特殊矩陣輸入zeros(n) 生成n×n全零陣, zeros(a,b) 元素全為0的a×b維矩陣, 以下各函數同理具有該類型。zeros(size(A) 生成與矩陣A相同大小的全零陣
8、, ones(a,b) 元素全為1的a×b維矩陣eye(a,b) 對角線上的元素為1的a×b維矩陣rand(a,b) 產生a×b維均勻分布的隨機矩陣,其元素在(0,1)內rand 無變量輸入時只產生一個隨機數randn(a,b)產生a×b維正態分布的隨機矩陣4.矩陣的轉置和逆矩陣n X的轉置:X ( 圖像順時針旋轉90°,并水平鏡像)如:a=imread('D:2-1.bmp');b=a'subplot(1,2,1),subimage(a),subplot(1,2,2),subimage(b)n X的逆矩陣 inv(X)
9、二、 矩陣元素的訪問及其大小的確定訪問第n個元素: X(n)(n>=1)訪問多個元素: X (n1,n2,n3) 或 X(1:10)確定元素的個數: numel(X)確定矩陣的大小: m,n,l=size(X)三、 矩陣的算數運算l 數與矩陣的運算:m等價于m.mA : m與A中各元素相加mA : m與A中各元素相減m×A : m與A中各元素相乘m. /A : m除以A中各元素 (沒有m/A)m A : A中各元素除以ml 矩陣與矩陣的運算AB: A、B對應元素相加AB: A、B對應元素相減A×B: A、B矩陣按線性代數中矩陣乘法運算進行相乘(注意維數匹配)A.*B:
10、 A、B對應元素相乘(注意維數相同)A / B: A除以B矩陣 (aA×B1)(注意維數匹配)A./B: A除以B中各元素A B: B除以A矩陣 (aA1×B)(注意維數匹配)A.B: B除以A中各元素Am: 相當于矩陣A×矩陣A×矩陣A.(m為小數即是矩陣的開方運算)(注意維數匹配)A.m:矩陣A中各元素的m次方A.B:矩陣A中各元素的進行B中對應元素次方(注意維數相同)四、 關系運算<、<=、>、>=、= =、 = 六種關系運算符。關系成立結果為1,否則為0。五、 邏輯運算設矩陣A和B都是m×n矩陣或其中之一為標量,
11、在MATLAB中定義了如下的邏輯運算:&、|、xor(真為1,假為0)(1)矩陣的與運算格式 A&B或and(A, B)說明 A與B對應元素進行與運算,若兩個數均非0,則結果元素的值為1,否則為0。(2)或運算格式 A|B或or(A, B) 說明 A與B對應元素進行或運算,若兩個數均為0,則結果元素的值為0,否則為1。(3)非運算格式 A或not (A)說明 若A的元素為0,則結果元素為1,否則為0。(4)異或運算格式 xor (A,B)說明 A與B對應元素進行異或運算,若相應的兩個數中一個為0,一個非0,則結果為0,否則為1。六、 集合運算1兩個集合的交集 intersect
12、2檢測集合中的元素 ismember3兩集合的差 setdiff4兩個集合交集的非(異或)函數 setxor5兩集合的并集 union6取集合的單值元素 unique七、 MatLab的控制流由各種語句構成語句后面加“;”號,不顯示運算結果開頭表示是注釋語句賦值語句變量表達式表達式 (相當于將值付給ans變量)演示(三)for循環結構【例】一個簡單的for循環示例。for i=1:10; %i依次取1,2,10,.x(i)=i; %對每個i值,重復執行由該指令構成的循環體,end; x %要求顯示運行后數組x的值。 x = 1 2 3 4 5 6 7 8 9 10 while循環結構【例】Fi
13、bonacci數組的元素滿足Fibonacci 規則: ,;且。現要求計算出該數組中第一個大于10000的元素。a(1)=1;a(2)=1;i=2;while a(i)<=10000 a(i+1)=a(i-1)+a(i); %當現有的元素仍小于10000時,求解下一個元素。 i=i+1;end;i,a(i), i = 21 ans = 10946 if-else-end分支結構【例1】一個簡單的分支結構。cost=10;number=12;if number>8 sums=number*0.95*cost;end,sums sums = 114.0000 【例2】用for循環指令來
14、尋求Fibonacc數組中第一個大于10000的元素。n=100;a=ones(1,n);for i=3:n a(i)=a(i-1)+a(i-2); if a(i)>=10000 a(i), break; %跳出所在的一級循環。 end;end,i ans = 10946i =21 switch-case結構【例】學生的成績管理,演示switch結構的應用。clear; %劃分區域:滿分(100),優秀(90-99),良好(80-89),及格(60-79),不及格(<60)。for i=1:10;ai=89+i;bi=79+i;ci=69+i;di=59+i;end;c=d,c;N
15、ame='Jack','Marry','Peter','Rose','Tom'%元胞數組Mark=72,83,56,94,100;Rank=cell(1,5);%創建一個含5個元素的構架數組S,它有三個域。S=struct('Name',Name,'Marks',Mark,'Rank',Rank);%根據學生的分數,求出相應的等級。for i=1:5 switch S(i).Marks case 100 %得分為100時 S(i).Rank='滿分'%
16、列為'滿分'等級 case a %得分在90和99之間 S(i).Rank=' 優秀' %列為'優秀'等級 case b %得分在80和89之間 S(i).Rank=' 良好' %列為'良好'等級 case c %得分在60和79之間 S(i).Rank=' 及格' %列為'及格'等級 otherwise %得分低于60 S(i).Rank='不及格' %列為'不及格'等級 endend%將學生姓名,得分,登記等信息打印出來。disp('學生姓
17、名 ',' 得分 ',' 等級');disp(' ')for i=1:5; disp(S(i).Name,blanks(6),num2str(S(i).Marks),blanks(6),S(i).Rank);end; 學生姓名 得分 等級 Jack 72 及格Marry 83 良好Peter 56 不及格 Rose 94 優秀 Tom 100 滿分 try-catch結構【例】try-catch結構應用實例。clear,N=4;A=magic(3);%設置3行3列矩陣A。try A_N=A(N,:),%取A的第N行元素catch A_en
18、d=A(end,:),%如果取A(N,:)出錯,則改取A的最后一行。endlasterr%顯示出錯原因 A_end = 4 9 2ans = Index exceeds matrix dimensions. 第二章 符號數學工具(Symbolic Math Toolbox)第 1 節 符號表達式l 符號表達式是代表數字、函數、算子和變量的MATLAB字符串,或字符串數組。不要求變量有預先確定的值,符號方程式是含有等號的符號表達式。如表2.1所列。表2.1符號表達式在MATLAB中的表示 ' 1/(2*xn) ' y= ' 1/sqrt(2*x) ' '
19、cos(x2)-sin(2*x) ' M=sym( ' a,b;c,d ' )f=int( ' x3/sqrt(1-x) ' , ' a ' , ' b ' )注意:加單引號表示是一個符號表達式而不是數字表達式。l 符號函數:讓用戶操作上述符號表達式的方法和函數,比如:>> diff( 'cos(x)' ) % differentiate cos(x) with respect to xans=-sin(x)>> M=sym( 'a,b;c,d ') % create
20、 a symbolic matrix MM=a,bc,d注意:1.建立符號數組時,最好用上函數sym2.許多符號函數可以自動將字符轉變為符號表達式。例如diff cos(x) 也可以,>> diff x2+3*x+5 % the argument is equivalent to ' x2+3*x+5 ' l 符號變量是符號表達式中的變量,如:x+3*y+z中的x,y,z。l 獨立變量是當符號表達式中含有多于一個的變量時,只有一個變量是獨立變量。缺省的獨立變量是x,如果沒有x,則選擇最靠近x的作為獨立變量。如表達式 ' 1/(5+cos(x) ' 中
21、是 ' x ' ;在 ' 3*y+z ' 中是 ' y ' ;在 ' a+sin(t) ' 是 ' t ' ,而表達式 ' sin(pi/4)-cos(3/5) ' 是一個符號常數無符號變量。可利用函數symvar詢問MATLAB在符號表達式中哪一個變量它認為是獨立變量(系統找不到一個獨立變量,便假定無獨立變量并返回x)。>> symvar( ' a*x+y*) % find the default symbolic variableans=x>> symvar( &
22、#39; a*t+s/(u+3) ' ) % u is the closest to ' x ' ans=u>> symvar( ' sin(omega) ' ) % ' omega ' is not a singlee character。ans=x>> symvar( ' 3*i+4*j ' ) % i and j are equel to sqrt(-1)ans=x指定獨立變量:>> diff( ' xn ' ) % differentiate with respe
23、ct to the default variable ' x ' ans=xn*n/x>> diff( ' xn ' , ' n ' ) % differentiate xn with respect to ' n ' ans=xn*log(x)>> diff( ' sin(omega) ' ) % differentiate using the default variables (x)ans=0>> diff( ' sin(omega) ' , ' o
24、mega ' ) % specify the independent variableans=cos(omega)第 2 節 符號表達式運算(目的:更方便的構造符號表達式)標準代數運算:symadd、symsub、symlnul、symdiv:分別為加、減、乘、除兩個表達式sympow:將一個表達式上升為另一個表達式的冪次例如:給定兩個函數>> f= ' 2*x2+3*x-5 ' % define the symbolic expressionf=2*x2+3*x-5>> g= ' x2-x+7 ' g=x2-x+7>>
25、; symadd(f,g) % find an expression for f+g ans=3*x2+2*x+2>> symsub(f,g) % find an expression for f-gans=x2+4*x-12>> symmul(f,g) % find an expression for f*gans=(2*x2+3*x-5)*(x2-x+7)>> symdiv(f,g) % find an expression for f/gans=(2*x2+3*x-5)/(x2-x+7)>> sympow(f,'3*x')
26、% find an expression for ans = (2*x2+3*x-5)(3*x)聯接運算:symop:取由逗號隔開的、多至16個參量。各個參量可為符號表達式、數值或算子(' + '、' - '、'*'、' / '、' '、' ( '或' ) '),然后symop可將參量聯接起來,返回最后所得的表達式.>> f= ' cos(x) ' % create an expressionf=cos(x)>> g= ' sin(2*
27、x) ' % create another expressiong=sin(2*x)>> symop(f,'/ ,g,'+',3) % combine themans=cos(x)/sin(2*x)+3高級運算:compose:把f(x)和g(x)復合成f(g(x);finverse: 求函數的逆函數;symsum:求表達式的序列和。l compose給定表達式>> syms x y u v f = 1/(1 + x2); g = sin(y); h = 1/(1+u2); k= sin(v);% create the four expr
28、ession>> compose(f,g) % find an expression for f(g(x)ans=1/(1+sin(y)2)>> compose(g,f) % find an expression for g(f(x)ans=sin(1/(1+x2)用于含有不同獨立變量的函數表達式:>> compose(h,k,'u','v') % given h(u),k(v),find(k(v) compose(h,k) % 結果一樣ans=1/(1+sin(v)2)l finverse表達式譬如f(x)的函數逆g(x),
29、滿足g(f(x)=x。例如,的函數逆是ln(x),因為ln()=x。sin(x)的函數逆是arcsin(x),函數的函數逆是arcsin。函數finverse返回表達式的函數逆。如果解不是唯一就給出警告。>> syms x a b c d z>> finverse(1/x) % the inverse of 1/x is 1/x since ' 1/(1/x)=x ' ans=1/x>> finverse(x2 ) % g(x2)=x has more than one solutionWarning: finverse(x2) is not
30、 uniqueans=x(1/2)>> finverse(a*x+b ) % find the solution to ' g(f(x)=x ' ans=-(b-x)/a>> finverse( a*b+c*d-a*z ,' a ' ) % find the solution to ' g(f(a)=a ' ans=-(c*d-a)/(b-z)l symsum求表達式的序列和有四種形式:symsum(f)返回;symsum(f,' s ' )返回,symsun(f,a,b)返回;symsun(f, '
31、; s ' ,a,b)返回。1. ,它應返回: 。>> syms n x 一定要定義符號變量,即使是x>> symsum(x2)ans=1/3*x3-1/2* x2+1/6*x2. ,它應返回。>> symsum(2*n-1)2,1,n)ans=11/3*n+8/3-4*(n+1)2+4/3*(n+1)33.,返回應是。>> syms n>> symsum( 1/(2*n-1)2,1,inf)ans=1/8*pi2變量替換:subs 將某個符號變量用另一個符號變量來表示。格式:subs(f,old,new)如:>>
32、 f= ' a*x2+b*x+c ' % create a function f(x)f=a*x2+b*x+c>> subs(f,'x','s') % substitute ' s ' for ' x ' in the expression f ans=a*s2+b*s+c>> subs(f,'a','alpha') % substitute ' alpha ' for ' a ' in f ans=alpha*x2+b*x+c
33、求符號表達式的函數值為了得到數字,需要使用函數eval 來轉換字符串。>> syms x>> f=symsum(x2)>> x=2>> eval(f)第 3 節 微積分(Calculus)函數微分和積分廣泛地用在許多工程學科,這部分的主要函數有:diff():Differentiate.(微分)Int():Integrate(積分)Jacobian():Jacobian matrix(雅可比行列式)Limit():Limit of an expression.(極限)Symsum():Summation of series(序列和)Taylor(
34、):Taylor series expansion(泰勒級數)微分和差分:diff>> f= ' a*x3+x2-b*x-c ' % define a symbolic expressionf=a*x3+x2-b*x-c>> diff(f) % differentiate with respect to the default variable xans=3*a*x2+2*x-b>> diff(f,'a ') % differentiate with respect to aans=x3>> diff(f,2) %
35、 differentiate twice with respect to xans=6*a*x+2>> diff(f,' a ',2) % differentiate twice with respect to aans=0>> m=(1: 8).2) % create a vectorM=1 4 9 16 25 36 49 64 >> diff(M) % find the differences between elementsans=3 5 7 9 11 13 15 如果diff的表達式或可變參量是數值,MATLAB就非常巧妙地計算其數值
36、差分;如果參量是符號字符串或變量,MATLAB就對其表達式進行微分。積分int:格式:int(f),其中f是一符號表達式,它力圖求出另一符號表達式F使diff(F)=f。注意:積分或逆求導不一定是以封閉形式存在,或存在但軟件也許找不到,或者軟件可明顯地求解,但超過內存或時間限制。當MATLAB不能找到逆導數時,它將返回未經計算的命令。>> int( ' log(x)/exp(x2) ' ) % attempt to integrateans=log(x)/exp(x2)積分函數的多種形式:int(f):相對于缺省的獨立變量x求逆導數int(f,' s
37、9;):相對于符號變量s積分int(f,a,b)和int(f,' s ',a,b):a,b是數值,求解符號表達式從a到b的定積分int(f,' m ' ,' n ')和形式int(f,' s ',' m ',' n '):其中m,n是符號變量,求解符號表達式從m到n的定積分。>> f=' sin(s+2*x) ' % crate a symbolic functionf=sin(s+2*x)>> int(f) % integrate with respect
38、to xans=-1/2*cos(s+2*x)>> int(f,' s ') % integrate with respect to sans=-cos(s+2*x)>> int(f,pi/2,pi) % integrate with respect to x from /2 to ans=-cos(s)>> int(f,' s ',pi/2,pi) % integrate with respect to s from /2 to ans=2*cos(x)2-1-2*sin(x)*cos(x) >> int(f,&
39、#39; m ',' n ') % integrate with respect to x from m to nans=-1/2*cos(s+2*n)+1/2*cos(s+2*m)diff 和 int 均可以對符號數組的每一個元素進行運算。>> F=sym( 'a*x,b*x2;c*x3,d*s ' ) % create a symbolic array F = a*x, b*x2 c*x3, d*s>> int(F) % ubtegrate the array elements with respect to xans=1/2
40、*a*x2,1/3*b*x31/4*c*x4, d*s*x第 4 節 數字信號處理常用Matlab函數簡介一、 典型離散信號表示方法1.單位沖擊序列(n)(n)可以用zero函數來實現:x=zeros(1,N);x(1)=1;2.單位階躍序列u(n) 可以用ones函數來實現 X=ones(1,N);3.正弦序列 n=0:N-1;x=A*sin(2*pi*f*n*Ts);4.指數序列 N=1:N; X=a.*n;5.復指數序列n=0:N-1;x=exp(j*w*n);6.隨機序列 Rand(1,N) :產生0,1上的均勻分布的隨機序列; Rand(1,N) :產生均值為0,方差為1的高斯隨機序
41、列,即白噪聲序列。二、 濾波器分析與實現 濾波器分析與實現常用函數abs求絕對值angle求相角conv求卷積conv2求二維卷積deconv翻卷積f1 filt重疊相加法fft濾波器實現filter直接濾波器實現filter2二位數字濾波器filtfilt零相位數字濾波器filticFilter初始條件選擇freqs模擬濾波器頻率響應freqspace畫出頻率響應曲線freqz數字濾波器頻率響應freqzplot畫出頻率響應曲線gGrpdelay平均濾波延遲latcfilt格型濾波實現impz數字濾波器中的單位沖擊響應medfilt1一維中值濾波sosfilt二次分式濾波器實現zplane離
42、散系統零、極點圖upfirdn上抽樣unwrap去除相位1. absy=abs(x) 計算x的絕對值,當x為復數時,其算其模值。當x為字符串時,計算各個字符的ASCII碼。2. angle = angle(h) 計算復矢量或者復矩陣的相角(以弧度為單位),相角介于-之間。convc=conv(a,b) 對序列a,b進行卷積運算。filtery=filter(b,a,x)計算輸入信號x的濾波器輸出,向量a,b分別是所采用的濾波器的分子系數向量和濾波器的分母向量。y,zf=filter(b,a,x,zi) 參數zi指定濾波器的初始條件,其大小為zi=max(length(a),length(b)-
43、1y=filter(b,a,x,zi,dim) dim指定濾波器的維數。zi或表示空集。5. impzh,t=impz(b,a)返回參數h是沖擊相應的數值;返回t是沖擊相應的抽樣時間間隔。h,t=impz(b,a,N) N用來制定沖激信號長度。如果N是一個整數向量,只返回N元素所對應時刻的抽樣數值的沖擊結果。N為,表示不制定沖激信號的長度,其長度與濾波器結構保持一致。h,t=impz(b,a,N,fs)Fs用來指定沖擊信號的抽樣頻率,默認值是。三、 信號變換常用變換函數cztChirp z變換dct離散余弦變換dftmtx離散傅里葉變換fft一維快速傅里葉變換fft2二維快速傅里葉變換ffts
44、hift重新排列fft輸出HilbertHilbert變換idct離散余弦反變換ifft一維快速傅里葉反變換ifft2二維快速傅里葉反變換 fftY=fft(X)若X是向量,則采用傅里葉變換求解X離散傅里葉變換;若X是矩陣,則計算該矩陣每一列的離散傅里葉變換。Y=fft(X,N)N是進行離散傅里葉變換的X的數據長度,可以通過對X進行補或截取來實現。Y=fft(X,dim)在參數dim指定的維上進行傅里葉變換。X是矩陣時,dim用來指變換的實施方向:dim,表明變換按列進行;dim,表明變換按行進行。第 5 節 方程求解一、 求解單個變量的代數方程:利用 solve函數1.沒有號的表達式,用so
45、lve將其置成等于0。>> solve( ' a*x2+b*x+c ' ) % solve for the roots of the quadratic equtionans=1/2/a*(-b+(b2-4*a*c)1/2)1/2/a*(-b-(b2-4*a*c)1/2)注:方程有2個解。2.對其他非缺省變量求解,在 solve 中指定出該變量。>> solve( ' a*x2+b*x+c ' , ' b ' ) % solve for bans=-(a*x2+c)/x3.對帶有等號的方程求解。>> f=sol
46、ve( ' cos(x)=sin(x) ' ) % solve for xf=1/4*pi>> t=solve( ' tan(2*x)=sin(x) ' )t = 0 pi atan(1/2*(-2*3(1/2)(1/2),1/2+1/2*3(1/2) atan(-1/2*(-2*3(1/2)(1/2),1/2+1/2*3(1/2) atan(1/2*2(1/2)*3(1/4)/(1/2-1/2*3(1/2)+pi -atan(1/2*2(1/2)*3(1/4)/(1/2-1/2*3(1/2)-pi二、 單個常微分方程求解:利用 dsovle函數ds
47、ovle 函數的句法:用字母D來表示求微分,D2,D3等等表示二階、三階微分,并以此來設定方程。任何D后所跟的字母為因變量。方程=0用符號表達式D2y=0來表示。獨立變量可以指定或由symvar規則選定為缺省。例1,求一階方程dy/dx=1+y2的解,其通解為:>> dsolve( ' Dy=1+y2 ' ) % find the general solutionans=tan(t+C1) C1是積分常數給定初值y(0)=1的方程的解:>> dsolve('Dy=1+y2 ',' y(0)=1 ') % add an in
48、itial conditiony=tan(t+1/4*pi)指定獨立變量:>> dsolve(' Dy=1+y2 ',' y(0)=1 ',' v ') % find solution to dy/dvans=tan(v+1/4*pi)例2:求二階微分方程的解,方程有兩個初始條件: =cos(2x)-y (0)=0 y(0)=1>> y=dsolve('D2y=cos(2*x)-y ',' Dy(0)=0 ',' y(0)=1 ','x')y=(1/6*cos
49、(3*x)-1/2*cos(x)*cos(x)+(1/2*sin(x)+1/6*sin(3*x)*sin(x)+4/3*cos(x) >> y=simple(y) % y looks like it can be simplifiedy=-1/3*cos(2*x)+4/3*cos(x)例3:求解下列形式的微分方程-y=0通解為: >> y=dsolve( 'D2y-2*Dy-3*y=0 ','x')y =C1*exp(-x)+C2*exp(3*x)加上初始條件:y(0)=0和y(1)=1可得到:>> y=dsolve(
50、9;D2y-2*Dy-3*y=0 ','y(0)=0','y(1)=1','x')y=1/(exp(-1)-exp(3)*exp(-x)-1/(exp(-1)-exp(3)*exp(3*x)>> y=simple(y) % this looks like a candidate for simplificationy=(exp(-x)-exp(3*x)/(exp(-1)-exp(3)>> pretty(y) % pretty it up exp(-x)-exp(3 x)- - exp(3) -exp(-1)小結下列
51、各表綜合了符號數學工具箱的特性: 符號表達式的運算eval符號到數值的轉換Pretty顯示悅目的符號輸出Subs替代子表達式Sym建立符號矩陣或表達式Symadd符號加法Symdiv符號除法Symmul符號乘法Symop符號運算Sympow符號表達式的冪運算Symrat有理近似Symsub符號減法Symvar求符號變量符號表達式的簡化Collect合并同類項Expand展開Factor因式Simple求解最簡形式Simplify簡化symsum 和級數符號多項式Charpoly特征多項式Horner嵌套多項式表示Numden分子或分母的提取poly2sym多項式向量到符號的轉換sym2poly
52、符號到多項式向量的轉換符號微積分Diff微分Int積分Jordan約當標準形Taylor泰勒級數展開符號可變精度算術Digits設置可變精度Vpa可變精度計算求解符號方程Compose函數的復合Dsolve微分方程的求解Finverse函數逆Linsolve齊次線性方程組的求解Solve代數方程的求解符號線性代數Charploy特征多項式Determ矩陣行列式的值Eigensys特征值和特征向量Inverse矩陣逆Jordan約當標準形Linsolve齊次線性方程組的解Transpose矩陣的轉置離散信號的表示法第三章 函數繪圖數據圖形能使視覺感官直接感受到數據的許多內在本質,發現數據的內在聯
53、系。MATLAB可以表達出數據的二維,三維,甚至四維的圖形。第 1 節 二維圖形一、 基本平面圖形繪制命令:plot功能 線性二維圖。格式 plot(X,s) X為實向量的時候,以該向量元素的下標為橫坐標,元素值為縱坐標,繪出一條連續曲線。 plot(X,Y) X,Y為同維向量時,繪制以X、Y元素為橫、縱坐標的曲線。 X為向量,Y為一維或多維矩陣時,繪出多條不同顏色的曲線。X為這些曲線共同的橫坐標。plot(Y):Y的維數為m,則plot(Y)等價于plot(x,Y),其中x=1:mplot(X1,Y1,X2,Y2,),其中Xi與Yi成對出現plot(X1,Y1,LineSpec1,X2,Y2
54、,LineSpec2) 將按順序分別畫出由三參數定義Xi,Yi,LineSpeci的線條。其中參數LineSpeci指明了線條的類型,標記符號,和畫線用的顏色。可混合使用三參數和二參數的形式:plot(X1,Y1,LineSpec1,X2,Y2,X3,Y3,LineSpec3)plot(,'PropertyName',PropertyValue,) 對圖形對象中指定的屬性進行設置。h = plot() 返回line圖形對象句柄的一列向量,一線條對應一句柄值。允許用戶對線條定義的屬性1線型定義符-:-.線型實線(缺省值)劃線點線點劃線2線條寬度 LineWidth指定線條的寬度,取值為整數(單位為像素點)3顏色定義符R(red)G(green)b(blue)c(cyan)顏色紅色綠色蘭色青色定義符M(magenta)y(yellow)k(black)w(white)顏色品紅黃色黑色白色4標記類型定義符+O(字母)*.x標記類型加號小圓圈星號實點交叉號定義符dv><標記類型棱形向上三角形向下三角形向右三角形向左三角形定義符shP標記類型正方形正六角星正五角星5
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 學校生物園管理制度
- 學校詩詞曲管理制度
- 學法校資產管理制度
- 學生穿校服管理制度
- 安全生產部管理制度
- 安裝隊科室管理制度
- 定銷房銷售管理制度
- 實訓室環境管理制度
- 審核制度及管理制度
- 客棧經營與管理制度
- 2025年中科院心理咨詢師培訓考試復習題庫-上(單選題)
- 危化三級安全教育
- 馬克思主義基本原理與科技創新的結合心得體會
- 美發店投資入股協議書8篇
- 第四單元 課題3 物質組成的表示教學設計-2024-2025學年九年級化學人教版(2024)上冊
- 植物細胞的分子生物學研究-深度研究
- DeepSeek零基礎到精通手冊(保姆級教程)
- 2024年中國軟件行業基準數據 (CSBMK-202410)
- 小學四年級下冊四則混合運算及簡便運算
- 公共政策分析概論 課件 第3章 政策主體、政策客體與政策環境
- 《學前教育教育研習》課程教學大綱
評論
0/150
提交評論