matlab程序大全Word格式.docx

上传人:b****4 文档编号:16949918 上传时间:2022-11-27 格式:DOCX 页数:25 大小:143.86KB
下载 相关 举报
matlab程序大全Word格式.docx_第1页
第1页 / 共25页
matlab程序大全Word格式.docx_第2页
第2页 / 共25页
matlab程序大全Word格式.docx_第3页
第3页 / 共25页
matlab程序大全Word格式.docx_第4页
第4页 / 共25页
matlab程序大全Word格式.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

matlab程序大全Word格式.docx

《matlab程序大全Word格式.docx》由会员分享,可在线阅读,更多相关《matlab程序大全Word格式.docx(25页珍藏版)》请在冰豆网上搜索。

matlab程序大全Word格式.docx

(1)绘制系统的Bode图和nyquist图;

(2)求系统的幅值裕度和相位裕度;

A=[1,-1;

1,3];

B=[1,0]'

;

C=[1,1];

D=0;

sys=ss(A,B,C,D)

figure

(1),bode(sys),grid

figure

(2),nyquist(sys,w)

7已知单位负反馈系统的开环传递函数为

,试绘制系统的单位阶跃响应、开环Bode图和Nyquist曲线,并求系统的幅值裕度和相位裕度。

sys=zpk(-1,[00-1],1)

sys1=feedback(sys,1,-1)

figure(3)

step(sys1)

nyquist(sys),grid

编写程序题

1编写两个m文件,分别使用for和while循环语句计算

y=0;

fork=1:

200

y=y+k^3;

end

y

k=1;

whilek<

=200

k=k+1;

2一个三位整数各位数字的立方和等于该数本身则称该数为水仙花数,编写M文件,输出全部水仙花数。

form=100:

999

m1=fix(m/100);

m2=fix((m-100*m1)/10);

m3=fix(m-100*m1-10*m2);

ifm==m1^3+m2^3+m3^3

disp(m)

end

3编写M文件,实现以下功能:

从键盘输入若干个数,当输入0时结束输入,求这些数的平均值和它们之和。

4编写M脚本文件,使得运行该文件后能求出[100,200]之间第一个能被21整除的整数。

fori=100:

ifmod(i,21)==0

break

end

i

5先编写一个函数文件,文件名为tran,使得该函数文件实现直角坐标(x,y)与极坐标(ρ,θ)之间的转换。

然后编写脚本文件,文件名为main1,在脚本文件中实现如下功能:

要求用户从键盘输入直角坐标X和Y,调用函数文件实现直角坐标到极坐标的转换,输出极坐标的值。

tran.m:

function[rho,theta]=tran(x,y)

rho=sqrt(x*x+y*y);

theta=atan(y/x);

main1.m:

