Matlab实验三答案

合集下载

matlab上机实验答案-整理版

matlab上机实验答案-整理版

第一次实验答案1. 设要求以0.01秒为间隔,求出y 的151个点,并求出其导数的值和曲线。

clcclearx=0:0.01:1.5;y=sqrt(3)/2*exp(-4*x).*sin(4*sqrt(3)*x+pi/3)y1=diff(y)subplot(2,1,1)plot(x,y)subplot(2,1,2)plot(x(1:150),y1)2绘制极坐标系下曲线(a,b,n 自定数据)clccleara=10;b=pi/2;n=5;theta=0:pi/100:2*pi;rho=a*cos(b+n*theta);polar(theta,rho)3. 列出求下列空间曲面交线的程序clcclearx=[-5:0.5:5];[X,Y]=meshgrid(x);z1=X.^2-2*Y.^2;z2=X.*2-Y.*3;xlabel('x')ylabel('y')zlabel('z')surf(X,Y,z1)hold onsurf(X,Y,z2)k=find(abs(z1-z2)<0.5);x1=X(k)y1=Y(k)z3=x1.^2-2*y1.^2hold onplot3(x1,y1,z3,'*')⎪⎭⎫ ⎝⎛+⋅=-334sin 234πt e y t ()θρn b a +=cos 2212y x z -=y x z 322-=4、设 ⎥⎦⎤⎢⎣⎡++=)1(sin 35.0cos 2x x x y 把x=0~2π间分为101点,画出以x 为横坐标,y 为纵坐标的曲线,要求有图形标注。

clcclearx=-2*pi:0.1: 2*pi;y=cos(x).*(0.5+sin(x)*3./(1+x.^2));plot(x,y,'b*-');title('绘图');xlabel('x 坐标');ylabel('y 坐标');legend('原函数')gtext('y=cos(x)(0.5+3*sin(x)/(1+x^2))')5、求下列联立方程的解81025695832475412743-=+-+-=-+-=++-=--+w z y x w z x w z y x w z y x clccleara=[3,4,-7,-12;5,-7,4,2;1,0,8,-5;-6,5,-2,10];b=[4,-3,9,-8];c=b/a;x=c(1,1)y=c(1,2)z=c(1,3)w=c(1,4)6. 假设一曲线数据点为x = 0:2:4*pi;y = sin(x).*exp(-x/5);试将x 的间距调成 0.1,采用不同插值方法进行插值,并通过子图的形式将不同插值结果和原始数据点绘制在同一图形窗口。

Matlab实验三 绘制根轨迹

Matlab实验三 绘制根轨迹
Matlab
for
Principles of Automatic Control
实验三 绘制根轨迹 1: 绘制根轨迹 2: 参量分析
① 绘制根轨迹 rlocus(sys)
Gk
(s)
K *(s 1) (s 2)(s 3)
rlocus(num, den)
rlocus(sys,k)
②参量分析(根轨迹图上一顿乱点即可)
K1
(s a )nm
1
根轨迹渐进线的方程是新的根轨迹方程。
Байду номын сангаас
• 例: 绘制根轨迹及其渐近线
G(s)
K1
s(s 1)(s 2)
⑥讨论增加零点对根轨迹的影响 试试-2至-4之间的零点
G(s)
K1
s(s 1)(s 2)
r=rlocus(sys)
Gk
(s)
K *(s 1) (s 2)(s 3)
r=rlocus(num, den)
[r,k]=rlocus(sys)
[r,k]=rlocus(num, den)
③测量出根轨迹增益和对应闭环极点坐标,
在窗口显示
Gk
(s)
K *(s 1) (s 2)(s 3)
[k,poles] = rlocfind(sys)
[k,poles] = rlocfind(sys,p) P为已知的要研究的闭环极点。
④绘制零、极点以及在窗口显示零极点
pzmap(sys)
Gk
(s)
K *(s 1) (s 2)(s 3)
[p,z]=pzmap(sys) 求解零极点的好方法
⑤绘制根轨迹渐近线
一般人我不告诉他:
当根轨迹渐进线与实轴的交点已求出后, 可得到方程,这是根轨迹渐进线的方程。

matlab实验指导答案详解(非常详细正确)

matlab实验指导答案详解(非常详细正确)

实验一 MATLAB 工作环境熟悉及简单命令的执行一、实验目的:熟悉MATLAB 的工作环境,学会使用MATLAB 进行一些简单的运算。

二、实验内容:MATLAB 的启动和退出,熟悉MATLAB 的桌面(Desktop ),包括菜单(Menu )、工具条 (Toolbar )、命令窗口(Command Window)、历史命令窗口、工作空间(Workspace)等;完成一些基本的矩阵操作;学习使用在线帮助系统。

三、实验步骤:1、启动MATLAB ,熟悉MATLAB 的桌面。

2、在命令窗口执行命令完成以下运算,观察workspace 的变化,记录运算结果。

(1)(365-52⨯2-70)÷3 >>(365-52*2-70)/3 ans = 63.6667(2)>>area=pi*2.5^2 area = 19.6350(3)已知x=3,y=4,在MATLAB 中求z :()232y x y x z -= >>x=3 >>y=4>>z = x ^2 * y ^3 / (x - y) ^2 z = 576(4)将下面的矩阵赋值给变量m1,在workspace 中察看m1在内存中占用的字节数。

m1=⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡11514412679810115133216 执行以下命令>>m1 =[16 2 3 13 ; 5 11 10 8 ; 9 7 6 12 ; 4 14 15 1 ] >>m1( 2 , 3 ) ans = 10 >>m1( 11 ) ans = 6>>m1( : , 3 ) ans =3 10 6 15>>m1( 2 : 3 , 1 : 3 ) ans =5 11 10 9 7 6>>m1( 1 ,4 ) + m1( 2 ,3 ) + m1( 3 ,2 ) + m1( 4 ,1) ans = 34(5)执行命令>>help abs查看函数abs 的用法及用途,计算abs( 3 + 4i ) (6)执行命令>>x=0:0.1:6*pi; >>y=5*sin(x); >>plot(x,y)(6)运行MATLAB 的演示程序,>>demo ,以便对MATLAB 有一个总体了解。

MATLAB全部实验及答案

MATLAB全部实验及答案

MATLAB全部实验及答案实验一、MATLAB基本操作实验内容及步骤1、命令窗口的简单使用(1)简单矩阵的输入(2)求[12+2×(7-4)]÷32的算术运算结果2、有关向量、矩阵或数组的一些运算(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,clca=[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);endc(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 1625 26 2326 24 28a.^2=1 4 99 16 425 4 9(7)有一段指令如下,请思考并说明运行结果及其原因clearX=[1 2;8 9;3 6];X( : ) 转化为列向量(8)使用三元组方法,创建下列稀疏矩阵2 0 8 00 0 0 10 4 0 06 0 0 0方法一:clear,clcdata=[2 8 1 4 6];ir=[1 1 2 3 4 ];jc=[1 3 4 2 1];s=sparse(ir,jc,data,4,4);full(s)方法二:不用三元组法clear,clca=zeros(4,4);a(1,[1,3])=[2,8];a(2,4)=1;a(3,2)=4;a(4,1)=6;a(9) 写出下列指令的运行结果>> A = [ 1 2 3 ]; B = [ 4 5 6 ];>> C = 3.^A>> D = A.^B3、 已知⎪⎭⎫ ⎝⎛+⋅=-334sin 234πt e y t 若需要计算t ∈[-1,1],取间隔为0.01,试计算出相对应的y 值。

(完整word版)含答案《MATLAB实用教程》

(完整word版)含答案《MATLAB实用教程》

第二章 MATLAB 语言及应用实验项目实验一 MATLAB 数值计算三、实验内容与步骤1.创建矩阵⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=987654321a(1(2)用(3)用(42.矩阵的运算(1)利用矩阵除法解线性方程组。

⎪⎪⎩⎪⎪⎨⎧=+++=-+-=+++=+-12224732258232432143214321421x x x x x x x x x x x x x x x 将方程表示为AX=B ,计算X=A\B 。

(2)利用矩阵的基本运算求解矩阵方程。

已知矩阵A 和B 满足关系式A -1BA=6A+BA ,计算矩阵B 。

其中⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=7/10004/10003/1A ,Ps: format rata=[1/3 0 0;0 1/4 0;0 0 1/7];b=inv(a)*inv(inv(a)-eye(3))*6*a(3)计算矩阵的特征值和特征向量。

已知矩阵⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡--=1104152021X ,计算其特征值和特征向量。

(4)Page:322利用数学函数进行矩阵运算。

已知传递函数G(s)=1/(2s+1),计算幅频特性Lw=-20lg(1)2(2w )和相频特性Fw=-arctan(2w),w 的范围为[0.01,10],按对数均匀分布。

3.多项式的运算(1)多项式的运算。

已知表达式G(x)=(x-4)(x+5)(x 2-6x+9),展开多项式形式,并计算当x 在[0,20]内变化时G(x)的值,计算出G(x)=0的根。

Page 324(2)多项式的拟合与插值。

将多项式G(x)=x 4-5x 3-17x 2+129x-180,当x 在[0,20]多项式的值上下加上随机数的偏差构成y1,对y1进行拟合。

对G(x)和y1分别进行插值,计算在5.5处的值。

Page 325 四、思考练习题1.使用logspace 函数创建0~4π的行向量,有20个元素,查看其元素分布情况。

Ps: logspace(log10(0),log10(4*pi),20) (2) sort(c,2) %顺序排列 3.1多项式1)f(x)=2x 2+3x+5x+8用向量表示该多项式,并计算f(10)值. 2)根据多项式的根[-0.5 -3+4i -3-4i]创建多项式。

MATLAB实验三参考答案

MATLAB实验三参考答案

how =collect(x)
4、求下列函数的极限(写出命令) (1) lim
cos x e x 0 x4

x2 2
syms x; limit('(cos(x)-exp(-1/2*x^2))/(x^4)',x,0) -1/12 (2) lim
2 x ln 2 x 1 x 0 1 cos x
syms n; S=symsum(1/((3*n-2)*(3*n+1)),n,1,inf) 8、试求出函数 f ( x )
sin x 的麦克劳林幂级数展开式的前 9 项,并求出关于 x=2 x 3x 2
2
的 Taylor 幂级数展开式的前 5 项。(命令 taylor 或者 taylortool)
河南财经政法大学数学与信息科学学院 1
实验报告
结果: EXPR =(x^2+x*exp(-t)+1)*(x+exp(-t)) expr1 =x^3+2*exp(-t)*x^2+(1+exp(-t)^2)*x+exp(-t) expr2 =x*exp(-t)^2+(2*x^2+1)*exp(-t)+(x^2+1)*x 3、factor(因式分解),simple(简化运算,对表达式尝试多种不同的算法进行简化,并以最 简化形式给出,How 中记录的为简化过程中使用的方法, )指令的使用 syms a x; f1=x^4-5*x^3+x^2+5*x-6; factor(f1) x^4-5*x^3+x^2+5*x-6 f2=x^2-a^2; factor(f2) (x-a)*(x+a) f3=2*sin(x)^2-cos(x)^2 [y , how]=simple(f3) y 为 f 的最优化简形式,How 中记录的为简化过程中使用的方法 y =-3*cos(x)^2+2 how =simplify [y , how]=simple(f1) y =x^4-5*x^3+x^2+5*x-6

matlab实验3及其答案

matlab实验3及其答案
z=sin(r)./r;
mesh(z);
surface(z);
结果截图:
3.用ezplot绘制函数 和 的图像,两幅图像按照两行一列排列在同一个图形窗口中。
实验程序:subplot(211)
ezplot('abs(sin(x)^3)*cos(5*x)')
subplot(212)
ezplot('cos(3*t)','sin(5*t)')
结果截图:
4.绘制极坐标函数曲线: 和 ,两幅图像按照两行一列排列在同一个图形窗口中。。
实验程序:theta=0:0.01:2*pi;
rho1=cos(theta)+2;
subplot(211)
polar(theta,rho1);
rho2=2*(theta).^3;
subplot(212)
polar(theta,rho2);
实验三图形绘制专业 Nhomakorabea学号姓名
成绩
电气工程及其自动化
201409140305
杨诚
100
1.在同一坐标系下,用不同的颜色和线形画出下面三条曲线: , , ,其中 。
实验程序:clear;clc;
t=0:0.1:3*pi;
x=sin(t);
y=cos(3*t);
z=cos(t);
plot(t,x,'m*-.')
holdon
plot(t,y,'rs:')
plot(t,z,'kh--')
holdoff
legend('sin(t)','cos(3t)','cos(t)')

matlab实验三答案详解

matlab实验三答案详解

实验三选择结构程序设计实验内容1.程序代码function f(x)if x<0&x~=-3y=x*x+x-6;elseif x>0&x<5&x~=2&x~=3y=x*x-5.*x+6;elsey=x*x-x-1endy运行结果>> f(-7)y =36>> f(2.5)y =-0.2500>> f(90)y =80092.程序代码score=input('分数=');if score<=100&score>=0switch fix(score/10)case{9,10}grade='A';case{8}grade='B';case{7}grade='C';case{6}grade='D';otherwisegrade='E';endgradeelsedisp('输入有误,请输入正确的百分制成绩');end运行结果>> 分数=56grade =E>> f分数=345输入有误,请输入正确的百分制成绩3.程序代码time=input('工作时间=');switch timecase{time>120}wage=(time-120)*(1+15/100)*84+120*84;case{time<60}wage=time*84-700;otherwisewage=time*84end运行结果>> f工作时间=150wage =12600>> f工作时间=50wage =4200>> f工作时间=110wage =92404.程序代码A=10+90*rand(5);a=fix(A(3,3))b=fix(A(2,4))x=input('输入一个运算符号','s');switch xcase {'+'}c=a+b;case{'-'}c=a-b;case{'*'}c=a*b;case{'/'}c=a/b;otherwisec='无效'endc运行结果>> fa =55b =59输入一个运算符号+c =114>> fa =77b =14输入一个运算符号/c =5.5000>> fa =30b =58输入一个运算符号#c =无效c =无效5.程序代码A=input('输入一个5行6列的矩阵A=');n=input('输入一个正整数n=');if n<5&n>0disp(A(n,:));elsedisp(A(5,:));endlasterr运行结果>> f输入一个5行6列的矩阵A=[1 2 3 4 5 5;2 3 4 5 7 6;2 9 2 2 2 3;11 2 11 9 7 3;2 3 4 5 6 7] 输入一个正整数n=62 3 4 5 6 7ans =Undefined function or variable 'clcl'.>> f输入一个5行6列的矩阵A=[1 2 3 4 5 5;2 3 4 5 7 6;2 2 2 2 2 3;11 2 3 9 7 3;2 3 4 5 6 7]输入一个正整数n=32 2 2 2 2 3ans =Undefined function or variable 'clcl'.。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
function y=ywjz(A)
x=0;
n=numel(A);
for i=1:n
x=x+A(i);
end
v=x/n;
运行结果:
>>y=ywjz([1 2 3 4 5])
y=
3
编程2:
function y=ewjz(A)
x=0;
n=numel(A);
for i=1:n
x=x+A(i);
end
y=x/n;
if x==0
A(j)=y(i);j=j+1;
end
if x==1
B(k)=y(i);k=k+1;
end
if x==2
C(m)=y(i);m=m+1;
end
end
disp(A)
disp(B)
disp(C)
运行结果:
>> yush
3 9
7 16
5 11
7、已知一维数组A=[2,4,5,8,10]、B=[4,9,6,7,4],用for循环语句实现 。求和函数可用sum().
2、为了避免因逻辑上的失误,而陷入死循环,建议在循环体语句的适当位置加break语句、以便程序能正常执行。(执行循环体的次数不确定;每一次执行循环体后,一定会改变while后面所跟关系式的值。)
3、while循环也可以嵌套、其结构如下:
while逻辑表达式1
循环体语句1
while逻辑表达式2
循环体语句2
编程:
A=[2 4 5 8 10;];
B=[4 9 6 7 4;];
C=[];
y=0;
for i=1:5
C(i)=(A(i)*B(5-i+1));
y=y+C(i);
end
y
运行结果:
>> timu7
y =
178
8、(1)编写求解一维数组平均值的函数文件。
(2)编写求解二维数组平均值的函数文件。
编程1:
程序流程控制指令
break、return、pause
2、函数文件的结构和编写方法
函数只能在函数体内对变量进行操作,也就是只能访问函数本身工作空间中的变量。
M函数文件的结构
(1)函数定义行(function)
(2)H1行(函数帮助文本的第一行)
(3)函数帮助文本
(4)函数体
(5)注释
函数文件编写后,保存时,其文件名必须与函数名相同。注意:函数名不要与MATLAB自身的函数命令相同。
end
循环体语句3
end
if-else-end分支结构
if表达式1
语句1
else if表达式2(可选)
语句2
else(可选)
语句3
end
end
说明:1.if结构是一个条件分支语句,若满足表达式的条件,则往下执行;若不满足,则跳出if结构。
2.else if表达式2与else为可选项,这两条语句可依据具体情况取舍。
y =
1.9826e+087
y =
1.2689e+089
y =
8.2477e+090
y =
5.4434e+092
y =
3.6471e+094
y =
2.4800e+096
y =
1.7112e+098
y =
1.1979e+100
i =
70
5、编写一个乘法表(9×9)
编程:
for i=1:9
A=[];
for j=1:i;
y =
3.3453e+049
y =
1.4050e+051
y =
6.0415e+052
y =
2.6583e+054
y =
1.1962e+056
y =
5.5026e+057
y =
2.5862e+059
y =
1.2414e+061
y =
6.0828e+062
y =
3.0414e+064
y =
1.5511e+066
三、实验内容:
2、用for循环语句实现求1~100的和
编程:
sum=0;
for i=1:100
sum=sum+i;
end
sum
运行结果:
>> ljia
sum =
5050
3、用for循环语句实现编写一个求阶乘的函数文件。
编程:
function y=jcheng(n)
y=1;
for i=1:n
y=y*i;
A=[A,sprintf('%dx%d=%d ',j,i,i*j)];
end
disp(A)
end
运行结果:
>> cfb
1x1=1
1x2=2 2x2=4
1x3=3 2x3=6 3x3=9
1x4=4 2x4=8 3x4=12 4x4=16
1x5=5 2x5=10 3x5=15 4x5=20 5x5=25
运行结果:
>> y=ewjz([2 3;4 5;6 7;])
y =
4.5000
调用验证:
A=[1 3 3;5 5 7;];
y=ewjz(A);
y
>> aa
y =
4
9、编写验证魔方矩阵的函数文件,输出要求如下:
(1)如果输入矩阵的维数小于3,输出显示’error’
(2)如果输入矩阵的不是方阵,输出显示’the size of matrix X must be N-by-N matrix’
end
y
运行结果:
假设n=5
>> jcheng(5)
y =
120
ans =
120
4、找到一个n!>10100的值(利用上题的阶乘函数文件)
编程:
i=1;
while(1)
y=jcheng(i);
if y>10^100
break;
end
i=i+1;
end
i
运行结果:
>> zhaon
y =
1
y =
2
y =
实验三MATLAB语言的程序设计
一、实验目的:
1、熟悉MATLAB程序编辑与设计环境
2、掌握各种编程语句语法规则及程序设计方法
3、函数文件的编写和设计
4、了解和熟悉跨空间变量传递和赋值
二、实验基本知识:
1、程序流程控制语句
for循环结构
语法:for i=初值:增量:终值
语句1
……
语句n
end
说明:1.i=初值:终值,则增量为1。
2.初值、增量、终值可正可负,可以是整数,也可以是小数,只须符合数学逻辑。
while循环结构
语法:while逻辑表达式
循环体语句
end
说明:1、whiIe结构依据逻辑表达式的值判断是否执行循环体语勾。若表达式的值为真,执行循环体语句一次、在反复执行时,每次都要进行判断。若表达式的值为假,则程序执行end之后的语句。
6、判断y向量的元素属于3n、3n+1或3n+2,设y= [3,5,7,9,11,16]。
编程:
假设:将3n放进数组A,将3n+1放进数组B,将3n+2放进数组C。
y=[3 5 7 9 11 16;];
A=[];
B=[];
C=[];
j=1;k=1;m=1;
for i=1:6
x=rem(y(i),3);
y =
2.6525e+032
y =
8.2228e+033
y =
2.6313e+035
y =
8.6833e+036
y =
2.9523e+038
y =
1.0333e+040
y =
3.7199e+041
y =
1.3764e+043
y =
5.2302e+044
y =
2.0398e+046
y =
8.1592e+047
disp('eroor')
end
end
S=[sum(x,1),sum(x,2)',sum(diag(x))',sum(diag(rot90(x)))'];
if S(1)==S(2)&S(2)==S(3)&S(3)==S(4)&S(1)==S(4)
disp('yes')
else
disp('no')
end
验证运行:
>> yanzh([8 1 6;3 5 7;4 9 2;])
yes
>> yanzh([8 1 6;3 5 7;])
the size of matrix X must be N-by-N matrix
no
>> yanzh([8 6;3 5;])
eroor
no
>> yanzh([8 2 6;3 5 7;4 9 2;])
(3)显示行、列和及其对角线求和后的值,并判断其和是否相同,若不同,显示‘No’,相同显示‘Yes’
编程:
function yanzh(x)
相关文档
最新文档