文档库 最新最全的文档下载
当前位置:文档库 › 实验三 利用Matlab分析能控性和能观性

实验三 利用Matlab分析能控性和能观性

实验三 利用Matlab分析能控性和能观性
实验三 利用Matlab分析能控性和能观性

实验三利用Matlab分析能控性和能观性

实验目的:熟练掌握利用Matlab中相关函数分析系统能控能观性、求取两种标准型、系统的结构分解的方法。

实验内容:

1、能控性与能观性分析中常用的有关Matlab函数有:

Size(a,b) 获取矩阵的行和列的数目

Ctrb(a,b) 求取系统能控性判别矩阵

Obsv(a,c) 求取能观性判别矩阵

Rank(t) 求取矩阵的秩

Inv(t) 求矩阵的逆

[abar,bbar,cbar,t,k]=ctrbf(a,b,c) 对系统按能控性分解,t为变换阵,k为各子系统的秩[abar,bbar,cbar,t,k]=obsvf(a,b,c) 对系统按能观性分解

2、利用Matlab判定系统能控性和能观性

A、求取判别矩阵的秩,而判别矩阵可用两种方法得到:

M=ctrb(a,b) 或者M=[b,a*b,a^2*b,……]

B、将系统变换为对角线型或者约当标准型,根据结果直接判断。化为标准型可以使用第

一次实验中介绍的ss2ss、canon等函数。

3、化为能控标准型和能观标准型

如:>> a=[1 0 1;0 1 0;1 0 0];

>> b=[0 1 1]';

>> c=[1 1 0];

>> m=ctrb(a,b)

m =

0 1 1

1 1 1

1 0 1

>> n=length(a);tc1=eye(n);tc2=eye(n);

>> tc1(:,1)=m(:,3)

tc1 =

1 0 0

1 1 0

1 0 1

>> tc1(:,2)=m(:,2)

tc1 =

1 1 0

1 1 0

1 0 1

>> tc1(:,3)=m(:,1)

tc1 =

1 1 0

1 1 1

1 0 1

>> qc=rank(m)

qc =

3

>> den=poly(a)

den =

1.0000 -

2.0000 0.0000 1.0000

>> tc2(2,1)=den(2)

tc2 =

1 0 0

-2 1 0

0 0 1

>> tc2(3,2)=den(2);tc2(3,1)=den(3)

tc2 =

1.0000 0 0

-2.0000 1.0000 0

0.0000 -2.0000 1.0000

>> tc3=tc1*tc2;tc4=inv(tc3);

>> a1=tc4*a*tc3

a1 =

-0.0000 1.0000 0.0000

0.0000 0 1.0000

-1.0000 0.0000 2.0000

>> b1=tc4*b

b1 =

0.0000

1.0000

>> c1=c*tc3

c1 =

-2.0000 0 1.0000

参照该例,掌握其他标准型的求解办法。

4、系统的结构分解

A 、 找到变换矩阵c R 或者o R ,利用线性变换进行结构分解。

B、利用Matlab中的函数进行分解:

[abar,bbar,cbar,t,k]=ctrbf(a,b,c) 对系统按能控性分解,t为变换阵,k为各子系统的秩[abar,bbar,cbar,t,k]=obsvf(a,b,c) 对系统按能观性分解

利用[num,den]=ss2tf(a,b,c,d,i)可以验证能控能观子系统的传递函数阵等于原系统的传递函数阵。

5、传递函数阵的最小实现

对于多输入-多输出系统,由tf2ss或者zp2ss直接得到的系统实现经常不是一个最小实现,利用minreal函数可以去掉不能控或者不能观的状态,得到一个最小实现。

>> num={[4 6],[2 3];-2 -1}

num =

[1x2 double] [1x2 double]

[ -2] [ -1]

>> den={[1 3 2],[1 3 2];[1 3 2],[1 3 2]}

den =

[1x3 double] [1x3 double]

[1x3 double] [1x3 double]

>> g=tf(num,den)

Transfer function from input 1 to output...

4 s + 6

#1: -------------

s^2 + 3 s + 2

-2

#2: -------------

s^2 + 3 s + 2

Transfer function from input 2 to output...

2 s + 3

#1: -------------

s^2 + 3 s + 2

-1

#2: -------------

s^2 + 3 s + 2

>> gs=ss(g)

a =

x1 x2 x3 x4

x1 -3 -1 0 0

x2 2 0 0 0

x3 0 0 -3 -1

x4 0 0 2 0

b =

u1 u2

x1 4 0

x2 0 0

x3 0 2

x4 0 0

c =

x1 x2 x3 x4 y1 1 0.75 1 0.75

y2 0 -0.25 0 -0.25

d =

u1 u2

y1 0 0

y2 0 0

Continuous-time model.

>> gm=minreal(gs)

2 states removed.

a =

x1 x2

x1 -2.663 -0.4288

x2 2.571 -0.337

b =

u1 u2

x1 2.766 1.383

x2 -0.5932 -0.2966

c =

x1 x2

y1 1.605 0.7405

y2 -0.07415 -0.3457

d =

u1 u2

y1 0 0

y2 0 0

Continuous-time model.

>> am=gm.a;bm=gm.b;cm=gm.c;dm=gm.d; >> [num,den]=ss2tf(am,bm,cm,dm,1)

num =

0 4.0000 6.0000

0 0.0000 -2.0000

den =

1.0000 3.0000

2.0000

实验要求:

