matlab实验二
实验二-MATLAB-图形系统
实验二 MATLAB 图形系统一、实验目的和要求Matlab 提供了强大的图形处理功能,本次实验旨在使学生熟悉和掌握应用Matlab 实现二维图形和三维图形的绘制和控制与表现方法。
二、实验内容1,画出对数和指数函数曲线,并分别加上标题、轴标记和曲线说明。
x=::5;y1=log(x);y2=exp(x);plot(x,y1,x,y2)grid onlegend('\ity=lnx','\ity=e^x')title('y=lnx和y=e^x曲线')xlabel('x');ylabel('y')2,将图形窗口分为两格,分别绘制正割和余割函数曲线,并加上适当的标注。
x=0:pi/50:2*pi;k=[1 26 51 76 101];x(k)=[];subplot(1,2,1)plot(x,sec(x)),grid onlegend('\itsec(x)')title('sec(x)曲线')subplot(1,2,2),plot(x,csc(x)),grid ontitle('csc(x)曲线')legend('\itcsc(x)')3,根据教材节内容,循序渐进的绘制对数和极坐标系图形。
x=:.01:100;y=log10(x);subplot(2,1,1)semilogx(x,y)title(‘\ity=log-{10}(x)inSemi-logcoord inates’)xlabel(‘x’),ylabel(‘y’)num=[1 ];den=[1 2 5 7 4];[z,p,k]=tf2zp(num,den);c1=abs(z);c2=angle(z);c3=abs(p);c4=angle(p);xyy=lnx和y=e x曲线sec(x)曲线csc(x)曲线101010101010y=log-10(x)in Semi-log coordinatesxypolar(c4,c3,'bx')hold on,polar(c2,c1,'ro')gtext('极坐标系中的零极点表示')4,根据教材 节内容,绘制多峰函数和三角函数的多条曲线。
实验二MATLAB绘制图形
grid on %在所画出的图形坐标中加入栅格
绘制图形如下
50
10
1
0.8
40
10
0.6
0.4
30
10
0.2
0
1020
-0.2
-0.4
1010
-0.6
-0.8
0
10
-1
-2
0
2
-2
0
2
10
10
10
10
10
10
如果在图中不加栅格
程序如下:
clear x=logspace(-1,2);%在10^(-1)到10^2之间产生50个 对数等分的行向量 subplot(121); loglog(x,10*exp(x),'-p') subplot(122); semilogx(x,cos(10.^x))
(2)plot(x,y): 基本格式,x和y可为向量或矩阵. 1. 如果x,y是同维向量,以x元素为横坐标,以y元素 为纵坐标绘图. 2. 如果x是向量,y是有一维与x元素数量相等的矩阵, 则以x为共同横坐标, y元素为纵坐标绘图,曲线数目 为y的另一维数. 3. 如果x,y是同维矩阵,则按列以x,y对应列元素为 横、纵坐标绘图,曲线数目等于矩阵列数.
y=2*exp(-0.5*x).*cos(4*pi*x);
2
plot(x,y)
1.5
1
0.5
0
-0.5
-1
-1.5
-2
0
1
2
3
4
5
6
7
例4 绘制曲线
t=(0:0.1:2*pi);
x=t.*sin(3*t);
y=t.*sin(t).*sin(t);
matlab实验二
北京工业大学Matlab实验报告**: ***学号: ************: **实验二、Matlab 的基本计算(一)实验目的1.掌握建立矩阵的方法。
2.掌握Matlab 各种表达式的书写规则以及常用函数的使用。
3.能用Matlab 进行基本的数组、矩阵运算。
4.掌握矩阵分析的方法以及能用矩阵运算或求逆法解线性方程组。
5.掌握Matlab 中的关系运算与逻辑运算。
(二)实验环境1.计算机2.MATLAB7.0集成环境(三)实验内容及要求1、熟练操作MATLAB7.0运行环境;2、自主编写程序,必要时参考相关资料;3、实验前应写出程序大致框架或完整的程序代码;4、完成实验报告。
(四)实验程序设计1.利用diag 等函数产生下列矩阵。
⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡-=032570800a ⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=804050702b2.利用reshape 函数将1题中的a 和b 变换成行向量。
3.产生一个均匀分布在(-5,5)之间的随机矩阵(10×2),要求精确到小数点后一位。
4.已知:⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡-=76538773443412A ⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡--=731203321B求下列表达式的值:(1) B A K *611+=和I B A K +-=12(其中I 为单位矩阵)(2) B A K *21=和B A K *.22=(3) 331^A K =和3.32^A K =(4) B A K /41=和A B K \42=(5) ],[51B A K =和]2:);],3,1([[52^B A K = 5.下面是一个线性方程组:⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡52.067.095.03216/15/14/15/14/13/14/13/12/1x x x(1)求方程的解(矩阵除法和求逆法)(2)将方程右边向量元素3b 改为0.53,再求解,并比较3b 的变化和解的相对变化。
实验二-基于Matlab的离散控制系统仿真
实验二基于Matlab的离散控制系统仿真一、实验目的1)学习使用Matlab命令对离散控制系统进行仿真的方法。
2)学习使用Simulink工具箱对离散控制系统进行仿真的方法。
二、实验原理1. 控制系统命令行仿真一阶系统闭环传递函数为3()G ss+3请转换为离散系统脉冲传递函数并仿真。
根据要求实验有实验数据和所得图形如下:连续零极点图函数:离散函数零极点图:连续函数根轨迹图:离散函数根轨迹图:连续函数单位脉冲响应曲线:离散函数单位脉冲响应曲线:连续函数单位阶跃响应:离散函数单位阶跃响应:连续函数波特图:离散函数波特图:连续函数艾奎斯特曲线:离散函数艾奎斯特曲线:连续函数尼科尔斯曲线:离散函数尼科尔斯曲线:2. 控制系统simulink 仿真按图建立系统的Simulink 模型,对不同的输入信号进行仿真,改变参数,观察不同的仿真结果。
图1 控制系统Simulink 仿真图解答于实验内容第二问三、实验内容1) 二阶系统传递函数为225()4+25G s s s =+,请转换为零极点模型,离散系统模型(采样时间为1),以及离散零极点模型,并进行基于matlab 命令的仿真研究(求连续和离散系统的单位脉冲响应、单位阶跃响应、零极点分布图、根轨迹、波特图、奈奎斯特曲线、尼科尓斯曲线等)。
根据题意实验所得有:连续单位脉冲响应连续单位阶跃响应连续零极点分布图离散零极点分布图连续根轨迹连续波特图连续奈奎斯特曲线连续尼科尓斯曲线2)按图1建立系统的Simulink模型,对不同的输入信号进行仿真。
改变模型参数,观察不同的仿真结果。
Step输入:Ramp输入:当函数分子分别为1,10,100,500时有:经过实验可以看出分子越大超调越大,调整时间越大。
3)将上述系统离散化并基于Simulink仿真,观察仿真结果。
根据题意实验有:Step输入:Ramp输入:分子为1时:Step输入:Ramp输入:分子为250时:Step输入:Ramp输入:四、实验报告1)按照实验报告所要求的统一格式,填写实验报告;2)记录实验过程、实验结果和图表。
实验二MATLAB 求微分方程的解
实验二 微分方程求解一、问题背景与实验目的实际应用问题通过数学建模所归纳而得到的方程,绝大多数都是微分方程,真正能得到代数方程的机会很少.另一方面,能够求解的微分方程也是十分有限的,特别是高阶方程和偏微分方程(组).这就要求我们必须研究微分方程(组)的解法,既要研究微分方程(组)的解析解法(精确解),更要研究微分方程(组)的数值解法(近似解).对微分方程(组)的解析解法(精确解),Matlab 有专门的函数可以用,本实验将作一定的介绍.本实验将主要研究微分方程(组)的数值解法(近似解),重点介绍 Euler 折线法.二、相关函数(命令)及简介1.dsolve('equ1','equ2',…):Matlab 求微分方程的解析解.equ1、equ2、…为方程(或条件).写方程(或条件)时用 Dy 表示y 关于自变量的一阶导数,用用 D2y 表示 y 关于自变量的二阶导数,依此类推.2.simplify(s):对表达式 s 使用 maple 的化简规则进行化简. 例如: syms xsimplify(sin(x)^2 + cos(x)^2) ans=13.[r,how]=simple(s):由于 Matlab 提供了多种化简规则,simple 命令就是对表达式 s 用各种规则进行化简,然后用 r 返回最简形式,how 返回形成这种形式所用的规则.例如: syms x[r,how]=simple(cos(x)^2-sin(x)^2) r = cos(2*x) how = combine4.[T,Y] = solver(odefun,tspan,y 0) 求微分方程的数值解. 说明:(1) 其中的 solver 为命令 ode45、ode23、ode113、ode15s 、ode23s 、ode23t 、ode23tb 之一.(2) odefun是显式常微分方程:⎪⎩⎪⎨⎧==00)(),(yt y y t f dt dy(3) 在积分区间 tspan =],[0f t t 上,从0t 到f t ,用初始条件0y 求解.(4) 要获得问题在其他指定时间点 ,210,,t t t 上的解,则令 tspan =],,,[,210f t t t t (要求是单调的).(5) 因为没有一种算法可以有效地解决所有的 ODE 问题,为此,Matlab 提供了多种求解器 Solver ,对于不同的ODE 问题,采用不同的Solver .(6) 要特别的是:ode23、ode45 是极其常用的用来求解非刚性的标准形式的一阶常微分方程(组)的初值问题的解的 Matlab 的常用程序,其中:ode23 采用龙格-库塔2 阶算法,用3 阶公式作误差估计来调节步长,具有低等的精度.ode45 则采用龙格-库塔4 阶算法,用5 阶公式作误差估计来调节步长,具有中等的精度.5.ezplot(x,y ,[tmin,tmax]):符号函数的作图命令.x,y 为关于参数t 的符号函数,[tmin,tmax] 为 t 的取值范围.6.inline():建立一个内联函数.格式:inline('expr', 'var1', 'var2',…) ,注意括号里的表达式要加引号.例:Q = dblquad(inline('y*sin(x)'), pi, 2*pi, 0, pi)三、实验内容1. 几个可以直接用 Matlab 求微分方程精确解的例子: 例1:求解微分方程22xxexy dxdy -=+,并加以验证.求解本问题的Matlab 程序为:syms x y %line1 y=dsolve('Dy+2*x*y=x*exp(-x^2)','x') %line2diff(y ,x)+2*x*y-x*exp(-x^2) %line3 simplify(diff(y ,x)+2*x*y-x*exp(-x^2)) %line4 说明:(1) 行line1是用命令定义x,y 为符号变量.这里可以不写,但为确保正确性,建议写上;(2) 行line2是用命令求出的微分方程的解:1/2*exp(-x^2)*x^2+exp(-x^2)*C1(3) 行line3使用所求得的解.这里是将解代入原微分方程,结果应该为0,但这里给出:-x^3*exp(-x^2)-2*x*exp(-x^2)*C1+2*x*(1/2*exp(-x^2)*x^2+exp(-x^2)*C1)(4) 行line4 用 simplify() 函数对上式进行化简,结果为 0, 表明)(x y y =的确是微分方程的解.例2:求微分方程0'=-+x e y xy 在初始条件e y 2)1(=下的特解,并画出解函数的图形.求解本问题的 Matlab 程序为: syms x yy=dsolve('x*Dy+y-exp(x)=0','y(1)=2*exp(1)','x') ezplot(y)微分方程的特解为:y=1/x*exp(x)+1/x* exp (1) (Matlab 格式),即xe e y x+=,解函数的图形如图 1:图1例3:求微分方程组⎪⎪⎩⎪⎪⎨⎧=--=++035y x dt dy e y x dtdx t在初始条件0|,1|00====t t y x 下的特解,并画出解函数的图形.求解本问题的 Matlab 程序为: syms x y t[x,y]=dsolve('Dx+5*x+y=exp(t)','Dy-x-3*y=0','x(0)=1','y(0)=0','t') simple(x); simple(y);ezplot(x,y ,[0,1.3]);axis auto微分方程的特解(式子特别长)以及解函数的图形均略. 2. 用ode23、ode45等求解非刚性的标准形式的一阶常微分方程(组)的初值问题的数值解(近似解).例4:求解微分方程初值问题⎪⎩⎪⎨⎧=++-=1)0(2222y x x y dxdy 的数值解,求解范围为区间[0, 0.5].fun=inline('-2*y+2*x^2+2*x','x','y'); [x,y]=ode23(fun,[0,0.5],1); x'; y';plot(x,y ,'o-') >> x' ans =0.0000 0.0400 0.0900 0.1400 0.1900 0.2400 0.2900 0.3400 0.3900 0.4400 0.4900 0.5000 >> y' ans =1.0000 0.9247 0.8434 0.7754 0.7199 0.6764 0.6440 0.6222 0.6105 0.6084 0.6154 0.6179 图形结果为图 2.图2例 5:求解描述振荡器的经典的 V er der Pol 微分方程.7,0)0(',1)0(,0)1(222====+--μμy y y dtdy y dty d分析:令,,121dtdx x y x ==则.)1(,1221221x x x dtdx x dtdx --==μ先编写函数文件verderpol.m : function xprime = verderpol(t,x) global mu;xprime = [x(2);mu*(1-x(1)^2)*x(2)-x(1)]; 再编写命令文件vdp1.m : global mu; mu = 7; y0=[1;0][t,x] = ode45('verderpol',[0,40],y0); x1=x(:,1);x2=x(:,2); plot(t,x1)图形结果为图3.图33. 用 Euler 折线法求解前面讲到过,能够求解的微分方程也是十分有限的.下面介绍用 Euler 折线法求微分方程的数值解(近似解)的方法.Euler 折线法求解的基本思想是将微分方程初值问题⎪⎩⎪⎨⎧==00)(),,(yx y y x f dx dy化成一个代数方程,即差分方程,主要步骤是用差商hx y h x y )()(-+替代微商dxdy ,于是:⎪⎩⎪⎨⎧==-+)()),(,()()(00x y y x y x f h x y h x y k k k k 记)(,1k k k k x y y h x x =+=+,从而)(1h x y y k k +=+,则有1,,2,1,0).,(,),(1100-=⎪⎩⎪⎨⎧+=+==++n k y x hf y yh x x x y y k k k k k k 例 6:用 Euler 折线法求解微分方程初值问题⎪⎩⎪⎨⎧=+=1)0(,22y y x y dxdy 的数值解(步长h 取0.4),求解范围为区间[0,2].解:本问题的差分方程为1,,2,1,0).2),( ),(,,4.0,1,021100-=⎪⎪⎪⎩⎪⎪⎪⎨⎧+=+=+====++n k y x y y x f y x hf y y h x x h y x k k k k k k (其中: 相应的Matlab 程序见附录 1. 数据结果为:0 1.0000 0.4000 1.4000 0.8000 2.1233 1.2000 3.1145 1.6000 4.4593 2.0000 6.3074图形结果见图4:图4特别说明:本问题可进一步利用四阶 Runge-Kutta 法求解,读者可将两个结果在一个图中显示,并和精确值比较,看看哪个更“精确”?(相应的 Matlab 程序参见附录 2).四、自己动手1. 求微分方程0sin 2')1(2=-+-x xy y x 的通解.2. 求微分方程x e y y y x sin 5'2''=+-的通解.3. 求微分方程组⎪⎪⎩⎪⎪⎨⎧=-+=++00y x dtdy y x dtdx在初始条件0|,1|00====t t y x 下的特解,并画出解函数()y f x =的图形. 4. 分别用 ode23、ode45 求上述第 3 题中的微分方程初值问题的数值解(近似解),求解区间为[0,2]t ∈.利用画图来比较两种求解器之间的差异.5. 用 Euler 折线法求解微分方程初值问题⎪⎩⎪⎨⎧=-=1)0(,12'32y y xy y 的数值解(步长h 取0.1),求解范围为区间[0,2].6. 用四阶 Runge-Kutta 法求解微分方程初值问题⎩⎨⎧=-=1)0(,cos 'y x e y y x 的数值解(步长h 取0.1),求解范围为区间[0,3].四阶 Runge-Kutta 法的迭代公式为(Euler 折线法实为一阶 Runge-Kutta 法):1,,2,1,0),()2,2()2,2(),()22(6,),(342312143211100-=⎪⎪⎪⎪⎪⎪⎪⎩⎪⎪⎪⎪⎪⎪⎪⎨⎧++=++=++==++++=+==++n k hL y h x f L L h y h x f L L h y h x f L y x f L L L L L hy y h x x x y y k k k k k k k k k k k k 相应的 Matlab 程序参见附录 2.试用该方法求解第5题中的初值问题. 7. 用 ode45 方法求上述第 6 题的常微分方程初值问题的数值解(近似解),从而利用画图来比较两者间的差异.五、附录附录 1:(fulu1.m)clearf=sym('y+2*x/y^2'); a=0; b=2; h=0.4;n=(b-a)/h+1; x=0; y=1;szj=[x,y]; for i=1:n-1y=y+h*subs(f,{'x','y'},{x,y}); x=x+h;szj=[szj;x,y]; end szjplot(szj(:,1),szj(:,2))附录 2:(fulu2.m)clearf=sym('y-exp(x)*cos(x)'); a=0; b=3; h=0.1;n=(b-a)/h+1; x=0; y=1;szj=[x,y];for i=1:n-1l1=subs(f,{'x','y'},{x,y});l2=subs(f,{'x','y'},{x+h/2,y+l1*h/2});l3=subs(f,{'x','y'},{x+h/2,y+l2*h/2});l4=subs(f,{'x','y'},{x+h,y+l3*h});y=y+h*(l1+2*l2+2*l3+l4)/6;x=x+h;szj=[szj;x,y];endszjplot(szj(:,1),szj(:,2))。
信号与系统MATLAB实验-实验二 Matlab中信号的运算
1、运用funtool对f(x)=sin(x)/x分别进行信号的尺度变换f(2x)、f(0.5x)和信号的移位运算f(x+1)、f(x-1)操作以及f(0.5x+1),分别记录相应波形。
f(x)=sin(x)/x f(x+1)f(2x) f(x-1)f(0.5x) f(0.5x+1)2、已知两连续时间信号如下图所示,1)写出信号的函数表达式,并计算f(t)=f1(t)* f2(t)的解析表达式; 2)用MATLAB 求f(t)=f1(t)* f2(t),并绘出f(t)的时域波形图。
(设定取样时间间隔为dt )【实验思考】:通过不断改变dt 的取值并对比所得到的实验效果,观察当取样时间dt 为多大时,函数conv_cs()的计算结果就是连续时间卷积f(t)=f1(t)* f2(t)的较好近似结果?3、已知两连续时间信号如下图所示,1)写出信号的函数表达式,并计算f(t)=f1(t)* f2(t)的解析表达式;2)用MATLAB 求f(t)=f1(t)* f2(t),并绘出f(t)的时域波形图。
(设定取样时间间隔为dt)【实验思考】:不断改变dt的取值并对比实验效果,当取样时间dt为多大时,函数conv_cs()的计算结果就是连续时间卷积f(t)=f1(t)* f2(t)的较好近似结果?clear alldt = 0.01;t1 = -3:dt:3;f1 = 2*(u(t1+1) - u(t1-1));figure;stairs(t1,f1);hold allgrid ont2 = -3:dt:3;f2 = u(t2+2)-u(t2-2);stairs(t2,f2)[fn, tn] = conv_cs(f1, t1, f2, t2, dt);plot(tn, fn)grid onlegend('f1', 'f2', 'f1*f2')。
实验二-MATLAB用于时域分析
实验二 MATLAB用于时域分析一、实验目的通过使用MATLAB完成系统的输出响应分析、稳定性分析、求动态性能指标以及稳态误差分析等工作。
二、实验原理在MATLAB中,可以通过单输入单输出系统的传递函数,进行系统的脉冲响应,阶跃响应以及一般输入响应等时域分析。
用到以下函数:单位阶跃响应 step(num,den,t)单位脉冲响应impluse(num,den,t)一般输入响应 y=Isim(num,den,u,t)时间t是事先定义的矢量,u为输入信号。
此外,还可以求出系统的超调量,调节时间以及稳态误差。
SIMULINK是MATLAB的一个附加组件,用来提供一个系统的建模、动态仿真及综合分析的工作平台。
SIMULINK模型可以用来模拟线性或非线性、连续或离散,或者两者混合的系统,即可用它来模拟几乎所有的动态系统。
三、实验内容通过MATLAB以及其中的SIMULINK完成系统的输出响应分析、稳定性分析、求动态性能指标以及稳态误差分析等工作。
四、实验代码1、一阶系统响应sys1=tf([100],[1 0]);sys2=tf([0.1],[1]);sys=feedback(sys1,sys2);step(sys)2、二阶系统响应wn=1t=0:0.1:12;num=[1];zeta1=0;den1=[1 2*zeta1 1];zeta3=0.3;den3=[1 2*zeta3 1];zeta5=0.5;den5=[1 2*zeta5 1];zeta7=0.7;den7=[1 2*zeta7 1];zeta9=1.0;den9=[1 2*zeta9 1];[y1,x,t]=step(num,den1,t);[y3,x,t]=step(num,den3,t);[y5,x,t]=step(num,den5,t);[y7,x,t]=step(num,den7,t);[y9,x,t]=step(num,den9,t);plot(t,y1,t,y3,t,y5,t,y7,t,y9)grid on;3、稳定性分析den=[1 1 2 24];roots(den)4、求动态性能指标t=0:0.01:2;num=[1000]';den=[1 34.5 1000];[y,x,t]=step(num,den,t);plot(t,y);maxy=max(y);yes=y(length(t));pos=100*(maxy-yes)/yesfor i=1:1:201if y(i)==maxy,n=i;endendtp=(n-1)*0.01for i=1:1:201if(y(i)<1.05&y(i)>0.95),n=i;endbreak;endts=(n-1)*0.015、稳态误差分析t=0:0.1:15;[num1,den1]=cloop([1],[1 1]);[num2,den2]=cloop([1],[1 1 0]);[num3,den3]=cloop([4 1],[1 1 0 0]);y1=impulse(num1,den1,t);y2=impulse(num2,den2,t);y3=impulse(num3,den3,t);subplot(311);plot(t,y1);subplot(312);plot(t,y2);subplot(313);plot(t,y3);er1=0-y1(length(t))er2=0-y2(length(t))er3=0-y3(length(t))6、求单位阶跃响应及其稳态误差t=0:0.1:20[num1,den1]=cloop([1],[1 1]);[num2,den2]=cloop([1],[1 1 0]);[num3,den3]=cloop([4 1],[1 1 0 0]);y1=step(num1,den1,t);y2=step(num2,den2,t);y3=step(num3,den3,t);subplot(311);plot(t,y1);subplot(312);plot(t,y2);subplot(313);plot(t,y3);er1=1-y1(length(t));er2=1-y2(length(t));er3=1-y3(length(t));7、求单位斜坡响应及其稳态误差t=0:0.1:20;t1=0:0.1:100;[num1,den1]=cloop([1],[1 1]);[num2,den2]=cloop([1],[1 1 0]);[num3,den3]=cloop([4 1],[1 1 0 0]);y1=step(num1,[den1 0],t1);y2=step(num2,[den2 0],t);y3=step(num3,[den3 0],t);subplot(311);plot(t1,y1,t1,t1);subplot(312);plot(t,y2,t,t);subplot(313);plot(t,y3,t,t);er1=t1(length(t1))-y1(length(t1))er2=t(length(t))-y2(length(t))er3=t(length(t))-y3(length(t))8、实例分析kp=[0.11 6];t=[0:0.01:1];num1=303.03*kp(1);den1=[0.00001 0.00633 0.20167 21.21*kp(1)+1];y1=step(num1,den1,t);num2=303.03*kp(2);den2=[0.00001 0.00633 0.20167 21.21*kp(2)+1];y2=step(num2,den2,t);subplot(211);plot(t,y1);subplot(212);plot(t,y2);gtext('kp=0.11');gtext('kp=6');9、SIMULINK用于系统仿真五、实验结果1、一阶系统响应2、二阶系统响应3、稳定性分析4、求动态性能指标5、稳态误差分析6、求单位阶跃响应及其稳态误差7、求单位斜坡响应及其稳态误差8、实例分析9、SIMULINK用于系统仿真六、实验总结通过本次实验实现了用MATLAB完成系统的输出响应分析、稳定性分析、求动态性能指标以及稳态误差分析等工作。
实验二MATLAB的矩阵操作_参考答案
1
5
>> A(k)
ans =
23
10
(2)取出A前3行构成矩阵B,前两列构成矩阵C,右下角 子矩阵构成矩阵D,B与C的乘积构成矩阵E.
>> B=A([1,2,3],:)
B =
23.0000 10.0000 -0.7780 0
41.0000 -45.0000 65.0000 5.0000
32.0000 5.0000 0 32.0000
y =
-128.4271
2.已知 ,
求下列表达式的值:
(1) , (其中I为单位矩阵)
A=[-1,5,-4;0,7,8;3,61,7]
B=[8,3,-1;2,5,3;-3,2,0]
>> A+6*B
ans =
47 23 -10
12 37 26
-15 73 7
&
ans =
-1.2768 -0.4743 0.2411
2.1229 1.3173 -0.2924
3.已知
完成下列操作
(1)输出A在[10,25]范围内的全部元素
A=[23,10,-0.778,0;41,-45,65,5;32,5,0,32;6,-9.54,54,3.14]
>> k=find(A>=10&A<=25)
(2)
(3)
2.已知 ,
求下列表达式的值:
(1) , (其中I为单位矩阵)
(2)A*B、A.*B和B*A
(3)A/B及B/A
3.已知
完成下列操作
(1)输出A在[10,25]范围内的全部元素
(2)取出A前3行构成矩阵B,前两列构成矩阵C,右下角 子矩阵构成矩阵D,B与C的乘积构成矩阵E.
实验二 MATLAB的科学计算
实验二 MATLAB的科学计算一、实验目的1、了解MATLAB的基本计算功能2、符号运算功能二、实验内容(一)基本计算功能例1、求[12+2× (7-4)]÷32的运算结果>>(12+2*(7-4))/3^2ans=2例2、用MATLAB求下面线性方程组的解3x1+ x2 - x3 = 3.6x1+2x2+4x3 = 2.1-x1+4x2+5x3 = -1.4>>A=[3 1 -1;1 2 4;-1 4 5];b=[3.6;2.1;-1.4];>>x=A\bx =1.4818-0.46060.3848例3、求两个矩阵的乘积a=[1 2 3;3 4 5;3 2 1]b=[1 2;3 4; 5 6]c=a*bc =22 2840 5214 20(二)符号运算功能1、求极限通常在MATLAB软件中,用limit 函数来求极限,其用法如表9-5所示:表9-5 limit 函数的用法例1、 求42cos lim 202x x e x -→.>> syms x % 把字符x 定义为符号 >>limit((cos(x)-exp(-x^2/2))/x^4)ans =-1/12例2 求42lim 22--→x x x .>> limit((x-2)/(x^2-4),x,2)ans =1/4例3 求t x t x t )cos()cos(lim 0-+→>> syms t x>> limit((cos(x+t)-cos(x))/t,t,0)ans =-sin(x)2 、求导数MATLAB 软件提供求函数导数的指令是diff ,具体使用格式如下:(1)diff(f, x) 表示对f (这里f 是一个函数表达式)求关于符号变量x 的一阶导数.若x 缺省,则表示求f 对预设独立变量的一阶导数.(2)diff(f, x, n) 表示对f 求关于符号变量x 的n 阶导数.若x 缺省,则表示求f 对预设独立变量的n 阶导数.例9-7 已知,c bx ax x f ++=2)(求)(x f 的一阶、二阶导数.>> syms a b c x>> f='a*x^2+b*x+c'f =a*x^2+b*x+c>> diff(f, x)ans =2*a*x+b>> diff(f,2)ans =2*a3 、求积分MATLAB软件提供求函数积分的指令是int,具体使用格式如下:(1)int(f) 返回f对预设独立变量的积分值;(2)int(f,v) 返回f对独立变量v的积分值;(3)int(f,a,b) 返回f对预设独立变量的积分值,积分区间为[a,b],a和b为数值式;(4)int(f,v,a,b) 返回f对独立变量的积分值,积分区间为[a,b],a和b为数值式;(5)int(f,m,n) 返回f对预设变量的积分值,积分区间为[m,n],m和n为符号式;例1、求下列函数的积分 :例:求不定积分⎰-dxex x23,⎰+12xxdx;>> syms x>> f=sym('x^3*exp(-x^2)') % 或 int('x^3*exp(-x^2)') f =x^3*exp(-x^2)>> int(f)ans =-1/2*x^2/exp(x^2)-1/2/exp(x^2)>> int('1/(x*sqrt(x^2+1))')ans =-atanh(1/(x^2+1)^(1/2))4 、数学表达式的化简例、 将下面表达式进行因式分解. 132-=a f>> f2=sym('a^3-1');>> factor(f2)ans =(a-1)*(a^2+a+1)。
实验二MATLAB程序设计含实验报告
实验二 MATLAB 程序设计一、 实验目的1.掌握利用if 语句实现选择结构的方法。
2.掌握利用switch 语句实现多分支选择结构的方法。
3.掌握利用for 语句实现循环结构的方法。
4.掌握利用while 语句实现循环结构的方法。
5.掌握MATLAB 函数的编写及调试方法。
二、 实验的设备及条件计算机一台(带有MATLAB7.0以上的软件环境)。
M 文件的编写:启动MATLAB 后,点击File|New|M-File ,启动MATLAB 的程序编辑及调试器(Editor/Debugger ),编辑以下程序,点击File|Save 保存程序,注意文件名最好用英文字符。
点击Debug|Run 运行程序,在命令窗口查看运行结果,程序如有错误则改正三、 实验内容1.编写求解方程02=++c bx ax 的根的函数(这个方程不一定为一元二次方程,因c b a 、、的不同取值而定),这里应根据c b a 、、的不同取值分别处理,有输入参数提示,当0~,0,0===c b a 时应提示“为恒不等式!”。
并输入几组典型值加以检验。
(提示:提示输入使用input 函数)2.输入一个百分制成绩,要求输出成绩等级A+、A 、B 、C 、D 、E 。
其中100分为A+,90分~99分为A ,80分~89分为B ,70分~79分为C ,60分~69分为D ,60分以下为E 。
要求:(1)用switch 语句实现。
(2)输入百分制成绩后要判断该成绩的合理性,对不合理的成绩应输出出错信息。
(提示:注意单元矩阵的用法)3.数论中一个有趣的题目:任意一个正整数,若为偶数,则用2除之,若为奇数,则与3相乘再加上1。
重复此过程,最终得到的结果为1。
如:2?13?10?5?16?8?4?2?16?3?10?5?16?8?4?2?1运行下面的程序,按程序提示输入n=1,2,3,5,7等数来验证这一结论。
请为关键的Matlab 语句填写上相关注释,说明其含义或功能。
matlab2022实验2参考答案
matlab2022实验2参考答案报告名称:MATLAB试验二符号计算姓名:学号:专业:班级:MATLAB实验二MATLAB符号计算试验报告说明:1做试验前请先预习,并独立完成试验和试验报告。
2报告解答方式:将MATLAB执行命令和最后运行结果从命令窗口拷贝到每题的题目下面,请将报告解答部分的底纹设置为灰色,以便于批阅。
3在页眉上写清报告名称,学生姓名,学号,专业以及班级。
3报告以Word文档书写。
一目的和要求1熟练掌握MATLAB符号表达式的创建2熟练掌握符号表达式的代数运算3掌握符号表达式的化简和替换4熟练掌握符号微积分5熟练掌握符号方程的求解二试验内容1多项式运算(必做)1.1解方程:f(某)=某^4-10某某^3+34某某^2-50某某+25=0%采用数值方法:>>f=[1-1034-5025];>>root(f)%采用符号计算方法:f1=ym('某^4-10某某^3+34某某^2-50某某+25')olve(f1)1.2求有理分式R=(3某^3+某)(某^3+2)/((某^2+2某-2)(5某^3+2某^2+1))的商多项式和余多项式.a1=[3010];a2=[1002];a=conv(a1,a2);b1=[12-2];b2=[5201];b=conv(b1,b2);[p,r]=deconv(a,b);%注意:ab秩序不可颠倒。
%reidue用于实现多项式的部分分式展开,此处用deconv函数报告名称:MATLAB试验二符号计算姓名:学号:专业:班级:%%此题,有同学程序如下:某1=[3010],某2=[1002],某3=[12-2],某4=[5201]某5=conv(某1,某2)[y6,r]=deconv(某5,某3)R=deconv(y6,某4)%%这种方法较第一种解法缺点:在除法运算中,会产生误差,故此题应先将分母的多项式相乘后,再与分子部分的多项式进行运算。
MATLAB实验二
MATLAB实验二李彤自动化04班学号:201041803042一、实验目的:1. Learn to design branch and loop statements program2. Be familiar with relational and logical operators3. Practice 2D plotting二、实验内容:1. Assume that a,b,c, and d are defined, and evaluate the following expression.a=20; b=-2; c=0; d=1;(1)a>b; 1(2)b>d; 0(3)a>b&c>d; 0(4)a==b; 0(5)a&b>c; 0(6)~~b; 1a=2; b=[1 -2;-0 10]; c=[0 1;2 0]; d=[-2 1 2;0 1 0];(1)~(a>b)0 00 1(2)a>c&b>c;1 00 1⑶ c<=d;??? Error using ==> <= Matrix dimensions must agree. a=2; b=3; c=10; d=0;(9)a*b^2>a*c ; 0(10)d|b>a; 1(11)(d|b)>a; 0(12)isinf(a/b) ; 0(13)isinf(a/c) ; 1(14)a>b&ischar(d) ; 1(15)isempty(c); 02. Write a Matlab program to solve the function1()ln1y xx=-, where x is a number <1. Use an if structure toverify that the value passed to the program is legal. If the value of x is legal, caculate y(x). If not ,write a suitable error message and quit.Solution:x=input('Enter the coefficient x='); if x<1y=log(1/(1-x));fprintf('y=%f\n',y)elsedisp('The value of x is illegal');endEnter the coefficient x=0.1 y=0.105361Enter the coefficient x=1 The value of x is illegal!3. Write out m. file and plot the figures with grids1Assume that the complex function f(t) is defined by the equationf(t)=(0.5-0.25i)t-1.0Plot the amplitude and phase of function for 0 4.t ≤≤ Solution: t=0:0.1:4;x=sqrt((0.5.*t-1).^2+(0.25.*t).^2); y=atan((0.25.*t)./(1-0.5.*t)); plot(t,x); hold on;plot(t,y);4. Write the Matlab statements required to calculate y(t) from the equation22350()350t t y t t t -+≥⎧=⎨+<⎩for value of t between –9 and 9 in steps of 0.5. Use loops and branches to perform this calculation. Solution:for t=-9:0.5:9; if t>=0y=-3*t^2+5; elsey=3*t^2+5; endfprintf('y=%f\n',y); endy=248.000000 y=221.750000 y=197.000000 y=173.750000 y=152.000000 y=131.750000 y=113.000000 y=95.750000 y=80.000000 y=65.750000y=53.000000 y=41.750000 y=32.000000 y=23.750000 y=17.000000 y=11.750000 y=8.000000 y=5.750000 y=5.000000 y=4.250000y=2.000000 y=-1.750000 y=-7.000000 y=-13.750000 y=-22.000000 y=-31.750000 y=-43.000000 y=-55.750000 y=-70.000000 y=-85.750000y=-103.000000 y=-121.750000 y=-142.000000 y=-163.750000 y=-187.000000 y=-211.750000 y=-238.0000005. Write an m.file to evalue the equation 2()32y x x x =-+for all values of x between 0.1 and 3, insteps of 0.1. Do this twice, once with a for loop and once with vectors. Plot the resulting function using a 4.0 thick dashed blue line.Solution:for x=0.1:0.1:3; y=x.^2-3*x+2; plot(x,y,’bo ’); hold on; endx=0.1:0.1:3; y=x.^2-3*x+2;plot(x,y,'b--','LineWidth',4.0);。
实验2_连续时间信号的Matlab表示与计算
y=A*exp(a*t) 例如图 1-3 所示指数衰减信号的 MATLAB 源程序如下(取 A=1,a=-0.4): %program7_1 Decaying expponential signal A=1;a=-0.4; t=0:0.01:10; ft=A*exp(a*t); plot(t,ft);grid on; 1.4正弦信号
例如图 1-10 所示周期性矩形脉冲信号和周期性三角波脉冲信号的 MATLAB 源程序如 下:
%program7_8 Periodic pulse generator T=0:1/1E3:1;% 1kHz sample freq for 1 sec D=0:1/3:1;% 3Hz repetition freq Y=pulstran(T,D,'rectpuls',0.1); figure(1);plot(T,Y);grid on;axis([0,1,-0.1,1.1]); T=0:1/1E3:1; % 1kHz sample freq for 1sec D=0:1/3:1;% 3Hz repetition freq Y=pulstran(T,D,'tripuls',0.1,-1); figure(2);plot(T,Y);grid on;axis([0,1,-0.1,1.]);
到-1 线性递减的;在其他周期内依次类推。例如图 1-9 所示的周期性三角波信号的 MATLAB 源程序如下:
%program1-9 Periodic triangular pulse signal
t=-5*pi:pi/10:5*pi;
x=sawtooth(t,0.5);
MATLAB实验二答案
实验二报告人:王业成年级:机电131 学号:2013012496实验日期:2015.3.327报告完成日期:2015.3.30一、实验名称熟悉和掌握MA TLAB中关于矩阵变换以及矩阵运算的各种命令。
二、实验目的:熟悉和掌握MA TLAB中关于矩阵变换以及矩阵运算的各种命令。
三、实验内容:1.数、数组、矩阵的输入(1)数的输入a=5b=2-5i(2)数组的输入c=[1,3,5,7,9,11] %元素之间要用逗号用空格分开d=1:2:11e=linspace(1,11,6)体会以上输入有什么区别和联系。
(3)矩阵的输入A=[2,3,5;1,3,5;6,9,4] %行之间要用分别隔开2.矩阵大小的测试和定位A=[3,5,6;,2,5,8;3,5,9;3,7,9][n,m]=size(A)A(1,3)3. 矩阵的块操作A(2,:)A([1,3],:)A(2:3,1:2)问题2.1如何将A的2,3列互换?4.矩阵的四则运算A=[3,5,8;-2,3,6;1,4,9]B=rand(3,3)C=A+BD=A-BE=A*B问题2.2E为矩阵A、B的乘积运算结果,如果要求E的结果为A和B对应元素相乘的结果,应输入什么命令?F=A/B问题2.3 如果要求F为A,B对应元素作除法运算的结果,应输入什么命令?5.矩阵的点运算A=[1 2;3 4];B=[5 6;7 8];A*BA.*BA^2A.^26.矩阵的逻辑运算A=[1 2;3 4]; B=[0 6; 0 8]; A | BA&Bxor(A,B)a=-5;b=-10;(b~=0)&&(a/b>5)(b= =0)||(a/b>0)~a四、回答问题:问题2.1如何将A的2,3列互换?问题2.2 E为矩阵A、B的乘积运算结果,如果要求E的结果为A和B对应元素相乘的结果,应输入什么命令?问题2.3 如果要求F为A,B对应元素作除法运算的结果,应输入什么命令?五、思考题:1.输入一个矩阵A,取出A的第2行第1列的元素;取出A的第1,3,4列的所有元素;让A的第1列和第3列互换;删除A的第二列。
实验二利用MATLAB进行系统动态特性分析(任务)
实验二利用MATLAB进行系统动态特性分析(任务)引言:系统动态特性分析是指通过研究系统的动态响应,来了解系统的性能和稳定性。
在工程领域中,对不同系统进行动态特性分析是非常重要的,可以帮助我们了解系统的稳定性、响应特性以及对外部输入的敏感度等,并且可以为系统设计和控制提供重要的依据。
实验目的:通过数据采集的方法,运用MATLAB工具对动态系统进行特性分析,掌握系统的稳态特性和暂态特性,并对系统性能进行评估。
实验器材和原理:实验器材:电脑、MATLAB软件实验步骤:1. 导入数据:将实验得到的数据导入MATLAB中,可以通过Excel等工具将数据保存为文本格式,然后使用MATLAB的读取函数导入数据。
2.绘制时域响应曲线:根据导入的数据,使用MATLAB中的绘图函数绘制出时域响应曲线。
根据实验需要,选择绘制的曲线类型,如步跃响应曲线、阶跃响应曲线等。
3.基本特性分析:-稳态误差:通过分析曲线的极限值和最终值,计算出系统的稳态误差。
-加载响应:通过观察曲线的上升时间、峰值时间、峰值以及超调量等指标,来评估系统的负载能力。
-过渡过程:观察曲线的上升时间、峰值时间以及超调量等指标,来评估系统的动态响应特性。
4.绘制频域响应曲线:通过数据采集得到的数据,使用MATLAB中的频域分析工具绘制频域响应曲线,观察系统的频域特性。
5.使用MATLAB进行数据处理和分析:根据实验需要,对导入的数据进行处理和分析,如计算系统的传递函数、计算系统的频域性能等。
6.实验结果分析:根据绘制的曲线和计算的数据,分析系统的稳态特性和暂态特性,并对系统的性能进行评估。
可以根据实验结果,进行系统设计改进或控制参数调整。
实验注意事项:1.数据采集过程中要注意信号的采样频率和采样精度,以保证数据的准确性。
2.在绘制曲线时要选择合适的曲线类型和参数,使得曲线能够准确表达系统的动态特性。
3.在数据处理和分析过程中要注意使用合适的算法和公式,确保结果的准确性。
matlab实验报告实验二
matlab实验报告实验二Matlab实验报告实验二引言Matlab是一种功能强大的数学软件,广泛应用于科学研究和工程实践中。
在实验二中,我们将探索Matlab的图像处理功能,并通过实际案例来展示其应用。
图像处理基础图像处理是指对图像进行数字化处理的过程,其目的是改善图像质量、提取有用信息或实现特定的应用需求。
在Matlab中,我们可以利用各种函数和工具箱来实现图像处理的各种任务,如图像增强、滤波、分割和特征提取等。
实验步骤1. 图像读取与显示在Matlab中,我们可以使用imread函数读取图像文件,并使用imshow函数将图像显示在屏幕上。
例如,我们可以读取一张名为"lena.jpg"的图像,并显示出来:```matlabimg = imread('lena.jpg');imshow(img);```2. 图像灰度化图像灰度化是将彩色图像转换为灰度图像的过程。
在Matlab中,我们可以使用rgb2gray函数将彩色图像转换为灰度图像。
例如,我们可以将上一步读取的图像转换为灰度图像:```matlabgray_img = rgb2gray(img);imshow(gray_img);```3. 图像二值化图像二值化是将灰度图像转换为二值图像的过程,其中只包含黑色和白色两种颜色。
在Matlab中,我们可以使用imbinarize函数将灰度图像二值化。
例如,我们可以将上一步得到的灰度图像二值化:```matlabbinary_img = imbinarize(gray_img);imshow(binary_img);```4. 图像平滑图像平滑是指去除图像中的噪声或细节,使得图像更加平滑和清晰。
在Matlab 中,我们可以使用imfilter函数对图像进行平滑处理。
例如,我们可以对上一步得到的二值图像进行平滑处理:```matlabsmooth_img = imfilter(binary_img, fspecial('average'));imshow(smooth_img);```5. 图像边缘检测图像边缘检测是指提取图像中物体边缘的过程,常用于目标检测和图像分割。
MATLAB实验二:二维图形与三维图形的绘制
.实验报告(201 /201 学年第学期)课程名称实验名称二维图形与三维图形的绘制实验时间年月日实验室指导教师学生姓名学号班级专业实验报告三、实验内容及原理(包括硬件原理图、算法、逻辑框图,关键代码等,可续页)(一)二维图形的绘制1、绘制二维曲线的基本函数:○1plot函数plot函数的基本调用格式为:plot(x,y);其中x和y为长度相同的向量,分别用于存储x坐标和y坐标数据。
例,绘制参数方程曲线。
程序如下:含多个输入参数的plot函数调用格式为:p lot(x1,y1,x2,y2,…,xn,yn);含选项的plot函数调用格式为:plot(x1,y1,选项1,x2,y2,选项2,…,xn,yn,选项n);例,用不同线型和颜色在同一坐标内绘制曲线y=2e-0.5x sin(2πx)及其包络线。
程序如下:○2双纵坐标函数plotyyplotyy函数是MATLAB 5.X新增的函数。
它能把函数值具有不同量纲、不同数量级的两个函数绘制在同一坐标中。
调用格式为:plotyy(x1,y1,x2,y2);其中x1-y1对应一条直线,x2-y2对应另一条曲线。
横坐标的标度相同,纵坐标有两个,左纵坐标用于x1-y1数据对,右纵坐标用于x2-y2数据对。
2、绘制二维图形的其他函数在线性直角坐标系中,其他形式的图形有条形图、阶梯图、杆图和填充图等,所采用的函数分别是:bar(x,y,选项);stairs(x,y,选项);stem(x,y,选项);fill(x1,y1,选项1,x2,y2,选项2,…);例,分别以条形图、填充图、阶梯图和杆图形式绘制曲线y=2e-0.5x。
程序如下:(二)三维图形的绘制1、绘制三维曲线的基本函数plot3函数与plot函数用法十分相似,其调用格式为:plot3(x1,y1,z1,选项1,x2,y2,z2,选项2,…,xn,yn,zn,选项n); 例,绘制空间曲线。
程序如下:2、绘制三维曲面的函数surf函数和mesh函数的调用格式为:surf(x,y,z,e);mesh(x,y,z,e);例,绘制两个直径相等的圆管的相交图形。
MATLAB实验报告二
实验二 Matlab语言程序设计一、实验内容:1、编写命令文件:计算 1+2+…+n<2000 时的最大 n 值;>> n=1; %将变量初值设为1sum=0;while((sum+n)<2000) %若s<2000成立,则执行下一条语句,否则结束本循环sum=sum+n; %求和运算n=n+1;endsum,n-1 %显示最终s和nsum =1953ans =622、编写函数文件:分别用 for 和 while 循环结构编写程序,求 2 的 0 到 15 次幂的和。
function xunhuan(x)sum=0;for(i=0:x)sum=sum+2^i;endy=sum>> xunhuan(15)y =65535function whilexun(x)sum=0;i=0;while(i<x)sum=sum+2^i;i=i+1;endy=sum>> whilexun(16)y =655353、如果想对一个变量 x 自动赋值。
当从键盘输入 y 或 Y 时(表示是),x 自动赋为 1;当从键盘输入 n 或 N 时(表示否),x 自动赋为 0;输入其他字符时终止程序。
a=input('输入一个字符:');switch acase 'y'x=1case 'Y'x=1case 'n'x=0case 'N'x=0otherwiseend输入一个字符:'Y'x =1二、实验思考题1.用FOR和WHILE语句有何要求?答:for语句的基本命令格式为for 循环变量=表达式1表达式3表达式2循环语句组End表达式1、表达式3、表达式2的定义和C语言相似即首先执行循环变量的初始值赋成表达式1的值然后判断循环变量的值介于表达式1和表达式2的值之间则执行循环体中的语句否则结束循环语句的执行。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验2 MATLAB数值计算、符号运算功能一、实验目的1、掌握建立矩阵、矩阵分析与处理的方法。
2、掌握线性方程组的求解方法。
3、掌握数据统计和分析方法、多项式的常用运算。
4、掌握求数值导数和数值积分、常微分方程数值求解、非线性代数方程数值求解的方法。
5、掌握定义符号对象的方法、符号表达式的运算法则及符号矩阵运算、符号函数极限及导数、符号函数定积分和不定积分的方法。
二、预习要求(1)复习4、5、6章所讲内容;(2)熟悉MATLAB中的数值计算和符号运算的实现方法和主要函数。
三、实验内容1、已知2961820512885A-⎡⎤⎢⎥=⎢⎥⎢⎥-⎣⎦,求A的特征值及特征向量,并分析其数学意义。
>> A=[-29,6,18;20,5,12;-8,8,5];>> [V,D]=eig(A)V =0.7130 0.2803 0.2733-0.6084 -0.7867 0.87250.3487 0.5501 0.4050D =-25.3169 0 00 -10.5182 00 0 16.8351V为A的特征向量,D为A的特征值,3个特征值是-25.3169、10.5182和16.8351。
>> A*Vans =-18.0503 -2.9487 4.600715.4017 8.2743 14.6886-8.8273 -5.7857 6.8190>> V*Dans =-18.0503 -2.9487 4.600715.4017 8.2743 14.6886-8.8273 -5.7857 6.8190经过计算,A*V=V*D 。
2、 不用rot90函数,实现方阵左旋90°或右旋90°的功能。
例如,原矩阵为A ,A 左旋后得到B ,右旋后得到C 。
147102581136912A ⎡⎤⎢⎥=⎢⎥⎢⎥⎣⎦,101112789456123B ⎡⎤⎢⎥⎢⎥=⎢⎥⎢⎥⎣⎦,321654987121110B ⎡⎤⎢⎥⎢⎥=⎢⎥⎢⎥⎣⎦提示:先将A 转置,再作上下翻转,则完成左旋90°;如将A 转置后作左右翻转,则完成右旋转90°,可用flipud 、fliplr 函数。
>> a=[1 4 7 10;2 5 8 11;3 6 9 12]a=1 4 7 102 5 8 113 6 9 12>> B=rot90(a)B =10 11 127 8 94 5 61 2 3>>C= rot90(s,3)C=3 2 16 5 49 8 712 11 103建立一个5*5矩阵,求它的行列式值、秩。
A=fix(10*rand(5)) H=det(A)Trace=trace(A)Rank=rank(A)Norm=norm(A)A =2 9 4 0 75 9 9 8 39 4 7 9 69 8 9 6 11 1 6 7 7H =-12583Trace =31Rank =5Norm =30.16014下面是一个线性方程组1231231231110.95 2341110.67 3451110.52 456x x xx x xx x x⎧++=⎪⎪⎪++=⎨⎪⎪++=⎪⎩,(1)求方程的解。
A=[1/2,1/3,1/4;1/3,1/4,1/5;1/4,1/5,1/6]; b=[0.95,0.67,0.52]';x=inv(A)*b%(2):B=[0.95,0.67,0.53]';x=inv(A)*B%(3):cond(A)x =1.20000.60000.6000x =3.0000-6.60006.6000ans =1.3533e+003(2)将方程右边向量元素b3=0.52改为0.53再求解,并比较b3的变化和解的相对变化。
A=hilb(4)A(:,1)=[]A(4,:)=[]B=[0.95,0.67,0.52]';X=inv(A)*BB1=[0.95,0.67,0.53]';X1=inv(A)*B1N=cond(B)N1=cond(B1)Na=cond(A) %矩阵A为病态矩阵A =1.0000 0.5000 0.3333 0.25000.5000 0.3333 0.2500 0.20000.3333 0.2500 0.2000 0.16670.2500 0.2000 0.1667 0.1429A =0.5000 0.3333 0.25000.3333 0.2500 0.20000.2500 0.2000 0.16670.2000 0.1667 0.1429A =0.5000 0.3333 0.25000.3333 0.2500 0.20000.2500 0.2000 0.1667X =1.20000.60000.6000X1 =3.0000-6.60006.6000N =1N1 =1Na =1.3533e+003(3)计算系数矩阵的条件数并分析结论。
无5建立矩阵A,试比较sqrtm(A)和sqrt(A),分析它们的区别。
A=[1,4,9;16,25,36;49,64,81]B=sqrtm(A)C=sqrt(A) %sqrtm函数是以矩阵为单位进行计算,sqrt函数是以矩阵中的元素进行计算A =1 4 916 25 3649 64 81B =0.6344 + 1.3620i 0.3688 + 0.7235i 0.7983 - 0.4388i1.4489 + 1.1717i2.7697 + 0.6224i3.2141 - 0.3775i4.3578 - 1.6237i5.7110 - 0.8625i 7.7767 + 0.5231iC =1 2 34 5 67 8 96将100个学生5门功课的成绩存入矩阵P中,进行如下处理:(1)分别求每门课的最高分、最低分及相应学生序号。
A=45+(95-45)*rand(100,5);[Y,U]=max(A)[X,U]=min(A)运行结果:Y =94.9721 93.9250 94.5146 94.3265 94.5999 U =94 80 45 14 87X =45.3517 45.6929 45.3851 45.0906 45.2279 U =48 23 27 23 60(2)分别求每门课的平均分和标准方差。
A=45+(95-45)*rand(100,5);aver=mean(A)s1=std(A)运行结果:aver =67.1876 70.1262 69.0017 71.0174 70.3569 s1 =13.2273 14.1307 13.8053 15.1191 14.7097(3)5门课程总分的最高分、最低分及相应学生序号。
A=45+(95-45)*rand(100,5);B=sum(A,2)disp('最高分及学号:'),[Y,U]=max(B)disp('最低分及学号:'),[X,U]=min(B)运行结果:最高分及学号:Y =432.6472U =84最低分及学号:X =287.6246U =50(4)将5门课总分按从大到小顺序存入zcj中,相应学生序号存入xsxh。
A=45+(95-45)*rand(100,5);B=sum(A,2);[X,I]=sort(B);zcj=flipud(X)xsxh=flipud(I)提示:编程时,为避免输入学生成绩的麻烦,可用取值范围在[45,95]之间的随机矩阵来表示学生成绩。
7利用MATLAB提供的rand函数生成30000个符合均匀分布的随机数,然后检验随机数的性质:(1)均值和标准方差;(2)最大元素和最小元素;(3)大于0.5的随机数个数占总数的百分比。
A=rand(1,30000);aver=mean(A)s1=std(A)max=max(max(A))min=min(min(A))k=find(A>0.5);a=length(k);disp('百分比是:'),per=a/30000运行结果:均值是:aver =0.4982s1 =0.2889max =1.0000min =4.8158e-005百分比是:per =0.49888分别用3种不同的数值方法求解线性方程组。
(提示:LU 函数、inv 函数)6525494133422139211x y z u x y z u x y z u x y u +-+=-⎧⎪-+-=⎪⎨++-=⎪⎪-+=⎩ 9求函数3cos log ()xx x x x f x e ++=在(0,1)内的最小值。
10已知x=6,y=5,利用符号表达式:z =。
(提示:定义符号常数('6')x sym =,('5')y sym =) x=sym('6'),y=sym('5')x =6y =5>> z=(x+1)/(sqrt(3+x)-sqrt(y))z =7/(3-5^(1/2))11已知:1010100001P ⎡⎤⎢⎥=⎢⎥⎢⎥⎣⎦,2100010101P ⎡⎤⎢⎥=⎢⎥⎢⎥⎣⎦,a b c A d e f g hi ⎡⎤⎢⎥=⎢⎥⎢⎥⎣⎦求: (1)12B P P A =。
(2)B 的逆矩阵并验证结果。
(3)包括B 矩阵主对角线元素的下三角阵。
(4)B 的行列式值。
提示:用于数值矩阵分析的有关函数同样适用于符号矩阵。
验证结果时须将结果化简。
(1)B=P1⨯ P2⨯AP1=[0 1 0;1 0 0;0 0 1]P1 =0 1 01 0 00 0 1>> P2=[1 0 0;0 1 0;1 0 1]P2 =1 0 00 1 01 0 1>>a=sym('a');b=sym('b');c=sym('c');d=sym('d');e=sym('e');f=sym('f');g=sym('g');h=sym('h');i=sym('i');>> A=[a b c;d e f;g h i]A =[ a, b, c][ d, e, f][ g, h, i]B=P1*P2*AB =[ d, e, f][ a, b, c][ a+g, b+h, c+i](2)B的逆矩阵并验证结果C=inv(B)C =[ (i*b-c*h)/(i*d*b-d*c*h-i*a*e+a*f*h+g*e*c-g*f*b),(-e*c-i*e+f*b+f*h)/(i*d*b-d*c*h-i*a*e+a*f*h+g*e*c-g*f*b),-(-e*c+f*b)/(i*d*b-d*c*h-i*a*e+a*f*h+g*e*c-g*f*b)][ -(i*a-c*g)/(i*d*b-d*c*h-i*a*e+a*f*h+g*e*c-g*f*b),-(-d*c-i*d+f*a+f*g)/(i*d*b-d*c*h-i*a*e+a*f*h+g*e*c-g*f*b),(-d*c+f*a)/(i*d*b-d*c*h-i*a*e+a*f*h+g*e*c-g*f*b)][ (a*h-b*g)/(i*d*b-d*c*h-i*a*e+a*f*h+g*e*c-g*f*b),(-d*b-d*h+e*a+e*g)/(i*d*b-d*c*h-i*a*e+a*f*h+g*e*c-g*f*b),-(-d*b+e*a)/(i*d*b-d*c*h-i*a*e+a*f*h+g*e*c-g*f*b)] (3)包括B矩阵主对角线元素的下三角阵tril(B)ans =[ d, 0, 0][ a, b, 0][ a+g, b+h, c+l](4)B的行列式值det(B)ans =i*d*b-d*c*h-i*a*e+a*f*h+g*e*c-g*f*b12 用符号方法求下列极限或导数。