MATLAB实验二
- 格式:doc
- 大小:128.50 KB
- 文档页数:6
实验二 MATLAB 矩阵分析与处理班级 姓名 学号1. 设有分块矩阵33322322E R A O S ⨯⨯⨯⨯⎡⎤=⎢⎥⎣⎦,其中E 、R 、O 、S 分别为单位矩阵、随机矩阵、零矩阵和对角矩阵,试通过数值计算验证22+E R RS A O S ⎡⎤=⎢⎥⎣⎦。
>> E=eye(3);>> R=rand(3,2);>> O=zeros(2,3);>> S=diag([1 2]);>> A=[E R;O S];>> A^2>> B=[E R+R*S;O S^2]2. 产生5阶希尔伯特矩阵H 和5阶帕斯卡矩阵P ,且求其行列式的值Hh 和Hp 以及它们的条件数Th 和Tp ,判断哪个矩阵性能更好。
为什么?>> H=hilb(5);>> P=pascal(5);>> Hp=det(P);>> Hh=det(H);>> Th=cond(H,2)>> Tp=cond(P,2)3. 建立一个55⨯矩阵,求它的行列式值、迹、秩和范数。
>> A=rand(5);>> det(A);>> trace(A);>> rank(A);>> norm(A,1);>> norm(A,2);>> norm(A,inf);4. 已知 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.83515. 下面是一个线性方程组1231/21/31/40.951/31/41/50.671/41/51/60.52x x x ⎡⎤⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎣⎦(1)求方程的解。
北京工业大学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 程序设计一、 实验目的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 语句填写上相关注释,说明其含义或功能。
实验二 微分方程求解一、问题背景与实验目的实际应用问题通过数学建模所归纳而得到的方程,绝大多数都是微分方程,真正能得到代数方程的机会很少.另一方面,能够求解的微分方程也是十分有限的,特别是高阶方程和偏微分方程(组).这就要求我们必须研究微分方程(组)的解法,既要研究微分方程(组)的解析解法(精确解),更要研究微分方程(组)的数值解法(近似解).对微分方程(组)的解析解法(精确解),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))。
实验二、MA TLAB运算基础一、实验目的掌握MA TLAB各种表达式的书写规则及常用函数的使用。
掌握MA TLAB中字符串、元胞数组和结构的常用函数的使用。
二、实验内容及步骤1、设有矩阵A和B,A=[1 2 3 4 5;6 7 8 9 10;11 12 13 14 15;16 1718 19 20;21 22 23 24 25],B=[3 0 16;17 -6 9;0 23 -4;9 7 0;4 1311]1)求它们的乘积C2)将矩阵C的右下角3x2子矩阵赋给D>> A=[1:1:5;6:1:10;11:1:15;16:1:20;21:1:25];B=[3 0 16;17 -6 9;0 23 -4;9 7 0;4 13 11];...C=A*B,D=C(3:5,2:3)C =93 150 77258 335 237423 520 397588 705 557753 890 717D =520 397705 557890 7172、完成下列操作1)求[100,999]之间能被61整除的数及其个数(提示:先利用冒号表达式,再利用find和length函数。
)>> A=[100:999];B=find(rem(A,61)==0),B_total=length(B)B =23 84 145 206 267 328 389 450 511 572633 694 755 816 877B_total =152)建立一个字符串向量,删除其中的大写字母(提示:利用find函数和空矩阵。
)>> a=['MA TLAB is important'], b=abs(a); c=find(b<=90 & b>=65) , a(c)=[],a =MA TLAB is importantc = 1 2 3 4 5 6a =is important⑶已知A=[23 10 -78 0;41 -45 65 5;32 5 0 32;6 -5492 14],取出其前3行构成矩阵B,其前两列构成矩阵C,其左下角3x2子矩阵构成矩阵D,B与C的乘积构成矩阵E,分别求E<D、E&D、E|D、~E|~D。
实验二 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数学实验第二版课后练习题含答案课后练习题MATLAB数学实验第二版的课后练习题如下:第一章课后练习题1.编写MATLAB程序,计算并输出下列公式的结果:y = \\frac{1}{\\sqrt{2\\pi\\sigma^2}} e^{-\\frac{(x-\\mu)^2}{2\\sigma^2}}其中,x, $\\mu$, $\\sigma$ 分别由用户输入。
要求输出结果精确至小数点后两位。
答案如下:x=input('请输入 x 的值:');mu=input('请输入 mu 的值:');sigma=input('请输入 sigma 的值:');y=1/sqrt(2*pi*sigma^2) *exp(-(x-mu)^2/ (2*sigma^2));fprintf('y = %.2f\', y);2.编写MATLAB程序,求解下列方程的解:4x + y = 11\\\\x + 2y = 7答案如下:A= [4,1;1,2];B= [11;7];X=inv(A) *B;fprintf('x = %.2f, y = %.2f\', X(1), X(2));第二章课后练习题1.编写MATLAB程序,计算下列多项式的值:P(x) = x^4 - 2x^3 + 3x^2 - x + 1其中,x 由用户输入。
要求输出结果精确至小数点后两位。
答案如下:x=input('请输入 x 的值:');y=x^4-2*x^3+3*x^2-x+1;fprintf('P(%.2f) = %.2f\', x, y);2.编写MATLAB程序,绘制下列函数的图像:f(x) = \\begin{cases} x + 1, & x < 0 \\\\ x^2, & 0 \\leq x < 1 \\\\ 2x - 1, & x \\geq 1 \\end{cases}答案如下:x=-2:0.01:2;y1=x+1;y2=x.^2.* ((x>=0) & (x<1));y3=2*x-1;plot(x,y1,x,y2,x,y3);legend('y1 = x + 1','y2 = x^2','y3 = 2x - 1');总结本文提供了《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)。
实验二MA TLAB绘图一.实验环境
计算机MA TLAB软件
二.实验目的
1.掌握MA TLAB的基本绘图命令。
2.掌握运用MA TLAB绘制一维、二维、三维图形的方法。
3.给图形加以修饰。
三.实验内容和步骤
1.创建一个5*5魔方矩阵,并画出表示这个矩阵的图形。
解:在命令区输入:
2.在同一坐标轴里绘出y=sin(x),z=cos(x) 两条曲线。
解:在命令区输入:
3.画出y=x^2曲线,(x (-5,5))。
在这曲线上加入相同区间里的y=x^(1/3)的曲线,并要求采用绿色的折线标记。
解:在命令区输入:
4.在同一窗口,不同坐标系里分别绘出y1=sinx,y2=cosx.,y3=sinh(x),y4=cosh(x)4个图形。
解:在命令区输入:
5.绘制一个三维图形x=cosp,y=sinp,z=p。
解:在命令区输入:
三.练习
1.画出横坐标在(-15,15)上的函数y=cos(x)的曲线。
解:
2.用图形表示离散函数y=1/|(n-6)|,并加入网络。
解:
3.用图形连续调制波形y=sin(t)sin(9t)及包络线。
解:。