1、用两种方法完成第三章课后习题3-2。

2、完成例3-17及课后习题3-12。

3、完成课后习题3-13,并验证所求得的为最小实现。

4、把你使用的各种命令及得到的结果整理一下,以电子文本的形式发给我作为实验报告。

Matlab上机实验答案

Matlab上机实验答案 实验一 MATLAB运算基础 1. 先求下列表达式的值,然后显示MATLAB工作空间的使用情况并保存全部变量。 >> z1=2*sin(85*pi/180)/(1+exp(2)) z1 = >> x=[2 1+2i; 5]; >> z2=1/2*log(x+sqrt(1+x^2)) z2 = - + + -

>> a=::; >> z3=(exp.*a)-exp.*a))./2.*sin(a++log(+a)./2) (>> z33=(exp*a)-exp*a))/2.*sin(a++log(+a)/2)可以验证z3==z33,是否都为1) z3 = Columns 1 through 5 + + + + + Columns 6 through 10 + + + + + Columns 11 through 15 + + + + + Columns 16 through 20 + + + + +

Columns 21 through 25 + + + + + Columns 26 through 30 + + + + + Columns 31 through 35 + + + + + Columns 36 through 40 + + + + + Columns 41 through 45 + + + + + Columns 46 through 50

+ + + + + Columns 51 through 55 + + + + + Columns 56 through 60 + + + + + Column 61 + (4) 2 2 4 2 01 112 2123 t t z t t t t t ?≤< ? =-≤< ? ?-+≤< ? ,其中t=0:: >> t=0::; >> z4=(t>=0&t<1).*(t.^2)+(t>=1&t<2).*(t.^2-1)+(t>=2&t<3).*(t.^ 2-2.*t+1) z4 =

MATLAB实验题答案

1、求以下变量的值,并在MATLAB中验证。( 1 ) a = 1 : 2 : 5 a = 1 3 5 ( 2 ) b = [ a' , a' , a' ;a ] b = 1 1 1 3 3 3 5 5 5 1 3 5 ( 3 ) c = a + b ( 2 , : ) c = 4 6 8 2、下列运算是否合法,为什么?如合法, 结果是多少? >> result2=a*b Error using * Inner matrix dimensions must agree. >> result3=a+b result3 = 3 6 2 5 8 11 >> result4=b*d result4 = 31 22 22 40 49 13 >> result5=[b;c']*d result5 = 31 22 22 40 49 13 -5 -8 7 >> result6=a.*b result6 = 2 8 -3 4 1 5 30 >> result7=a./b result7 = 0.5000 0.5000 -3.0000 4.0000 1.6667 1.2000>> result8=a.c Attempt to reference field of non-structure array. >> result9=a.\b result9 = 2.0000 2.0000 -0.3333 0.2500 0.6000 0.8333 >> result10=a.^2 result10 = 1 4 9 16 25 36 >> result11=2.^a result11 = 2 4 8 16 32 64 3、用MATLAB求解下面的的方程组。 (1) ? ? ? ? ? ? ? ? ? ? ? ? - = ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? - - - - 1 7 4 13 2 3 1 5 11 2 2 2 3 15 9 2 1 2 7 4 3 2 1 x x x x >> A=[7 2 1 -2;9 15 3 -2;-2 -2 11 5;1 3 2 13] >> B=[4 7 -1 0] >> B=B' >> x=inv(A)*B (2) ? ? ? ? ? ? ? = - + + = - - = - + + = + + 5 6 5 3 3 3 3 2 8 2 1 w z y x w y x w z y x z y x >> A1=[1 1 1 0;1 2 1 -1;2 -1 0 -3;3 3 5 -6] >> B2=[1;8;3;5] >> x2=inv(A1)*B2 4、已知 ? ? ? ? ? ? ? ? ? ? ? ? - - - - = 13 2 3 1 5 11 2 2 2 3 15 9 2 1 2 7 A

VB与MATLAB接口的实现

VB与MATLAB接口的实现: https://www.wendangku.net/doc/6b6346850.html, 实例说明 在本实例中,我们制作一个能够与Matlab进行交互的应用程序。程序运行结果如图78-1所示。 图78-1 运行结果 技术要点 z引用Matlab库 z执行Matlab命令 z结束Matlab 实现过程 ■ 新建项目 打开Visual https://www.wendangku.net/doc/6b6346850.html,,选择“新建项目”,在项目类型窗口中选择“Visual Basic项目”,在模板窗口中选择“Windows应用程序”,在名称域中输入“CnMatlab”,然后选择保存路径。单击“确认”。 ■ 添加控件 向当前窗体添加五个Button按钮,两个Picture控件,一个Label控件,一个Hscroll控件和一个Vscroll控件。单击菜单“项目|添加引用”,选中“Matlab Automation(Version5.3)Type Library”这一项。 注意:本程序只能在安装有Matlab的机器上运行。 ■ 设置属性 将Label控件和Command按钮的Text属性设置为与界面一致。在此不再赘述。 ■ 添加代码 Dim str1 As String ' 显示正弦图 Private Sub Command1_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles Command1.Click Dim matlab As Object matlab = CreateObject("matlab.application") matlab.MinimizeCommandWindow()

数学软件MATLAB实验作业

