Ⅰ 大一matlab數學實驗報告
先畫出散點圖
>>x=[];
>>y=[];
>>plot(x,y,'o')
Ⅱ MATLAB實驗
1.理解連續系統時域分析方法.
2.學習利用matlab對連續系統進行時域分析的方法.
3.掌握單位沖激響應和單位階躍響應一般求解方法和基本特徵,學習利用matlab求此響應的方法。
4.掌握單位沖激響應與系統穩定性、因果性之間的關系。
二、實驗器材
計算機、MATLAB軟體
三、實驗原理
對於單輸入-單輸出系統的輸入激勵為 f (t),輸出響應為y(t),則描述連續LTI系統的數學模型為n階次的常系數線性微分方程,形式如下
[圖片上傳失敗...(image-82e2d0-1639285196529)] (3-1)
式子中, a i = 0,1,...n,和b i =0,1,...m均為常數。
由信號與系統的分析理論值,如果描述系統的微分方程、激勵和初始狀態已知,我們可用經典時域求解法求出其解。但對於高階系統,手工計算十分的繁瑣,甚至很困難,這時可以用matlab工具求解。
Matlab里提供了求(3-1)解用到的函數,常用的是impluse()、step()、lism()、conv()、dsolve()。下面我們分別介紹這幾個函數。
1.****連續時間系統沖激響應和階躍響應的求解
連續LTI系統的沖激響應和階躍響應,分別用impluse和step求解。其調用格式為
impluse (b,a) y=impluse(sys,t)
step (b,a) y=step(sys,t)
式中,t表示計算系統響應的抽樣點向量,sys是LTI系統模型,它表示 微分方程,差分方程或狀態方程 。其調用格式
sys = tf (b,a)
式中,b和a分別是微分方程的右端和左端系數向量。例如
[圖片上傳失敗...(image-63fd93-1639285196529)]
用a=[a3,a2,a1,a0] ; b=[b3,b2,b1,b0] ,sys = tf (b,a) 獲得其LTI模型。
例1****:已知描述某連續系統的微分方程為
[圖片上傳失敗...(image-954b31-1639285196529)]
試利用matlab****繪出該系統的單位沖激響應和單位階躍響應的時域波形,並根據單位沖激響應判斷系統的穩定性和因果性。`1
matlab程序如下
a=[1 1 6];
b=[1];
subplot(2,1,1)
impulse(b,a)
subplot(2,1,2)
step(b,a)
程序運行後,其圖形如下3-1所示。
[圖片上傳失敗...(image-8ac458-1639285196530)]
圖****3-1 系統的沖激響應和階躍響應圖
從圖3-1所示的系統的單位沖激響應的時域波形可以看出,當時間t<0時系統的單位沖激響應h(t)=0,所以該系統為因果系統;同時h(t)隨著時間的增長而衰減,當t趨於無窮大時時,h(t)趨於零,所以系統也是一個穩定的系統。
2.****連續時間系統零輸入響應的求解
在MATLAB中,initial是求連續系統的零輸入響應函數,其調用形式為
initial(sys,x0)
[y,x,t]=initial(sys,x0)
initial函數可計算出連續時間線性系統由於初始狀態所引起的響應(故而稱零輸入響應)。當不帶輸出變數引用函數時,initial函數在當前圖形窗口中直接繪制出系統的零輸入響應。
例2****:已知描述某連續系統的微分方程為
[圖片上傳失敗...(image-15bccf-1639285196529)]
y(0)=1,y』(0)=2, 用matlab****求其零輸入響應
程序如下:
a=[1 1 6];
b=[1];
sys=tf(b,a);
sys1=ss(sys); % 轉成狀態變數表示
x0=[1,2]
initial(sys1,x0)
運行結果如圖3-2所示
[圖片上傳失敗...(image-f08768-1639285196530)]
圖****3-2 系統的零輸入響應圖
3.****連續時間系統零狀態響應的數值計算----- lism()
求解微分方程零狀態響應的數值解。其調用格式主要有兩種。
**lism(sys,f,t) y=lism(sys,f,t) **
其中,f是輸入信號在向量t定義的時間點上的采樣值,t是輸入信號時間范圍向量,sys是LTI系統模型
例3****: 已知描述某連續系統的微分方程為
[圖片上傳失敗...(image-4a9e83-1639285196529)]
試利用matlab求出該系統當激勵信號為[圖片上傳失敗...(image-5ad649-1639285196529)] 時,系統的響應[圖片上傳失敗...(image-348322-1639285196529)] ,並會出其波形。
matlab程序如下
a=[1 2 1];
b=[1 2];
sys=tf(b,a); %定義系統函數對象
p=0.01; %定義采樣時間間隔
t=0:p:5;
f=exp(-2*t);
lsim(sys,f,t); %對系統輸出信號進行模擬
程序運行後,其圖形如圖3-3所示。
[圖片上傳失敗...(image-3950ed-1639285196529)]
圖3-3 連續系統的響應模擬
4.****微分方程的符號解的函數dsolve()
在MATLAB中,dsolve()是求解微分方程的符號解的函數,其調用形式為
r=dsolve(『eq1,eq2,…』,』cond1,cond2,…』,』v』)
或r=dsolve(『eq1』,eq2』,…,』cond1』,』cond2』,…,』v』)
其中cond1、cond2….是初始條件(如沒有給出初始條件,則默認為求通解),v為自變數變數。D表示一階微分,D2為二階微分……。函數dsolve把D後的變數當成因變數,默認為這些變數對自變數的求導。
例****4****:求二階系統[圖片上傳失敗...(image-9ca77c-1639285196529)] 在初始條件[圖片上傳失敗...(image-ae497b-1639285196529)] 下的零輸入響應的解、零狀態響應的解及全解
matlab程序如下
yzi=dsolve('D2y+5 Dy+4 y=0','y(0)=0,Dy(0)=1')
yzs=dsolve('D2y+5 Dy+4 y=exp(-3*t)','y(0)=0,Dy(0)=0')
y=dsolve('D2y+5 Dy+4 y=exp(-3*t)','y(0)=0,Dy(0)=1')
運行結果如下
yzi =
-1/3 exp(-4 t)+1/3*exp(-t)
yzs =
1/3 exp(-4 t)+1/6 exp(-t)-1/2 exp(-3*t)
y =
1/2 exp(-t)-1/2 exp(-3*t)
即 [圖片上傳失敗...(image-8a13eb-1639285196529)]
[圖片上傳失敗...(image-9036d5-1639285196529)]
[圖片上傳失敗...(image-fa7bd7-1639285196529)]
四、實驗內容
1.驗證實驗原理中所述的相關程序
2.已知描述某連續系統的微分方程為
[圖片上傳失敗...(image-d41f06-1639285196529)]
(1) 試利用matlab繪出該系統的沖激響應和階躍響應的時域波形,並根據沖激響應判斷系統的穩定性。
a=[1,3,2];
b=[1,2];
subplot(2,1,1)
impulse(b,a);
subplot(2,1,2)
step(b,a);
wending
(2) 當激勵信號為[圖片上傳失敗...(image-e16660-1639285196529)] 時,系統的零狀態響應[圖片上傳失敗...(image-5beb2d-1639285196529)] ,並繪出響應的波形。
a=[1,3,2];
b=[1,2];
sys=tf(b,a)
t=0:0.01:5;
f=exp(-2*t);
lsim(sys,f,t)
3.求三階系統[圖片上傳失敗...(image-a71fa6-1639285196529)] 在初始條件[圖片上傳失敗...(image-40502a-1639285196529)] 下的零輸入響應的解、零狀態響應的解及全解。
yzi=dsolve('D2y+5*Dy+y=0','y(0)=0,Dy(0)=1')
yzs=dsolve('D2y+5 Dy+y=exp(-3 t)','y(0)=0,Dy(0)=0')
y=dsolve('D2y+5 Dy+y=exp(-3 t)','y(0)=0,Dy(0)=1')
五、實驗報告要求
1.實驗內容中詳細說明用連續系統時域分析法的步驟與原理。
2.寫出其對應的matlab程序。
3.上機調試程序的方法及實驗中的心得體會。
Ⅲ 求用matlab 做數學實驗報告! 1求微分方程特解。 d^2y/dx^2+4dy/dx+29y=0 y(0)=0,y'(0)=15
對於第一個問題可以直接採用函數求解的方法
y1=dsolve('D2y+4*Dy+29*y=0','Dy(0)=15','y(0)=0','x')
y1=(3*sin(5*x))/exp(2*x)
y2=dsolve('D2y-2*Dy+5*y=sin(2*x)')
y2=sin(2*x)/5+C5*cos(2*t)*exp(t)+C6*sin(2*t)*exp(t)
對於第三個問題,那麼不能求出通解,所以只能藉助於數值求解的方法來求解,數值求解採用ode45函數來求解的方法,具體過程如下:
先編寫待求解的微分方程函數,打開編輯器:
%編寫要求解的微分方程組函數表達式!
functiondy=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);%第三個微分方程;
並以默認的文件名保存函數文件!
編寫命令行,對微分方程求解:
options=odeset('RelTol',1e-4,'AbsTol',[1e-41e-41e-5]);%定義求解選項包含精度項!
[T,Y]=ode45(@rigid,[012],[011],options);%採用ode45求解方程組,並把求解結果保存到數組T,Y中!
plot(T,Y(:,1),'r-',T,Y(:,2),'b-.',T,Y(:,3),'k.')%作圖!
gridminor%網格化!
運行上面的代碼就得到函數的解:
附上圖片!
如果有什麼問題可以問我!!
Ⅳ 線性代數matlab實驗報告
額,同學和我一樣啊!!你是?? (商品的市場佔有率問題) 有兩家公司 R 和 S 經營同類的產品, 它們相互競爭. 每年 R 公司保有 1/4 的顧客,而 3/4 轉移向 S 公司;每年 S 公司保有 2/3 的顧 客,而 1/3 轉移向 R 公司.當產品開始製造時 R 公司佔有 3/5 的市場分額,而 S 公司佔有 2/5 的市場分額.問兩年後,兩家公司所佔的市場分額變化怎樣, 五年以後會怎樣? 十年以後如何? 是否有一組初始市場分額分配數據使以後每 年的市場分配成為穩定不變? 問題分析與數學模型 根據兩家公司每年顧客轉移的數據資料,可得以下轉移矩陣:
1 4 A= 3 4 1 3 2 3
根據產品製作之初,市場的初始分配數據可得如下向量:
3 5 X0 = 2 5
所以 n 年後,市場分配為:
1 4 X n = AX n 1 = L = A n X 0 = 3 4 1 3 2 3
n
3 5 2 5
設有數據 a 和 b 為 R 公司和 S 公司的初始市場份額,則 a + b = 1 .為了使以後每年的市 場分配不變,根據顧客數量轉移的規律,有:
1 4 3 4 1 3 a a = 2 b b 3
即
3 4 3 4 1 3 a =0 1 b 3
該方程若有解,則應該在非零解的集合中選取正數解作為市場穩定的初始份額. 程序和計算結果 為了得到兩年,五年,十年後市場的分配情況.
在 MATLAB 窗口中輸入 >>
A=[1/4 1/3;3/4 2/3] %輸入轉移矩陣
A >> x0=[3/5;2/5] %輸入初始向量,即初始市場份額
>> x2=A^2*x0 %計算兩年後的市場份額
>> x5=A^5*x0 %計算五年後的市場份額
>> x10=A^10*x0 %計算十年後的市場份額
x2 = 0.3097 0.6903 x5 = 0.3077 0.6923
x10 = 0.3077 0.6923 由此可得下表 6.3表 6.3市場份額的轉移率: 兩年後 五年後 十年後
R 公司的市場份額 31% 31% 31%
S 公司的市場份額 69% 69% 69%
為了求 a 和 b 作為 R 公司和 S 公司穩定的初始市場份額,需要求解齊次方程組.
在 MATLAB 窗口中輸入:
>> format rat %定義輸出格式為小整數比的近似值
>> rref(A-eye(2)) %對矩陣 A I 2×2 進行初等變換,所得矩陣為矩陣 % A I 2×2 的最簡行階梯矩陣 ans = 1 0 -4/9 0
4 a b =0. 9 4 ≈ 31% 13 9 b= ≈ 69% 13 a=
由此得簡化後的方程為
結合約束條件 a + b = 1 ,可得
這是使市場穩定的兩家公司的初始份額,也正好與表中的數據吻合. 問題的解答和進一步思考 在 R 公司和 S 公司的市場初始份額分別為 60%和 40%的情況下,根據計算結果, 兩年後情況變化較大:R 公司大約占 31%,S 公司大約占 69%.而五年以後與兩年以 後比較變化不大:R 公司大約占 30.8%,S 公司大約占 69%.十年後的的情況與五年 後的情況比較大約不變.市場已趨於穩定.