x=input('

Pleaseinputx=:

'

y=input('

Pleaseinputy=:

[rho,theta]=tran(x,y);

rho

theta

6猜数游戏。

首先由计算机产生[1,100]之间的随机整数,然后由用户猜测所产生的随机数。

根据用户猜测的情况给出不同提示,如猜测的数大于产生的数,则显示“High”,小于则显示“Low”,等于则显示“Youwon”,同时退出游戏。

用户最多可以猜7次。

x=fix(100*rand

(1));

i=1

whilei<

=7

ifx==y

disp('

Youwon'

break;

elseifx>

Low'

elsedisp('

High'

i=i+1;

7编写M脚本文件,分别使用for和while循环语句计算

的值,并且显示出sum的结果。

sum=0;

fori=1:

10

sum=sum+i^i;

sum

sum=0;

=10

i=i+1;

8用筛选法求某自然数范围内的全部素数。

素数是大于1,且除了1和它本身以外,不能被其他任何整数所整除的整数。

用筛选法求素数的基本思想是:

要找出2~m之间的全部素数,首先在2~m中划去2的倍数(不包括2),然后划去3的倍数(不包括3),由于4已被划去,再找5的倍数(不包括5),…,直到再划去不超过的数的倍数,剩下的数都是素数。

functiony=sushu(x)

y=2:

x;

n=2:

forj=2:

m=j*n;

y=setdiff(y,m);

9已知

,当n=100时,求y的值。

y=0;

n=100;

n

y=y+(1/(2*k-1));

10利用for循环计算1!

+2!

+3!

+…..+20!

的值。

20

y=1;

forn=1:

y=y*n;

sum=sum+y;

11用while循环来实现求1+2+……+100的值。

n=1;

whilen<

=100

y=y+n;

n=n+1;

12编一函数计算以下分段函数值。

functiony=f(x);

ifx<

y=x;

=0&

x<

1

y=2*x^2+1;

elsey=3*x^3+2*x^2+1;

13我国新税法规定:

个体工商户的生产、经营所得和对企事业单位的承包经营、承租经营所得应缴纳的个人所得税为

全年收入中应缴纳所得税部分税率/%

(1)不超过5000元的5

(2)超过5000元至10000元的部分10

(3)超过10000元至30000元的部分20

(4)超过30000元至50000元的部分30

(5)超过50000元的部分35

试编程加以计算。

x='

=5000

y=0.05*x;

5000&

=10000

y=0.1*x;

10000&

=30000

y=0.2*x;

30000&

=50000

y=0.3*x;

elsey=0.35*x;

14矩阵乘法运算要求两矩阵的维数相容,否则会出错。

设两个矩阵为A=[1,2;

5,6];

B=[7,9;

20,11];

先求两矩阵的乘积,若出错,则自动转去求两矩阵的点乘。

A=[1,2;

5,6];

B=[7,9;

20,11];

try

C=A*B;

catch

C=A.*B;

C

15编制M脚本文件,要求从键盘逐个输入数值(input),然后判断输入的数是大于0还是小于0,并输出提示(使用disp命令)是正数(positiveone)还是负数(negativeone),同时记录输入的正数、负数的个数。

当输入0时,终止此M文件的运行(使用break命令);

当输入第10个数字时,显示记录的正、负数个数并终止程序。

i=0;

j=0;

forn=1:

x=input('

Thenumis:

ifx>

positiveone'

elseifx<

j=j+1;

negativeone'

elsebreak

i,j

16一个三位整数各位数字的立方和等于该数本身则称该数为水仙花数,编写M文件,输出全部水仙花数。

17编写M文件,实现以下功能:

cnt=0;

whilex~=0

sum=sum+x;

cnt=cnt+1;

ifcnt>

average=sum/cnt;

sum,average

18一数组的元素满足规则:

a

(1)=a

(2)=1,a(3)=a

(1)+a

(2),a(4)=a

(2)+a(3),…依次类推,求该数组中第一个大于10000的元素。

a

(1)=1;

a

(2)=1;

i=1;

whilea(i)<

a(i+2)=a(i+1)+a(i);

a(i)

19某商场对顾客所购买的商品实行打折销售,标准如下(商品价格用price来表示):

price<

200没有折扣

200≤price<

5003%折扣

500≤price<

10005%折扣

1000≤price<

25008%折扣

2500≤price<

500010%折扣

5000≤price14%折扣

请编写程序,使得当从计算机输入所售商品的打折前价格后,能输出其实际销售价格。

=200&

500

y=0.97*x;

=500&

1000

y=0.95*x;

=1000&

2500

y=0.92*x;

=2500&

5000

y=0.9*x;

elsey=0.86*x;

20编写M脚本文件,分别使用for和while循环语句计算

21已知

22编写函数文件使其实现如下功能:

当在命令窗口输入数字后,根据输入参数的个数决定输出的结果;

当没有参数输入时,显示“无输入参数”;

当有一个参数时,则以该参数为边绘制正方形;

当有两个参数时,则以两个参数为长和宽绘制矩形。

functiony=H(varargin)%varargin表示可变的参数

ifnargin==0

无输入参数'

elseifnargin==1

r=varargin{1};

rectangle('

position'

[00rr])%表示从(0,0)点开始画宽为R,高为R的矩形

elsenargin==2

r1=varargin{1};

r2=varargin{2};

rectangle('

[00r1r2])

23编制M脚本文件,要求从键盘逐个输入数值(input),然后判断输入的数是大于0还是小于0,并输出提示(使用disp命令)是正数(positiveone)还是负数(negativeone),同时记录输入的正数、负数的个数。

forx=1:

n=input('

ifn<

elseifn>

positionone'

j

24若一个数等于它的各个真因子之和,则称该数为完数,如6=1+2+3,所以6是完数。

求[1,500]之间的全部完数。

form=1:

s=0;

fork=1:

m/2

ifrem(m,k)==0

s=s+k;

ifm==s

25今有多项式P1(x)=x^4-2x+1,P2(x)=x^2+4x-0.5,要求先求得P(x)=P1(x)+P2(x),然后计算xi=0.2*i各点上的P(xi)(i=0,1,2,…,5)值。

A=[100-21];

B=[0014-0.5];

C=A+B

i=0:

5;

xi=0.2*i;

y=polyval(C,xi)

26试编一个m程序,将一维数组x中的N个数按颠倒的次序重新存储。

要求运行程序后,在命令窗口提示“请用[]输入一个一维数组;

”,输入完毕后若回车,就能在输出窗口显示刚才所输入的数组的颠倒次序。

(如N=5,原来x为:

x=[13579]

而经过颠倒处理后x中数据的次序应该为:

x=[97531])

请用[]输入一个一维数组:

x1=fliplr(x)

模型建立及转换题

1某系统的传递函数为

使用MATLAB求出状态空间表达式和零极点模型。

num=[1.323];

den=[10.51.21];

nsys=zpk(sys)

2求出以下系统的传递函数

A=[-1,0,1;

1,-2,0;

0,0,-3];

B=[0,0,1]'

C=[110];

D=1;

nsys=tf(sys)

3已知某系统的传递函数为:

,试用MATLAB语言求出该系统的传递函数模型、状态空间模型和零极点增益模型。

num=[12241220];

den=[24622];

sys1=zpk(sys)

sys2=ss(sys)

4已知双闭环调速系统电流环内的前向通道3个模块传递函数分别为:

试求串联连接的等效传递函数及其等效状态空间模型。

num1=[0.01281];

den1=[0.040];

num2=[30];

den2=[0.00167,1];

num3=[2.5];

den3=[0.01281];

sys1=tf(num1,den1)

sys2=tf(num2,den2)

sys3=tf(num3,den3)

sys=sys1*sys2*sys3

nsys=ss(sys)

5已知两个环节的传递函数分别为:

试求两环节并联连接等效传递函数的num与den向量及等效的状态空间模型。

num1=[1];

den1=[12];

num2=[21];

den2=[112];

sys=sys1+sys2

[num,den]=tfdata(sys,'

v'

6将传递函数模型

转换为状态空间模型和零极点模型。

num=[10];

den=[132];

7系统方程为

求出其状态空间表达式,写出A、B、C、D阵,建立其MATLAB状态空间模型,然后绘制其单位阶跃响应曲线。

A=[010;

001;

-16-11-6];

B=[006]'

C=[100];

step(sys)

8设有一质量弹簧阻尼系统,如下图所示。

F(t)为输入的外力,y(t)为质量块的位移,弹簧的弹性系数为k,阻尼器的阻尼系数为f。

系统的动态方程组为:

求出其状态空间表达式,写出A、B、C、D阵,建立其MATLAB状态空间模型,然后绘制其单位阶跃响应曲线(只要写出MATLAB语句即可)。

 

A=[01;

-k/m-f/m];

B=[0F(t)/m];

C=[10];

sys=ss[A,B,C,D]

9对下图中所示系统进行建模、模型转换及仿真:

⑴用MATLAB语言表示图示系统的模型,并给出传递函数、零极点和状态空间三种模型的具体表达。

num1=[10.5];

den1=[10.1];

z=[];

p=[0-2-10];

k=[20];

sys2=zpk(z,p,k)

sys3=sys1*sys2

sys=feedback(sys3,1,-1)

nsys1=tf(sys)

nsys2=ss(sys)

⑵用MATLAB语言画出系统单位阶跃响应的波形。

10对图中所示的质量—弹簧—阻尼机械系统,系统的动力学方程为:

其中,m=5kg,k=2N/m,c=0.1N/m.s

,建立其MATLAB状态空间模型,写出A、B、C、D阵,然后绘制其单位阶跃响应曲线。

A=[0,1;

-2/5,-0.1/5];

B=[0,2/5]'

C=[1,0];

11求下面系统在阶跃信号为0.11(t)时系统的响应。

并求系统性能指标:

稳态值、上升时间、调节时间、超调量

num=[20];

den=[18364020];

final=polyval(num,0)/polyval(den,0)

[y,t]=step(sys)

[yp,k]=max(y)

tp=t(k)

chaotiao=100*(yp-final)/final

whiley(n)<

final

risetime=t(n)

i=length(t);

while(y(i)>

0.98*final&

y(i)<

1.02*final)

i=i-1;

ts=t(i)

step(0.1*sys)

12已知系统传递函数

,绘制系统阶跃响应曲线;

绘出离散化系统阶跃响应曲线,采样周期

num=[1];

den=[10.21.01];

sys1=tf(num,den)

sys2=tf(num,den,0.3)

step(sys2)

数值计算类题目

1求解以下线性代数方程:

A=[1,0,2;

1,1,3;

3,1,2];

B=[2,1,1]'

X=inv(A)*B

2已知矩阵

试分别求出A阵和B阵的秩、转置、行列式、逆矩阵以及特征值。

A=[013;

121;

542];

B=[218;

414;

332];

A1=rank(A)

B1=rank(B)

A2=A.'

B2=B.'

A3=det(A)

B3=det(B)

A4=inv(A)

B4=inv(B)

A5=eig(A)

B5=eig(B)

3已知矩阵

在Command窗口中分别求出

矩阵为

中每个元素平方组成的矩阵、

阵乘以

阵、

阵和

阵数组乘积(即:

对应元素分别相乘的积构成的矩阵)。

C=A^2

D=A.^2

E=A*B

F=A.*B

4求复数矩阵

的转置C1与共轭转置C2。

A=[157;

634];

B=[3-13;

22-3];

C=A+B*i

C1=C.'

C2=C'

5假设a、b、c和d的定义如下:

分别写出下列表达式的运算结果。

(1)a*b

(2)a*c

(3)a.*d

(4)a*d

ans=

-12

-25

3

8

50

105

6求解由下面四个方程组成的方程组。

A=[2-312;

1301;

1-118;

71-22];

B=[8675]'

C=inv(A)*B

7求解由下面四个方程组成的方程组。

B=[1723951]'

8已知某班的5名学生的三门课成绩列表如下:

学生序号12345

高等数学7889647368

外语8377807870

MATLAB语言8291788268

试写出有关命令,先分别找出三门课的最高分及其学生序号;

然后找出三门课总分的最高分及其学生序号。

A=[7889647368;

8377807870;

829178

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 中医中药

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1