数学软件与数学实验作业 一.《数学软件》练习题(任选12题,其中19-24题至少选2题): 3.对下列各式进行因式分解. (1). syms x y >> factor(x^5-x^3) (2). syms x y >> factor(x^4-y^4) (3). syms x >> factor(16-x^4) (4). syms x >> factor(x^3-6*x^2+11*x-6) (5). syms x y >> factor((x+y)^2-10*(x+y)+25) (6). syms x y >> factor(x^2/4+x*y+y^2) (7). syms x y a b >> factor(3*a*x+4*b*y+4*a*y+3*b*x) (8). syms x >> factor(x^4+4*x^3-19*x^2-46*x+120) 5.解下列方程或方程组. (1).solve('(y-3)^2-(y+3)^3=9*y*(1-2*y)') (2). solve('3*x^2+5*(2*x+1)') (3). solve('a*b*x^2+(a^4+b^4)*x+a^3*b^3','x') (4). solve('x^2-(2*m+1)*x+m^2+m','x') (5). [x,y]=solve('4*x^2-9*y^2=15','2*x-3*y=15') 6.计算极限. (1). syms x f=(exp(x)-exp(-x))/sin(x); limit(f,x,0) (2) syms x >> f=(x/(x-1)-1/log(x)); >> limit(f,x,1) (3). syms x >> f=(1-cos(x))/x^2; >> limit(f,x,0)

MATLAB全部实验及答案

MATLAB全部实验及答案 实验一、MATLAB基本操作 实验内容及步骤 4、有关向量、矩阵或数组的一些运算 (1)设A=15;B=20;求C=A+B与c=a+b? (2)设A=[1 2 3;4 5 6;7 8 9],B=[9 8 7;6 5 4;3 2 1];求A*B与 A.*B? A*B就是线代里面的矩阵相乘 A.*B是对应位置的元素相乘(3)设a=10,b=20;求i=a/b=0.5与j=a\b=2? (4)设a=[1 -2 3;4 5 -4;5 -6 7] 请设计出程序,分别找出小于0的矩阵元素及其位置(单下标、全 下标的形式),并将其单下标转换成全下标。 clear,clc a=[1 -2 3;4 5 -4;5 -6 7]; [x,y]=find(a<0); c=[]; for i=1:length(x) c(i,1)=a(x(i),y(i)); c(i,2)=x(i); c(i,3)=y(i); c(i,4)=(y(i)-1)*size(a,2)+x(i); end c

(5)在MATLAB命令行窗口运行A=[1,2;3,4]+i*[5,6;7,8];看结果如何?如果改成运行A=[1,2;3,4]+i[5,6;7,8],结果又如何?前面那 个是虚数矩阵,后面那个出错 (6)请写出完成下列计算的指令: a=[1 2 3;3 4 2;5 2 3],求a^2=?,a.^2=? a^2= 22 16 16 25 26 23 26 24 28 a.^2= 1 4 9 9 16 4 25 4 9 (7)有一段指令如下,请思考并说明运行结果及其原因 clear X=[1 2;8 9;3 6]; X( : ) 转化为列向量 (8)使用三元组方法,创建下列稀疏矩阵 2 0 8 0 0 0 0 1 0 4 0 0 6 0 0 0 方法一: clear,clc

MATLAB实验题答案

result5 = ( 1 ) a = 1 : 2 : 5 a = 1 3 5 ( 2 ) b = [ a' , a' , a' ;a ] b = 1 1 1 3 3 3 5 5 5 1 3 5 ( 3 ) c = a + b ( 2 , : ) c = 4 6 8 2、下列运算是否合法,为什么如合法, 结果是多少 >> result2=a*b Error using * Inner matrix dimensions must agree. >> result3=a+b result3 = 3 6 2 58 11 >> result4=b*d result4 = 31 22 22 40 49 13 31 22 22 40 49 13 -5 -8 7 >> result6=a.*b result6 = 2 8 -3 415 30 >> result7=a./b result7 = >> result8= Attempt to reference field of non-structure array. >> result9=a.\b result9 = >> result10=a92 result10 = 1 4 9 16 25 36 >> resultl 1=29a result11 = 2 4 8 16 32 64 >> result5=[b;c']*d 3、用MATLAB求解下面的的方程组。 1、求以下变量的值,并在MATLAB^验证。

1 2 x1 3 2 x2 11 5 x3 2 1 3 x4 >> A=[7 2 1 -2;9 15 3 -2;-2 -2 11 5;1 3 2 13] >> B=[4 7 -1 0] >> B=B' >> x=inv(A)*B >> A1=[1 1 1 0;1 2 1 -1;2 -1 0 -3;3 3 5 -6] >> B2=[1;8;3;5] >> x2=inv(A1)*B2 7 2 1 2 9 15 3 2 2 2 11 5 1 3 2 13 (1)求矩阵A的秩(rank) (2)求矩阵 A 的行列式(determinant) (3)求矩阵 A 的逆(inverse) (4)求矩阵 A 的特征值及特征向量 (eigenvalue and eigenvector) >> A3=[7 2 1 -2;9 15 3 -2;-2 -2 11 5;1 3 2 13] >> r=rank(A3) >> b=inv(A3) >> a=det(A3) >> [V,D]=eig(A3) 10 n 10 查看y 的值) m1=0; for m=-10:10 m仁m1+2^m; end m1 m1 = 6、求分段函数的值。 用if 语句实现,算出下列表中x 对应的y 值。 x=input('enter x='); if x<0 y=x A2+x-6; elseif x>=0&&x<5 y=xA2-5*x+6; else y=xA2-x-1; end y 7、分别用if 和switch 语句实现,将百分 制成绩转换为成绩等级A、B、C、D、E。 其中90~1 00分为A,80~89 分为B,70~79 分为C,60~69 分为D,60 分以下为E。 对超出百分制范围的成绩,给出错误提示 信息。 if 结构程序: x=input('please enter score='); if x>=90&&x<=100 9 2 10 disp('A') 7 2 9 15 (1) 2 2 1 3 4 7 1 0 A 4、已知 2n 2 10 29

matlab数学实验练习题

Matlab 数学实验 实验一 插值与拟合 实验内容: 预备知识:编制计算拉格朗日插值的M 文件。 1. 选择一些函数,在n 个节点上(n 不要太大,如5 ~ 11)用拉格朗日、分段线性、三次样条三种插值方法,计算m 个插值点的函数值(m 要适中,如50~100)。通过数值和图形输出,将三种插值结果与精确值进行比较。适当增加n ,再做比较,由此作初步分析。下列函数任选一种。 (1)、 ;20,sin π≤≤=x x y (2)、;11,)1(2/12≤≤--=x x y (3)、;22,c o s 10 ≤≤-=x x y (4)、22),exp(2≤≤--=x x y 2.用电压V=10伏的电池给电容器充电,电容器上t 时刻的电压为 ) (0)()(t e V V V t v ---=,其中0V 是电容器的初始电压,τ是充电常数。试由下面 一组t ,V 数据确定0V 和τ。 实验二 常微分方程数值解试验 实验目的: 1. 用MATLAB 软件求解微分方程,掌握Euler 方法和龙格-库塔方法; 2. 掌握用微分方程模型解决简化的实际问题。 实验内容:

实验三地图问题 1.下图是一个国家的地图,为了计算出它的国土面积,首先对地图作如下测量: 以由西向东方向为x轴,由南到北方向为y轴,选择方便的原点,并将从最西边界点到最东边界点在x轴上的区间适当地划分为若干段,在每个分点的y方向测出南边界点和北边界点的y坐标y1和y2,这样就得到了表中的数据(单位mm)。 根据地图的比例我们知道18mm相当于40km,试由测量数据计算该国土 的近似面积,并与它的精确值41288km2比较。

Matlab实验五分支结构程序设计答案

实验五分支结构程序设计 实验内容 (1)从键盘输入一个数,将它反向输出,例如输入693,输出为396 >> clear >> format long g s=input('s=') n=fix(log10(s)); A=0; for i=1:n a=fix(s/10^n); x=fix(mod(s,10^i)/10.^(i-1)); A=A+x*10^(n+1-i); end A+a s=693 s = 693 ans = 396 (2)输入一个百分制成绩,要求输出成绩等级A,B,C,D,E其中90-100位A,80-89为B,70-79为C,60-69为D,60以下为E 1)分别用if语句和switch语句实现 2)输入百分制成绩后要判断成绩的合理性,对不合理的成绩应输出出错信息 If语句 >> a=input('输入成绩') if a>=90&a<=100 disp('A 成绩合理'); elseif a>=80&a<90 disp('B 成绩合理'); elseif a>=70&a<80 disp('C 成绩合理');

elseif a>=60&a<70 disp('D 成绩合理'); elseif a<60 disp('E 成绩合理'); else disp('成绩错误') end 输入成绩98 a = 98 A 成绩合理 >> a=input('输入成绩') if a>=90&a<=100 disp('A 成绩合理'); elseif a>=80&a<90 disp('B 成绩合理'); elseif a>=70&a<80 disp('C 成绩合理'); elseif a>=60&a<70 disp('D 成绩合理'); elseif a<60 disp('E 成绩合理'); else disp('成绩错误') end 输入成绩148 a = 148 成绩错误 switch语句 >> a=input('输入成绩') switch a; case num2cell(0:59) disp('E 成绩合理'); case num2cell(60:69) disp('D 成绩合理'); case num2cell(70:79) disp('C 成绩合理'); case num2cell(80:89) disp('B 成绩合理'); case num2cell(90:100) disp('A 成绩合理'); otherwise disp('成绩错误'); end

MATLAB与FPGA的接口

FPGA器件的开发平台与MATLAB接口仿真 2007-09-03 16:24 FPGA器件的开发平台与MATLAB接口仿真 中南财经政法大学信息学院周巍武汉大学电气工程学院张志杰引言 现场可编程逻辑门阵列FPGA器件的出现是超大规模集成电路技术和计算机辅助设计技术发展的结果。FPGA器件集成度高、体积小,具有通过用户编程实现专门应用功能。 它允许电路设计者利用基于计算机的开发平台,经过设计输入、仿真、测试和校验,直到达到预期的结果。目前使用最多的Quartus II 软件支持几乎所有的EDA工具,并且可以通过命令行或Tcl脚本与第三方EDA工具之间进行无缝连接。但在很多工程设计应用中,由FPGA器件完成的主程序中只完成大量的数学运算,程序调试时以二进制输出的信号可视性差,给设计人员进行仿真、调试带来了很多不便。对于很多工程设计人员来说MATLAB是一种熟悉的具有强大的运算功能和波形仿真、分析功能的软件,如果能将FPGA与MA TLAB接口,就可以快速、准确、直观地对FPGA程序进行校验和仿真,尤其在波形信号处理等工程应用领域具有实际意义。 Quartus II 开发软件 Altera公司的QuartusII软件提供了可编程片上系统(SOPC)设计的一个综合开发环境。Quartus II 开发工具人机界面友好、易于使用、性能优良,并自带编译、仿真功能。QuartusII 软件支持VHDL和Verilog硬件描述语言的设计输入、基于图形的设计输入方式以及集成系统级设计工具。QuartusII软件可以将设计、综合、布局和布线以及系统的验证全部都整合到一个无缝的环境之中,其中也包括和第三方EDA工具的接口。QuartusII设计软件根据设计者需要提供了一个完整的多平台开发环境,它包含整个FPGA和CPLD设计阶段的解决方案。图1说明了QuartusII软件的开发流程。 在实际应用设计中,对程序原理性及可执行性的验证主要集中在程序修改阶段,尤其在

Matlab实验第一次实验答案

实验一Matlab使用方法和程序设计 一、实验目的 1、掌握Matlab软件使用的基本方法; 2、熟悉Matlab的数据表示、基本运算和程序控制语句 3、熟悉Matlab绘图命令及基本绘图控制 4、熟悉Matlab程序设计的基本方法 二、实验内容: 1、帮助命令 使用help命令,查找sqrt(开方)函数的使用方法; 解:sqrt Square root Syntax B = sqrt(X) Description B = sqrt(X) returns the square root of each element of the array X. For the elements of X that are negative or complex, sqrt(X) produces complex results. Remarks See sqrtm for the matrix square root. Examples sqrt((-2:2)') ans = 0 + 1.4142i 0 + 1.0000i

1.0000 1.4142 2、矩阵运算 (1)矩阵的乘法 已知A=[1 2;3 4]; B=[5 5;7 8]; 求A^2*B 解:A=[1 2;3 4 ]; B=[5 5;7 8 ]; A^2*B (2)矩阵除法 已知A=[1 2 3;4 5 6;7 8 9]; B=[1 0 0;0 2 0;0 0 3]; A\B,A/B 解:A=[1 2 3;4 5 6;7 8 9 ]; B=[1 0 0;0 2 0;0 0 3 ]; A\B,A/B (3)矩阵的转置及共轭转置

MATLAB实验题目及答案

实验二一维二维数组的创建和寻访 一、实验目的 1、掌握一维数组、二维数组创建和寻访的几种方法。 2、区别数组运算和矩阵运算的差别。 3、熟悉执行数组运算的常用数组操作函数。 4、掌握数组运算中的关系和逻辑操作及常用的关系、逻辑函数。 5、掌握“非数”、“空”数组在MA TLAB中的应用。 二、实验主要仪器与设备 装配有MA TLAB7.6软件的计算机 三、预习要求 做实验前必须认真复习第三章MATLAB的数值数组及向量化运算功能。 四、实验内容及实验步骤 1、一维数组的创建方法有哪几种?举例说明。 答:一维数组的创建方法有: ①递增/递减型一维数组的创建:冒号生成法:x=a:inc:b 线性(或对数)定点法:x=linspace(a,b,n),x=logspace(a,b,n) ②逐个元素输入法:如x=[0.1,sin(pi/5),-exp(-3),-2*pi] ③运用MA TLAB函数生成法:例ones,rand等。 2、输入以下指令,并写出运行结果。本例演示:数组元素及子数组的各种标识和寻访格式;冒号的使用;end的作用。 A=zeros(2,6) %创建(2×6)的全零数组 A(:)=1:12 %赋值号左边:单下标寻访(2×6) 数组A的全部12个元素 %赋值号右边:拥有12个元素的一维数组 A(2,4) %双下标:A数组的第2行第4列元素 A(8) %单下标:数组A的第8个元素 A(: , [1,3]) %双下标:显示A的“第1列和第3列上全部行的元素” A([1, 2, 5, 6]') %单下标:把A数组第1,2,5,6个元素排成列向量 A(: , 4:end) %双下标:显示A的“从第4起到最后一列上全部行的元素” %在此end用于“列标识”,它表示“最后一列” A(2,1:2:5)=[-1, -3, -5] %把右边的3个数分别赋向A数组第2行的第1,3,5个元素位置 B=A([1, 2, 2, 2], [1, 3, 5]) %取A数组的1,3,5列的第1行元素作为B的第1行 %取A数组的1,3,5列的第2行分别作为B的第2,3,4行 L=A<3 %产生与A维数相同的“0,1”逻辑数组 A(L)=NaN %把逻辑1标识的位置上的元素赋为“非数” 运行结果: A = 0 0 0 0 0 0 0 0 0 0 0 0

浅析Matlab数学实验报告

数学实验报告 姓名: 班级: 学号: 第一次实验任务 过程: a=1+3i; b=2-i; 结果: a+b =3.0000 + 2.0000i a-b =-1.0000 + 4.0000i a*b = 5.0000 + 5.0000i a/b = -0.2000 + 1.4000i 过程: x=-4.5*pi/180; y=7.6*pi/180; 结果: sin(abs(x)+y)/sqrt(cos(abs(x+y))) =0.2098 心得:对于matlab 中的角度计算应转为弧度。 (1)过程: x=0:0.01:2*pi; y1=sin(x); y2=cos(x); y3=exp(x); y4=log(x); plot(x,y1,x,y2,x,y3,x,y4) plot(x,y1,x,y2,x,y3,x,y4) 结果: (2)过程:>> subplot(2,2,1) >> plot(x,y1) >> subplot(2,2,2) >> plot(x,y2) ./,,,,2,311b a b a b a b a i b i a ?-+-=+=计算、设有两个复数 6,7,5.4)

cos()sin(2=-=++y x y x y x ,其中、计算的图形。 下分别绘制)同一页面四个坐标系)同一坐标系下(、在( x y e y x y x y x ln ,,cos ,sin 213==== >> subplot(2,2,3) >> plot(x,y3) >> subplot(2.2.4) >> subplot(2,2,4) >> plot(x,y4) 结果: 心得:在matlab中,用subplot能够实现在同一页面输出多个坐标系的图像,应注意将它与hold on进行区别,后者为在同一坐标系中划出多条曲线。 5、随机生成一个3x3矩阵A及3x2矩阵B,计算(1)AB,(2)对B中每个元素平方后得到的矩阵C,(3)sinB,(4)A的行列式,(5)判断A是否可逆,若可逆,计算A的逆矩阵,(6)解矩阵方程AX=B,(7)矩阵A中第二行元素加1,其余元素不变,得到矩阵D,计算D。 过程:A=fix(rand(3,3).*10) ; B=fix(rand(3,3).*10);

matlab与数学实验大作业

《数学实验与MATLAB》 ——综合实验报告 实验名称:不同温度下PDLC薄膜的通透性 与驱动电压的具体关系式的研究学院:计算机与通信工程学院 专业班级: 姓名: 学号: 同组同学: 2014年 6月10日

一、问题引入 聚合物分散液晶(PDLC)是将低分子液晶与预聚物Kuer UV65胶相混合,在一定条件下经聚合反应,形成微米级的液晶微滴均匀地分散在高分子网络中,再利用液晶分子的介电各向异性获得具有电光响应特性的材料,它主要工作在散射态和透明态之间并具有一定的灰度。聚合物分散液晶膜是将液晶和聚合物结合得到的一种综合性能优异的膜材料。该膜材料能够通过驱动电压来控制其通透性,可以用来制作PDLC型液晶显示器等,具有较大的应用范围。已知PDLC薄膜在相同光强度及驱动电压下,不用的温度对应于不同的通透性,不同温度下的阀值电压也不相同。为了尽量得到不同通透性的PDLC薄膜,有必要进行温度对PDLC薄膜的特性的影响的研究。现有不同温度下PDLC 薄膜透过率与驱动电压的一系列数据,试得出不同温度下PDLC薄膜通透性与驱动电压的具体关系式,使得可以迅速得出在不同温度下一定通透性对应的驱动电压。 二、问题分析 想要得到不同温度下PDLC薄膜通透性与驱动电压的具体关系式可以运用MATLAB多项式农合找出最佳函数式,而运用MATLAB多项式插值可以得出在不同温度下一定通透性所对应的驱动电压。 三、实验数据 选择10、20、30摄氏度三个不同温度,其他条件一致。

(1)、10摄氏度 实验程序: x=2:2:40; y=[5.2,5.4,5.8,6.4,7.2,8.2,9.4,10.8,12.2,14.0,16.6,22.0, 30.4,39.8,51.3,55.0,57.5,58.8,59.6,60.2]; p3=polyfit(x,y,3); p5=polyfit(x,y,5); p7=polyfit(x,y,7); disp('三次拟合函数'),f3=poly2str(p3,'x') disp('五次拟合函数'),f5=poly2str(p5,'x') disp('七次拟合函数'),f7=poly2str(p7,'x') x1=0:1:40; y3=polyval(p3,x1); y5=polyval(p5,x1); y7=polyval(p7,x1); plot(x,y,'rp',x1,y3,'--',x1,y5,'k-.',x1,y7); legend('拟合点','三次拟合','五次拟合','七次拟合') 实验结果:

Matlab实验指导书(含答案)汇总

实验一:Matlab操作环境熟悉 一、实验目的 1.初步了解Matlab操作环境。 2.学习使用图形函数计算器命令funtool及其环境。 二、实验内容 熟悉Matlab操作环境,认识命令窗口、内存工作区窗口、历史命令窗口;学会使用format命令调整命令窗口的数据显示格式;学会使用变量和矩阵的输入,并进行简单的计算;学会使用who和whos命令查看内存变量信息;学会使用图形函数计算器funtool,并进行下列计算: 1.单函数运算操作。 求下列函数的符号导数 (1) y=sin(x); (2) y=(1+x)^3*(2-x); 求下列函数的符号积分 (1) y=cos(x); (2) y=1/(1+x^2); (3) y=1/sqrt(1-x^2); (4) y=(x-1)/(x+1)/(x+2); 求反函数 (1) y=(x-1)/(2*x+3); (2) y=exp(x); (3) y=log(x+sqrt(1+x^2)); 代数式的化简 (1) (x+1)*(x-1)*(x-2)/(x-3)/(x-4); (2) sin(x)^2+cos(x)^2; (3) x+sin(x)+2*x-3*cos(x)+4*x*sin(x); 2.函数与参数的运算操作。 从y=x^2通过参数的选择去观察下列函数的图形变化 (1) y1=(x+1)^2 (2) y2=(x+2)^2 (3) y3=2*x^2 (4) y4=x^2+2 (5) y5=x^4 (6) y6=x^2/2 3.两个函数之间的操作 求和 (1) sin(x)+cos(x) (2) 1+x+x^2+x^3+x^4+x^5 乘积 (1) exp(-x)*sin(x)

南邮MATLAB数学实验答案(全)

第一次练习 教学要求:熟练掌握Matlab 软件的基本命令和操作,会作二维、三维几何图形,能够用Matlab 软件解决微积分、线性代数与解析几何中的计算问题。 补充命令 vpa(x,n) 显示x 的n 位有效数字,教材102页 fplot(‘f(x)’,[a,b]) 函数作图命令,画出f(x)在区间[a,b]上的图形 在下面的题目中m 为你的学号的后3位(1-9班)或4位(10班以上) 1.1 计算30sin lim x mx mx x →-与3 sin lim x mx mx x →∞- syms x limit((902*x-sin(902*x))/x^3) ans = 366935404/3 limit((902*x-sin(902*x))/x^3,inf) ans = 0 1.2 cos 1000 x mx y e =,求''y syms x diff(exp(x)*cos(902*x/1000),2) ans = (46599*cos((451*x)/500)*exp(x))/250000 - (451*sin((451*x)/500)*exp(x))/250 1.3 计算 22 11 00 x y e dxdy +?? dblquad(@(x,y) exp(x.^2+y.^2),0,1,0,1) ans = 2.1394 1.4 计算4 2 2 4x dx m x +? syms x int(x^4/(902^2+4*x^2)) ans = (91733851*atan(x/451))/4 - (203401*x)/4 + x^3/12 1.5 (10)cos ,x y e mx y =求 syms x diff(exp(x)*cos(902*x),10) ans = -356485076957717053044344387763*cos(902*x)*exp(x)-3952323024277642494822005884*sin(902*x)*exp(x) 1.6 0x =的泰勒展式(最高次幂为4).

MATLAB上机实验(答案)

MATLAB工具软件实验(1) (1)生成一个4×4的随机矩阵,求该矩阵的特征值和特征向量。程序: A=rand(4) [L,D]=eig(A) 结果: A = 0.9501 0.8913 0.8214 0.9218 0.2311 0.7621 0.4447 0.7382 0.6068 0.4565 0.6154 0.1763 0.4860 0.0185 0.7919 0.4057 L = -0.7412 -0.2729 - 0.1338i -0.2729 + 0.1338i -0.5413 -0.3955 -0.2609 - 0.4421i -0.2609 + 0.4421i 0.5416 -0.4062 -0.0833 + 0.4672i -0.0833 - 0.4672i 0.4276 -0.3595 0.6472 0.6472 -0.4804 D = 2.3230 0 0 0 0 0.0914 + 0.4586i 0 0 0 0 0.0914 - 0.4586i 0 0 0 0 0.2275 (2)给出一系列的a值,采用函数 22 22 1 25 x y a a += - 画一组椭圆。 程序: a=0.5:0.5:4.5; % a的绝对值不能大于5 t=[0:pi/50:2*pi]'; % 用参数t表示椭圆方程 X=cos(t)*a; Y=sin(t)*sqrt(25-a.^2); plot(X,Y) 结果: (3)X=[9,2,-3,-6,7,-2,1,7,4,-6,8,4,0,-2], (a)写出计算其负元素个数的程序。程序: X=[9,2,-3,-6,7,-2,1,7,4,-6,8,4,0,-2]; L=X<0; A=sum(L) 结果: A =

河南城建学院MATLAB上机实验答案

一熟悉Matlab工作环境 1、熟悉Matlab的5个基本窗口 思考题: (1)变量如何声明,变量名须遵守什么规则、是否区分大小写。 答:变量一般不需事先对变量的数据类型进行声明,系统会依据变量被赋值的类型自动进行类型识别,也就是说变量可以直接赋值而不用提前声明。变量名要遵守以下几条规则:?变量名必须以字母开头,只能由字母、数字或下划线组成。 ?变量名区分大小写。 ?变量名不能超过63个字符。 ?关键字不能作为变量名。 ?最好不要用特殊常量作为变量名。 (2)试说明分号、逗号、冒号的用法。 分号:分隔不想显示计算结果的各语句;矩阵行与行的分隔符。 逗号:分隔欲显示计算结果的各语句;变量分隔符;矩阵一行中各元素间的分隔符。 冒号:用于生成一维数值数组;表示一维数组的全部元素或多维数组某一维的全部元素。 (3)linspace()称为“线性等分”函数,说明它的用法。 LINSPACE Linearly spaced vector. 线性等分函数 LINSPACE(X1, X2) generates a row vector of 100 linearly equally spaced points between X1 and X2. 以X1为首元素,X2为末元素平均生成100个元素的行向量。 LINSPACE(X1, X2, N) generates N points between X1 and X2. For N < 2, LINSPACE returns X2. 以X1为首元素,X2为末元素平均生成n个元素的行向量。如果n<2,返回X2。 Class support for inputs X1,X2: float: double, single 数据类型:单精度、双精度浮点型。 (4)说明函数ones()、zeros()、eye()的用法。 ones()生成全1矩阵。 zeros()生成全0矩阵。 eye()生成单位矩阵。 2、Matlab的数值显示格式

MATLAB实验上机易错题汇总

1、完成下列操作:(1) 求[100,999]之间能被21整除的数的个数。(2) 建立一个字符串向 量,删除其中的大写字母。 (1) m=100:999; n=find(mod(m,21)==0); length(n) ans = 43 (2)>> ch='Maybe One Day' p=find(ch>='A'&ch<='Z') ch(p)=[] ch = Maybe One Day 2、自行产生一个5行5列的数组,分别得到最中间的三行三列矩阵、右下角2行2列矩阵, 奇数行矩阵、奇数列矩阵、奇数行奇数列矩阵。 >> t=rand(5)%生成矩阵 A=t(2:4,2:4)%中间三行散列矩阵 B=t(4:5,4:5)%右下角两行两列矩阵 C=t(1:2:end,:)%奇数行矩阵 D=t(:,1:2:end)%奇数列矩阵 E=t(1:2:end,1:2:end)%奇数行列矩阵 3、求方程组的根 syms x y z [X Y Z]=solve('x+4*y-3*z=2','2*x+5*y-z=11','x+6*y+z=12',x,y,z) 4、已知矩阵A=[1 2;3 4],运行指令B1=A.^(0.5), B2=A^(0.5), 可以观察到不同运算方法所得结果不同。(1)请分别写出根据B1, B2恢复原矩阵A的程序。(2)用指令检验所得的两个恢复矩阵是否相等(利用norm(…,’fro’)指令,误差矩阵F-范数,接近eps量级,认为实际相等)。 5、先运行clear,format long,rng('default'),A=rand(3,3),然后根据A写出两个矩阵:一个对角 阵B,其相应元素由A的对角元素构成;另一个矩阵C,其对角元素全为0,而其余元素与对应的A阵元素相同(diag指令的使用)。 >> format long >> rand('twister',1) >> A=rand(3,3) A = 0.417022004702574 0.302332572631840 0.186260211377671

labview与matlab接口的方法

LabVIEW与Matlab接口的方法 The Method of Interfacing Between LabVIEW and Matlab 陈金平 (新疆大学,乌鲁木齐 830008) 0 引言 虚拟仪器技术是计算机技术、现代测控技术和电子仪器技术相互结合、渗透的产物。在虚拟仪器系统中,数据的分析处理、控制、结果输出和用户界面等功能都由软件完成,硬件仅仅是为了解决信号的输入输出,因此,软件是整个仪器系统的核心,从某种意义上可以说:“软件即仪器”。虚拟仪器系统的软件设计可以采用通用的可视化编程语言,如Visual C++、Visual Basic、Delphi等,但更为方便高效的还是专用的虚拟仪器软件开发平台,如美国国家仪器公司(National Instruments,NI)的Lab2 VIEW、LabW indows/C VI,惠普公司的VEE等,而其中首推NI公司的图形化编程语言LabVIEW。 1 LabVIEW的功能及特点 LabVIEW是NI公司推出的一种虚拟仪器软件开发平台,自1986年正式推出,经过短短不到15年的时间,已经发展到以最新板本LabVIEW611为核心,包括控制与仿真、高级数字信号处理、统计过程控制、模糊控制和PID控制等众多附加软件包,运行于W indows NT/98、Linux、M acintosh、Sun和HP-UX等多种平台的工业标准软件开发环境。 LabVIEW在包括航空航天、通信、汽车、半导体和生物医学等众多领域内得到了广泛的应用。其最大的特色是采用编译型图形化编程语言———G语言(G raph2 Pro gramm ing),即用户设计好程序的大体框架后,如同画流程图一般,只需将系统提供的各种图形化功能模块连接起来,就可得到所需的应用软件。LabVIEW中的程序称为VI(virtual instruments),每个VI都由前面板和框图程序以及图标/连接端口三部分组成。 除了具备其它编程语言所提供的常规函数功能外,LabVIEW内部还集成了大量的生成图形界面的模板,如各种表头、旋钮、开关、LE D指示灯、图表等;丰富实用的数值分析、信号处理功能,如FFT变换、各种滤波器、信号发生器等;以及对RS-232、G PI B、VXI、数据采集板卡、网络等多种硬件的设备驱动功能,并免费提供数十家世界知名仪器厂商的几百种源码级仪器驱动,大大方便和简化了用户的设计开发工作。Lab2 VIEW使得过去繁琐、枯燥的软件开发变得简单、方便,尤其适合不熟悉传统文本编程语言(如C、BASIC等)的工程技术人员,被誉为工程师和科学家的语言。 但是,在大型的系统测试和仿真过程中,需要软件进行一些很复杂的数值计算时,LabVIEW的图形化编程语言就显得力不从心,M atlab是一种常用的高效率数学运算工具,它建立在向量、数组和复数矩阵的基础上,使用方便,将它和LabVIEW有机地结合起来会大大减少编程的工作量,提高编程效率。本文通过求解一常微分方程初值问题的例子,介绍了两种编程语言的接口方法。 2 在LabVIEW中调用Matlab语言的方法在测试系统设计和软件开发过程中,数学分析与信号处理是两个不可缺少的重要内容。LabVIEW将数据采集和测试分析中常用的数学和信号分析算法程序集成在一起,提供了先进的数学和信号分析环境,所有的数学分析节点都集中在M athematics子模板中。在此模板中有一M atlab Script节点,利用此节点就可以实现在LabVIEW中对M atlab语言的调用。下面通过具体例子介绍调用方法。举例如下: 用Runge2K utta法计算下列微分方程的解(初值问题): y′=-50y+50x2+2x , 0≤x≤1 y(0)=1 2.1 编制M文件 启动M atlab610,利用其M文件编辑器编写M文件如下: function y=ff2(x,y) y=-50?y+50?x?x+2?x; 35 LabVIEW与M atlab接口的方法 陈金平

相关文档
相关文档 最新文档