MATLAB结课作业

合集下载

MATLAB课程作业

MATLAB课程作业

注意:11月15日是交作业的最后期限。

(交word和MATLAB程序清单,word以“班级-学号-姓名”命名,每个MATLAB程序以”zuoye_题号”命名后,放在一个文件夹下(文件夹命名为“作业程序”),如zuoye_1_1.m),将word和“作业程序”文件夹放在一个文件夹(文件夹以“班级-学号-姓名”)交到班长处,班长统一交到教学办公室。

第一部分程序设计1.1、用MA TLAB可以识别的格式输入下面两个矩阵:(1) 矩阵A的维数;(2) 矩阵A中的元素a41的值;(3) 修改矩阵A的元素,使a41 =3.0;(4) 矩阵A中最后2行和最后3列交汇形成的子矩阵的值。

(5)求出A和B的乘积矩阵C,并将C矩阵的右下角2X 3子矩阵赋给D矩阵。

1.2、已知111121111,131,111214A B⎡⎤⎡⎤⎢⎥⎢⎥=-=-⎢⎥⎢⎥⎢⎥⎢⎥-⎣⎦⎣⎦求(1)AB-2A,(2)A*B,(3)A﹒*B,(4) AB-BA 1.3、解线性方程:1.4、解方程组:1.5、用MA TLAB语言实现下面的分段函数:1.6、已知x=[1 2 3 ],y=[4 5 6 ],试计算z=x.*y 、x.\y 和x./y.1.7、分别用for 和while 循环语句编写程序,求出1.8、 已知在平面坐标中两点(x 1, y 1)和(x 2, y 2)之间的距离计算公式为 ()()222121y y x x L -+-=(1) 利用命令文件的形式,编写求解该距离的M 文件dis1.m ;(2) 利用函数文件的形式,编写求解该距离的M 文件dis2.m ;(3) 给定两点坐标的值(2,3)和(8, -5),试分别调用命令文件dis1.m 和函数文件dis2.m 求解该两点间距离的值。

1.9、求解方程x 5+6x 3一3x 2=10的5个根,并将其位置用五角星符号标记在复平面上,要求横纵坐标袖的刻度等长,注明虚轴和实轴,在title 位置上写㈩方程。

最后的matlab大作业

最后的matlab大作业

课程:《控制系统MATLAB仿真》课程作业与总结院系:智能工程学院专业:工业机器人技术班级:机器人181学生姓名:李飞学号:1802262135指导教师:陈浩然2019年 6月3日一、简述MATLAB/Simulink的特点1. MATLAB的特点(1)便利的开发环境。

MATLAB提供了一组具有GUI的工具,包括MATLAB主窗口、文件编辑器、帮助文档等。

(2)强大的数学计算能力。

MATLAB可进行包括基本函数、复杂算法、高级矩阵运算等非常强大的数学计算功能,特别适合矩阵代数领域的应用。

更别说,其他许多高性能数值计算的高级算法与极其丰富的库函数。

(3)强大的图形功能。

MATLAB提供了丰富的绘图函数命令,并且具有较强的编辑图形界面的能力,对于图形的编辑和设置完全可以在可视化环境下进行。

(4)强大的工具箱。

MATLAB工具箱分为功能性工具箱和学科性工具箱两类。

功能性工具箱:主要用于扩充符号计算功能、图示建模仿真功能、文字处理功能以及与硬件实时交互功能。

学科性工具箱:由相关专业领域内的专家编写,专业性强。

2. Simulink 的特点(1)建模方式直观。

Simulink是一种图形化的仿真工具,利用其可视化的建模方式,可迅速地建立动态系统的框图模型。

(2)模块可定制。

Simulink允许自定义模块的使用,可以对模块的图标、对话框等进行自定义编辑。

Simulink也允许将C、FORTRAN、Ada代码直接移植到Simulink模型当中。

(3)复杂系统的层次性。

Simulink利用子系统模块,使得庞杂的系统模型构建变得简单易行。

整个系统可以按照自上而下或自下而上的方式进行分层构建,子系统的嵌套使用不受限制。

(4)仿真分析的交互性。

Simulink提供示波器等观察器,用于对动画或图形的显示。

仿真过程中,利用这些观察器可以监视仿真结果。

这种交互式特性能让开发者快速进行算法评估以及参数优化。

二、简述自己课堂收获通过学习MATLAB,我发现原来代码也是可以有趣的,只有自己想学习一门课程才可以学好,这几周的学习使我对这门课程有了大致的认识和一些很简单的操作,认真严谨的学习态度是学好这门功课必不可少的因素,虽然只是选修课,但不能因是选修就不重视,人生当中有许多需要学习的地方,活到老学到老的精神值得我们发扬传承,对待每一件事情,只有认真负责的态度,你才可以做好学好它,不要小看每一件事物,因为它可能会改变你的一生。

MATLAB期末大作业

MATLAB期末大作业

MATLAB期末⼤作业学号:姓名:《Matlab/Simulink在数学计算与仿真中的应⽤》⼤作业1.假设地球和⽕星绕太阳运转的半径分别为r和2r,利⽤comet指令动画显⽰从地球到⽕星的转移轨迹(r可以任意取值,要求实时显⽰探测器、太阳、地球和⽕星的位置)。

解函数function comet(varargin)[ax,args,nargs] = axescheck(varargin{:});error(nargchk(1,3,nargs,'struct'));% Parse the rest of the inputsif nargs < 2, x = args{1}; y = x; x = 1:length(y); endif nargs == 2, [x,y] = deal(args{:}); endif nargs < 3, p = 0.10; endif nargs == 3, [x,y,p] = deal(args{:}); endif ~isscalar(p) || ~isreal(p) || p < 0 || p >= 1error('MATLAB:comet:InvalidP', ...'The input ''p'' must be a real scalar between 0 and 1.'); End指令 %particle_motiont = 0:5:16013;r1=6.7e6;%随便给定参数%---------------------------r2=2*r1;g=9.8;R=6.378e6;m=g*R^2;%内轨道v_inner=sqrt(m/r1);w_inner=v_inner/r1;x_inter=r1*cos(w_inner*t);y_inter=r1*sin(w_inner*t);%外轨道v_outer=sqrt(m/r2);w_outer=v_outer/r2;x_outer=r2*cos(w_outer*t);y_outer=r2*sin(w_outer*t);%控制器转移轨道a=(r1+r2)/2;E=-m/(2*a);V_near=sqrt(m*(2/r1-2/(r1+r2)));%转移轨道在近地点的速度V_far=sqrt(m*(2/r2-2/(r1+r2)));%转移轨道在远地点的速度h=r1*V_near;%由于在近地点的速度垂直于位置失量, h是转移轨道的⽐动量矩e=sqrt(1+2*E*h^2/m^2);%e为椭圆轨迹的偏⼼率TOF=pi*sqrt(a^3/m);%转移轨道是椭圆的⼀半及飞⾏时间是周期的⼀半(开普勒第三定律) w=pi/TOF;%椭圆轨迹的⾓速度c=a*e;b=sqrt(a^2-c^2);x_ellipse=a*cos(w*t)-0.5*r1;y_ellipse=b*sin(w*t);%动画显⽰运动轨迹x=[x_inter;x_outer;x_ellipse]';y=[y_inter;y_outer;y_ellipse]';comet(x,y)%---------------------------动态图像如下:2.利⽤两种不同途径求解边值问题dfdxf gdgdxf g f g=+=-+==34430001,,(),()的解.途径⼀:指令syms f g[f,g]=dsolve('Df=3*f+4*g,Dg=-4*f+3*g','f(0)=0,g(0)=1'); disp('f=');disp(f)disp('g=');disp(g)结果(Matlab 7.8版本)f=i/(2*exp(t*(4*i - 3))) - (i*exp(t*(4*i + 3)))/2g=exp(t*(4*i + 3))/2 + 1/(2*exp(t*(4*i - 3)))(Matlab 6.5版本)f=exp(3*t)*sin(4*t)g=exp(3*t)*cos(4*t)>>途径⼆:%problem2function dy=problem2(t,y)dy = zeros(2,1);dy(1) = 3*y(1)+4*y(2);dy(2) = -4*y(1)+3*y(2);[t,y] = ode45('problem2',[0 2],[0 1]);plot(t,y(:,1),'r',t,y(:,2),'b');图23.假设著名的Lorenz 模型的状态⽅程表⽰为-+-=+-=+-=)()()()()()()()()()()()(322133223211t x t x t x t x t x t x t x t x t x t x t x t x σρρβ其中,设28,10,3/8===σρβ。

matlab期末大作业

matlab期末大作业

matlab期末⼤作业MATLAB语⾔及控制系统仿真期末⼤作业姓名:熊睿班级:K0312417学号:K031241742⽇期:2014/10/18⼤作业题⽬:⼀、已知单位负反馈系统的开环传递函数为)10)(5(100)(++=s s s Ks G ,K 分别取0.5和3两种情况。

1、分别在MATLAB 命令窗⼝或Simulink 模型窗⼝,建⽴K 取不同值时控制系统的模型;2、在第1问建⽴的模型基础上,要求分别在MATLAB 命令窗⼝或Simulink 模型窗⼝中绘制并观察该系统的单位阶跃响应曲线、单位斜坡响应曲线和单位加速度响应曲线;(注意:要求将K 取不同值时系统的单位阶跃响应绘制在⼀张图中并进⾏必要的标注)3、计算两种K 值所对应系统的时域性能指标(包括调节时间、上升时间、超调量、峰值时间);4、绘制系统的伯德图和奈奎斯特曲线;5、判断当K 取7.8时系统的稳定性,如果不稳定,进⾏校正直到系统稳定为⽌。

(提⽰:可使⽤rltool ⼯具)要求:有详细的建模过程、绘图过程和分析过程,最后要求进⾏总结。

⼆、写⼀份800字左右的MATLAB 学习体会和总结。

⼀、已知单位负反馈系统的开环传递函数为)10)(5(100)(++=s s s Ks G ,K 分别取0.51、分别在MATLAB 命令窗⼝或Simulink 模型窗⼝,建⽴K 取不同值时控制系统的模型;根据题⽬,在simulink 中建⽴程序图,如图○1,利⽤To workspace 将数据导⼊workspace 中,在cammond window 中⽤plot 函数画出两个不同增益的系统的阶跃响应。

如图○2 命令窗⼝中的程序:plot(tout,Y,’r ’,tout ’Y2,’k ’)图○11234567891000.511.5时间(秒)幅值阶跃响应曲线K=0.5K=3图○22、在第1问建⽴的模型基础上,要求分别在MATLAB命令窗⼝或Simulink模型窗⼝中绘制并观察该系统的单位阶跃响应曲线、单位斜坡响应曲线和单位加速度响应曲线;(注意:要求将K取不同值时系统的单位阶跃响应绘制在⼀张图中并进⾏必要的标注)根据题⽬:在1中所创建的程序图的基础下,对K=0.5的系统分别接⼊单位阶跃、单位斜坡和单位加速度输⼊。

matlab1-8章课后作业

matlab1-8章课后作业

MATLAB基础教程 1~8章作业Matlab第一章1.阐述Matlab的功能Matlab作为一种高级计算软件,是进行算法开发、数据可视化、数据分析以及数值计算的交互式应用开发环境,已被广泛应用于不同领域。

Matlab的基本功能包括:数学计算功能、图形化显示功能、M语言编程功能、编译功能、图形用户界面开发功能、Simulink 建模仿真功能、自动代码生成功能。

Matlab第二章1.创建double的变量,并进行计算。

(1) a=87,b=190,计算 a+b、a-b、a*b。

(2)创建 uint8 类型的变量,数值与(1)中相同,进行相同的计算。

>> a=87,b=190a =87b =190>> a+bans =277>> a-bans =-103>> a*bans =16530>> c=uint8(87), d=uint8(190)c =87d =190>> c+dans =255>> c-dans =>> c*dans =2552.计算(1)sin(60)(2)e^3(3)cos(3π/4)>> sind(60)ans =0.8660>> exp(3)ans =20.0855>> cos(3*pi/4)ans =-0.70713.设u=2,v=3,计算:(1)(2)(3)>> u=2;>> v=3;>> 4*u*v/log(v)ans =21.8457>> (exp(u)+v)^2/(v^2-u)ans =15.4189>> sqrt(u-3*v)/(u*v)ans =0 + 0.4410i4.计算如下表达式:(1)(2)>> (3-5*i)*(4+2*i)ans =22.0000 -14.0000i>> sin(2-8*i)ans =1.3553e+003 +6.2026e+002i5.判断下面语句的运算结果。

数字图像处理结课作业--matlab

数字图像处理结课作业--matlab

数字图像处理结课作业班级:姓名:学号:教师:信息工程学院通信工程系一:实验目的1 编写程序,实现图像的边缘检测2 编写程序,用中值滤波的方法,给灰度图像去除噪声3 编写程序,把某图像的灰度图像锐化二:实验原理1边缘检测将图像首先进行灰度处理,处理后的图像才能进行算子的变换分析。

本次实验采用prewitt算子模板,设置适当的阈值,检测到灰度图像中色差较大的地方,显示出来,即为边缘检测。

2中值滤波将图像首先进行灰度处理灰度图像由像素构成,所谓中值滤波,即为把每个点和周围的八个点排序,然后把排在中间位置的值赋给该点。

每个点依次做完以后形成的图像即为中值滤波后的得到的结果。

3 图像锐化先得到灰度图像,像素分为256个等级,0~255之间的数字越大就代表越趋于白色,越小就越趋于黑色,因此,把每个点的值变大(变小)就可以实现图像的锐化(暗化)。

三、实验步骤和结果1边缘检测clear allim1=imread('mayunxiang.jpg');subplot(1,3,1);imshow(im1);title('原始图像');im2=rgb2gray(im1);subplot(1,3,2);imshow(im2);title('灰度图');[m,n]=size(im2);for i=1:mfor j=1:nimy(i,j)=0;imx(j,i)=0;endendfor i=1:m-1for j=1:n-1imy(i,j)=abs(im2(i+1,j)-im2(i,j));imx(i,j)=abs(im2(i,j+1)-im2(i,j));if imx(i,j)>imy(i,j)im3(i,j)=imx(i,j);elseim3(i,j)=imy(i,j);endif im3(i,j)>3im3(i,j)=0;elseim3(i,j)=255-im3(i,j);endendendsubplot(1,3,3);imshow(im3);title('算子');运行结果2中值滤波im1=imread('by.jpg');im2=rgb2gray(im1);im3=imnoise(im2,'salt & pepper',0.2);[m,n]=size(im2);for i=2:m-1for j=2:n-1x=[im2(i-1,j-1) im2(i,j-1) im2(i+1,j-1) im2(i-1,j) im2(i,j) im2(i+1,j) im2(i-1,j+1) im2(i,j+1) im2(i+1,j+1)];y=sort(x);im4(i,j)=y(5);endendsubplot(1,3,1)imshow(im2)subplot(1,3,2)imshow(im3)subplot(1,3,3)imshow(im4)运行结果3 图像锐化im1=imread('by.jpg');im2=rgb2gray(im1);[m,n]=size(im2);subplot(3,2,1);imshow(im2);subplot(3,2,2);a=0;b=120;imhist(im2);for i=1:mfor j=1:nim3(i,j)=im2(i,j)*0.5;endendsubplot(3,2,3)imshow(im3);subplot(3,2,4);imhist(im3);b1=180;a1=0;for i=1:mfor j=1:nim4(i,j)=(im3(i,j)-a)*((b1-a1)./(b-a))+a1;endendsubplot(3,2,5)imshow(im4);subplot(3,2,6);imhist(im4);运行结果四总结写代码过程中经常出现语法错误和逻辑错误,语法错误如忘记写括号、for循环不写end、函数用法不对等情况。

MATLAB 结业解答

MATLAB  结业解答

MATLAB 期末结课大作业(必做题) 要求:抄题、写出操作命令、运行结果,并根据需要,贴上运行图。

1、已知函数x x e x f x sin cos )(-=,作出函数的大致图像。

>> fplot('exp(x)*cos(x)-sin(x)',[-10,10]) >> fplot('exp(x)*cos(x)-sin(x)',[-5,5])2、求下列极限:(1)30sin lim x x x x -→ (2) xx x ⎪⎭⎫ ⎝⎛+∞→11lim (1)>> clear %清除>> syms x; %声明符号变量x>> s1=(x-sin(x))/x^3; %建立符号函数s1>> limit (s1,x,0) % 对是关于变量x 在[x ,0)上求值 ans =1/6(2)>> s2=(1+1/x)^x; %建立符号函数s2>> limit (s2,x,inf) % 对是关于变量x 在[x ,+∞)上求值 ans =exp(1)3、求下列函数的导数:(1)x e y x sin = (2) x e x x y 22sin +=(1)>> clear %清除>> syms x; %创建符号变量x>> y=exp(x)*sin(x); %创建符号函数y>> diff(y) %对y 值进行求导ans =exp(x)*sin(x)+exp(x)*cos(x)(2)>> clear %清除>> syms x; %创建符号变量x>> y=sin(x)+x^2*exp(2*x); %创建符号函数>> diff(y) %对y 进行求导ans =cos(x)+2*x*exp(2*x)+2*x^2*exp(2*x)4、求.)1(532⎰-dx x x 和.sin ⎰xdx e x(1)>> clear>> syms x %创建符号变量x>> s1=x^2*(1-x^3)^5; %创建符号函数s1>> int (s1) %对s1进行求导数ans =-1/18*x^18+1/3*x^15-5/6*x^12+10/9*x^9-5/6*x^6+1/3*x^3(2)>> s2=exp(x)*sin(x); %创建符号函数s2>> int(s2) %对s2进行求导数ans =-1/2*exp(x)*cos(x)+1/2*exp(x)*sin(x)5、求.)(102⎰-dx x x 和.1102⎰-dx x x (1)>> clear %清除>> syms x %定义符号变量x>> s1=x-x^2; %定义符号函数s1>> int(s1,0,1) %对s1关于变量x 在[0,1)上求定积分ans =1/6(2)>> clear %清除>> syms x %定义符号变量x>> s2=x*sqrt(1-x^2);%定义符号函数s1>> int(s2,0,1) %对s2关于变量x 在[0,1)上求定积分ans =1/36、已知二元函数),(cos )sin(2xy xy z +=试求y x z x z y z x z ∂∂∂∂∂∂∂∂∂222,,,。

信号与系统matlab课后作业-北京交通大学

信号与系统matlab课后作业-北京交通大学

信号与系统MATLAB平时作业学院:电子信息工程学院班级::学号:教师:钱满义MATLAB 习题M3-1 一个连续时间LTI系统满足的微分方程为y ’’(t)+3y ’(t)+2y(t)=2x ’(t)+x(t)(1)已知x(t)=e -3t u(t),试求该系统的零状态响应y zs (t); (2)用lism 求出该系统的零状态响应的数值解。

利用(1)所求得的结果,比较不同的抽样间隔对数值解精度的影响。

解:(1) 由于''()3'()2()2'()(),0h t h t h t t t t δδ++=+≥则2()()()t t h t Ae Be u t --=+ 将()h t 带入原方程式化简得(2)()()'()2'()()A B t A B t t t δδδδ+++=+所以1,3A B =-=2()(3)()t t h t e e u t --=-+又因为3t ()()x t e u t -= 则该系统的零状态响应3t 23t 2t ()()()()(3)()0.5(6+5)()zs t t t y t x t h t e u t e e u t e e e u t ----=*=*-+=-- (2)程序代码 1、ts=0;te=5;dt=0.1;sys=tf([2 1],[1 3 2]);t=ts:dt:te;x=exp(-3*t).*(t>=0);y=lsim(sys,x,t)2、ts=0;te=5;dt=1;sys=tf([2 1],[1 3 2]);t=ts:dt:te;x=exp(-3*t).*(t>=0);y1=-0.5*exp(-3*t).*(exp(2*t)-6*exp(t)+5).*[t>=0];y2=lsim(sys,x,t)plot(t,y1,'r-',t,y2,'b--')xlabel('Time(sec)')legend('实际值','数值解')用lism求出的该系统的零状态响应的数值解在不同的抽样间隔时与(1)中求出的实际值进行比较将两种结果画在同一幅图中有图表 1 抽样间隔为1图表 2 抽样间隔为0.1图表 3 抽样间隔为0.01当抽样间隔dt减小时,数值解的精度越来越高,从图像上也可以看出数值解曲线越来越逼近实际值曲线,直至几乎重合。

matlab1-8章课后作业

matlab1-8章课后作业

MATLAB基础教程1~8章作业Matlab第一章1.阐述Matlab的功能Matlab作为一种高级计算软件,是进行算法开发、数据可视化、数据分析以及数值计算的交互式应用开发环境,已被广泛应用于不同领域。

Matlab的基本功能包括:数学计算功能、图形化显示功能、M语言编程功能、编译功能、图形用户界面开发功能、Simulink建模仿真功能、自动代码生成功能。

Matlab第二章1.创建double的变量,并进行计算。

(1)a=87,b=190,计算a+b、a-b、a*b。

(2)创建uint8 类型的变量,数值与(1)中相同,进行相同的计算。

>> a=87,b=190a =87b =190>> a+bans =277>> a-bans =-103>> a*bans =16530>> c=uint8(87), d=uint8(190)c =87d =190>> c+dans =255>> c-dans =ans =2552.计算(1)sin(60)(2)e^3(3)cos(3π/4)>> sind(60)ans =0.8660>> exp(3)ans =20.0855>> cos(3*pi/4)ans =-0.70713.设u=2,v=3,计算:(1)(2)(3)>> u=2;>> v=3;>> 4*u*v/log(v)ans =21.8457>> (exp(u)+v)^2/(v^2-u) ans =15.4189>> sqrt(u-3*v)/(u*v) ans =0 + 0.4410i 4.计算如下表达式:(1)(2)>> (3-5*i)*(4+2*i)22.0000 -14.0000i>> sin(2-8*i)ans =1.3553e+003 +6.2026e+002i5.判断下面语句的运算结果。

最速下降法求最优解西安电子科技大学matlab结课大作业

最速下降法求最优解西安电子科技大学matlab结课大作业

西安电子科技大学课程论文数学软件与实验最速下降法求最优解姓名:方正阳学号:07117020班级:07117107112016、最速下降法求最优解1 2 n,然后MATLAB 结课大作业摘要:最速下降法,又称为梯度法,是一种重要的无约束最优化方法。

它是 1847年由著名数学家 Cauchy 给出的,其他解析方法或是它的变形,或是受它 启发而得到,因此它是最优化方法的基础。

该法将 n 维问题转化为一系列 不断迭代过程中沿负梯度方向用一维搜索方法寻优的问题,本次程序设计 利用最速下降法算法,反复迭代,最终收敛于局部最优点,即为解出的二 元函数的无约束非线性规划问题 minf(x,y)。

引言:最优化理论作为运筹学中的一个重要理论方法,在工业生产,金融经济活 动,工商管理,国防建设,计算机应用中,都有着重要的应用。

最优化理论 通过给出生产活动中的各类实际问题的数学模型,通过最优化方法,寻求 该问题的最优解或满意解。

最速下降算法是最优化理论中常见的一个重要 算法,理论证明:最速下降算法在一定条件下是收敛的,它能够有效地求 解一部分无约束最优化问题。

一、 实验目的熟悉最速下降法算法思想和步骤,用 MATLAB 语言编程最速下降法 求最优值。

二、 实验要求在最优化计算方法中,要求解 y = f (x 1, x 2 , , x n ) 的局部最小值,可以采用如下的方法进行迭代计算:先给出初始点 x 0 = (x 0 , x 0 , , x 0)根据其梯度方向 ∇f (x 0),计算一元函数 y (λ1 ) = min f (x λ≥0 0-λ⋅∇f (x 0 )) ,并1 0 0得到x = x -λ1 ⋅∇f (x ) 。

如此反复迭代,最终收敛于局部最优点。

实现 该算法,求 的最优值,a,b,c,d 自定(非 0)三、 实验假设考虑到参数的随机性、代表性,验证程序的正确性、典型性,在此 我们从两个角度出发,一是在 abcd 值确定的情况下改变初始搜索位置 x0,看函数最优解是否相同;二是初始搜索位置 x0 相同,abcd 值不同的 情况下,看函数最优解是否相同。

matlab期末大作业题目及答案

matlab期末大作业题目及答案

matlab 期末大作业(30分,每题6分)1. 积分运算(第四数值和五章符号)(1)定积分运算:分别采用数值法(quad ,dblquad )和符号运算(syms, int )一重定积分π⎰1. 数值法(quad )a) 运行代码:b) 运行结果:2. 符号运算(syms )a) 运行代码:b) 运行结果:二重定积分112200()x y dxdy+⎰⎰1.数值法(dblquad):a)运行代码:b)运行结果:2.符号运算(syms):a)运行代码:b)运行结果:(2) 不定积分运算sin dxdy ⎰⎰((x/a)+b/y) i.运行代码:ii.运行结果:2. 用符号法和数值法求解线性代数方程 (第五章和第二章)⎩⎨⎧=+=+12*22x *213*12x *a11y a a y a (1) 用syms 定义待解符号变量x,y 和符号参数a11,a12,a21,a22,用符号solve 求x,y 通解 1. 运行代码:2. 运行结果:(2) 用subs 带入a11=2,a12=4,a21=6,a22=8,求x 和y 特解,用vpa 输出有效数值4位的结果 1. 运行代码:2. 运行结果:(3) 采用左除(\)和逆乘法求解符号参数赋值后的方程 ⎩⎨⎧=+=+12*8x *63*4x *2y y1. 运行代码:2. 运行结果:3.数值法和符号法求解非线性方程组(第四数值和五章符号 )(1)采用数值法(fsolve )求解初始估计值为x0 = [-5; -5]的数值解1. 运行代码:2. 运行结果:21x 21x 21e x 2x e x x 2--=+-=-(2)符号法(solve )的符号结果用eval 或double 转化为数值结果.1. 运行代码:2. 运行结果:4. 解二阶微分方程 (第四数值和五章符号 )⎪⎩⎪⎨⎧===++6)0(',0)0(09322y y y dx dy dx y d(1)数值ode 求特解,用plot (x,y) 画t 在[0,10]范围内(x ,y )数值曲线 1. 运行代码:2. 运行结果:(2)符号运算dsolve求通解,用ezplot画t在[0,10]范围内(x,y)符号曲线1. 运行代码:2. 运行结果:5. 三维绘图(第六章)已知:x和y都在[-8,8]范围内,采用subplot(3,1,x)绘制三个子图,它们分别是用meshgrid和mesh绘制网格图、用c=contour 绘制等位线和用surf 绘制曲面图1.运行代码:2.运行结果:。

简单计算器设计matlab结课作业

简单计算器设计matlab结课作业

通信与信息工程学院MATLAB语言程序设计结课作业题目:简单计算器设计班级:电信1303姓名:任前学号:xxxxxxx实验名称:简单计算器设计成绩:评语:通信与信息工程学院二〇一五年目录1. 功能描述 (1)2. 源程序 (9)3. 结果分析 (9)4. 总结 (29)1.功能描述(截图)图1-1.图1-2.图1-3.2.源程序代码clearclcwhile(1) %实现实现计算循环操作功能模块disp(' ########****简单计算器操作****####### ') disp(' ### 选项 ### ')disp(' ### 1: 基本运算 ### ')disp(' ### 2: 进阶运算 ### ')disp(' ### 3: 三角函数运算与仿真 ### ')disp(' ### 4: 符号运算 ### ') disp(' ### 5: 随机数运算(100以内) ### ')disp(' ### 6: 3个数的运算(16个以下) ### ') disp(' ### 7: 数学函数运算 ### ')disp(' ### 8: 退出操作 ### ')disp(' ########****简单计算器操作****##### ')x=input('请输入所需操作的选项: ');disp(' ');%实现主界面操作功能模块while (x==1) %实现简单基本运算操作功能模块disp(' ');disp(' ###现在开始基本运算###');a=input('请输入一个运算数: ');b=input('请再输入一个运算数:');disp(' ########****基本运算操作****####### ') disp(' ### 运算功能符 ### ')disp(' ### 1: 加法运算 ### ')disp(' ### 2: 减法运算 ### ')disp(' ### 3: 乘法运算 ### ')disp(' ### 4: 右除运算 ### ') disp(' ### 5: 左除运算 ### ')disp(' ### 6: 退出操作 ### ')disp(' ########****简单计算器操作****##### ')c=input('输入运算功能符选项: ');[m n]=size(a);[m n]=size(b);e=size(a,1);f=size(b,1);switch ccase 1d=a+bcase 2d=a-bcase 3if(e==1&&f==1)d=a.*belsed=a*bendcase 4if(e==1&&f==1)d=a./belsed=a/bendcase 5if(e==1&&f==1)d=a.\belsed=a\bendcase 6disp(' 退出操作 ')clcbreakendendwhile (x==2) %实现矩阵运算操作功能模块disp(' ');disp(' ###现在开始矩阵运算### ');a=input('请输入矩阵: ');disp(' ########**矩阵运算操作**######## ') disp(' ### 运算功能符 ### ')disp(' ### 1: 特征值 ### ')disp(' ### 2: 根值 ### ')disp(' ### 3: 特征向量 ### ')disp(' ### 4: 实对角矩阵 ### ')disp(' ### 5: 行列式值 ### ')disp(' ### 6: 左右翻转 ### ')disp(' ### 7: 转置 ### ')disp(' ### 8: 逆矩阵 ### ')disp(' ### 9: 秩 ### ')disp(' ### 10: 共轭 ### ') disp(' ### 11: 模 ### ')disp(' ### 12:退出操作 ### ')disp(' ########**矩阵运算操作**######## ') c=input('输入运算功能符: ');[m n]=size(a);e=size(a,1);f=size(a,2);if (e==f)switch ccase 1d=eig(a)case 2d=root(a)case 3[V,D]=eig(a);d=[V,D]case 4[V,D]=cdf2rdf(v,d);d=[V,D]case 5d=det(a)case 6d=fliplr(a)case 7d=(a)'case 8d=inv(a)case 9d=rank(a)case 10d=conj(a)case 11d=abs(a)case 12disp(' 退出操作 ')clcbreakendelseclcbreakendendwhile (x==3) %实现三角函数运算操作功能模块disp(' ');disp(' ###现在开始运行三角函数及仿真运算###'); h=input('请输入数值: ');disp(' ########**三角函数操作**######## ') disp(' ### 运算功能符 ### ')disp(' ### 1: 正弦 ### ')disp(' ### 2: 余弦 ### ')disp(' ### 3: 正切 ### ') disp(' ### 4: 反正弦 ### ')disp(' ### 5: 反余弦 ### ')disp(' ### 6: 反正切 ### ')disp(' ### 7: 正割 ### ')disp(' ### 8: 余割 ### ')disp(' ### 9:退出操作 ### ')disp(' ########**矩阵运算操作**######## ')c=input('输入运算功能符: ');h=0:0.01:4*pi;switch ccase 1j=sin(h);xlabel('h')ylabel('j=sin(h)')text(3*pi/4,sin(3*pi/4),'rightarrowsin(h)=0.707') text(7*pi/4,sin(7*pi/4),'leftarrowsin(h)=0.707') title('三角函数仿真图')%disp(j);plot(h,j)case 2j=cos(h);xlabel('h')ylabel('j=cos(h)')text(3*pi/4,cos(3*pi/4),'rightarrowcos(h)=0.707') text(7*pi/4,cos(7*pi/4),'leftarrowcos(h)=0.707') title('三角函数仿真图')%disp(j);plot(h,j)case 3j=tan(h);xlabel('h')ylabel('j=tan(h)')title('三角函数仿真图')%disp(j);plot(h,j)case 4j=asin(h);xlabel('h')ylabel('j=asin(h)')title('三角函数仿真图')%disp(j);plot(h,j)case 5j=acos(h);xlabel('h')ylabel('j=acos(h)')title('三角函数仿真图')%disp(j)plot(h,j)case 6j=atan(h);xlabel('h')ylabel('j=atan(h)')title('三角函数仿真图')%disp(j)plot(h,j)case 7j=sec(h);xlabel('h')ylabel('j=sec(h)')title('三角函数仿真图')%disp(j);plot(h,j)case 8j=csc(h);xlabel('h')ylabel('j=csc(h)')title('三角函数仿真图')%disp(j);plot(h,j)case 9disp(' 退出操作 ')clcbreakendendwhile (x==4) %实现符号运算操作功能模块disp(' ');disp(' ###现在开始符号运算###');syms x a c ya=input('请输入只含x的函数: ');disp(' ########**符号运算操作**######## ') disp(' ### 功能运算符 ### ')disp(' ### 1: 合并同类项 ### ')disp(' ### 2: 因式分解 ### ')disp(' ### 3: 化简 ### ')disp(' ### 4: 取反 ### ')disp(' ### 5: 展开 ### ')disp(' ### 6:微分 ### ')disp(' ### 7: 分子、分母的提取 ### ')disp(' ### 8: 取极限 ### ')disp(' ### 9: 级数求和 ### ')disp(' ### 10: 积分 ### ')disp(' ### 11:退出操作 ### ')disp(' ########**符号运算操作**######## ') c=input('请输入功能运算符选项: ');y=sym(a);%d=collect(y);%pretty(d) %符号函数的可视化易读形式switch ccase 1 %1: 合并同类项disp(collect(y))case 2 %2: 因式分解disp(factor(y))case 3 %3: 化简disp(simplify(y))case 4 %4: 取反disp(finverse(y))case 5 %5: 展开disp(expand(y))case 6 %6:微分disp(dsolve(y))case 7 %7: 分子、分母的提取disp(numden(y))case 8 %8: 取极限e=input('亲!请输入所求极限的限制数:');disp(limit(y,e))disp(limit(y,e,'right'))disp(limit(y,e,'left'))%case 9 %9: 级数求和%e=input('亲!请输入级数求和下限范围:');%f=input('亲!请输入级数求和上限范围:');%disp(symsum(y,x,e,f))case 10 %10: 积分e=input('亲!请输入积分下限:');f=input('亲!请输入积分上限:');disp(int(y,e,f))case 11 %11:退出操作disp(' 退出操作 ')clcbreakendendwhile (x==5) %实现随机数运算操作功能模块disp(' ');disp(' ###现在开始随机数运算###')a=fix(100*rand(1));n=0;b=input('请再输入一个运算数:');disp(' ########****基本运算操作****####### ') disp(' ### 运算功能符 ### ')disp(' ### 1: 加法运算 ### ')disp(' ### 2: 减法运算 ### ')disp(' ### 3: 乘法运算 ### ')disp(' ### 4: 右除运算 ### ') disp(' ### 5: 左除运算 ### ')disp(' ### 6: 退出操作 ### ')disp(' ########****简单计算器操作****##### ')c=input('输入运算功能符选项: ');[m n]=size(a);[m n]=size(b);e=size(a,1);f=size(b,1);switch ccase 1d=a+bcase 2d=a-bcase 3if(e==1&&f==1)d=a.*belsed=a*bendcase 4if(e==1&&f==1)d=a./belsed=a/bendcase 5if(e==1&&f==1)d=a.\belsed=a\bendcase 6disp(' 退出操作 ')clcbreakendendwhile (x==6) %实现多个数运算操作功能模块disp(' ');disp(' ###现在开始多个数运算运算###');a=input('请输入一个运算数: ');b=input('请再输入一个运算数:');disp(' ########****基本运算操作****####### ')disp(' ### 运算功能符 ### ')disp(' ### 1: 加法运算 ### ')disp(' ### 2: 减法运算 ### ')disp(' ### 3: 乘法运算 ### ')disp(' ### 4: 右除运算 ### ')disp(' ### 5: 左除运算 ### ')disp(' ### 6: 退出操作 ### ')disp(' ########****简单计算器操作****##### ')c=input('输入运算功能符选项: ');[m n]=size(a);[m n]=size(b);t=size(a,1);r=size(b,1);switch ccase 1 %加法y=a+b;f=input('请输入第3个数');disp(' ########****基本运算操作****####### ') disp(' ### 运算功能符 ### ')disp(' ### 1: 加法运算 ### ')disp(' ### 2: 减法运算 ### ')disp(' ### 3: 乘法运算 ### ')disp(' ### 4: 右除运算 ### ') disp(' ### 5: 左除运算 ### ')disp(' ### 6: 退出操作 ### ')disp(' ########****简单计算器操作****##### ')e=input('请输入所需功能选项:');[m n]=size(y);[m n]=size(f);g=size(y,1);h=size(f,1);switch ecase 1d=y+fcase 2d=y-fcase 3if(g==1&&h==1)d=y.*felsed=y*fendcase 4if(g==1&&h==1)d=y./felsed=y/fendcase 5if(g==1&&h==1)d=y.\felsed=y\fendcase 6disp(' 退出操作 ')clcbreakendcase 2 %减法y=a-b;f=input('请输入第3个数: ');disp(' ########****基本运算操作****####### ') disp(' ### 运算功能符 ### ')disp(' ### 1: 加法运算 ### ')disp(' ### 2: 减法运算 ### ')disp(' ### 3: 乘法运算 ### ')disp(' ### 4: 右除运算 ### ') disp(' ### 5: 左除运算 ### ')disp(' ### 6: 退出操作 ### ')disp(' ########****简单计算器操作****##### ')e=input('请输入所需功能选项:');[m n]=size(y);[m n]=size(f);g=size(y,1);h=size(f,1);switch ecase 1d=y+fcase 2d=y-fcase 3if(g==1&&h==1)d=y.*felsed=y*fendcase 4if(g==1&&h==1)d=y./felsed=y/fendcase 5if(g==1&&h==1)d=y.\felsed=y\fendcase 6disp(' 退出操作 ')clcbreakendcase 3if(t==1&&r==1)y=a.*bf=input('请输入第3个数: ');disp(' ########****基本运算操作****####### ')disp(' ### 运算功能符 ### ') disp(' ### 1: 加法运算 ### ')disp(' ### 2: 减法运算 ### ')disp(' ### 3: 乘法运算 ### ')disp(' ### 4: 右除运算 ### ')disp(' ### 5: 左除运算 ### ')disp(' ### 6: 退出操作 ### ')disp(' ########****简单计算器操作****##### ')e=input('请输入所需功能选项:');[m n]=size(y);[m n]=size(f);g=size(y,1);h=size(f,1);switch ecase 1d=y+fcase 2d=y-fcase 3if(g==1&&h==1)d=y.*felsed=y*fendcase 4if(g==1&&h==1)d=y./felsed=y/fendcase 5if(g==1&&h==1)d=y.\felsed=y\fendcase 6disp(' 退出操作 ')clcbreakendelsey=a*bf=input('请输入第3个数: ');disp(' ########****基本运算操作****####### ')disp(' ### 运算功能符 ### ') disp(' ### 1: 加法运算 ### ')disp(' ### 2: 减法运算 ### ')disp(' ### 3: 乘法运算 ### ')disp(' ### 4: 右除运算 ### ')disp(' ### 5: 左除运算 ### ')disp(' ### 6: 退出操作 ### ')disp(' ########****简单计算器操作****##### ')e=input('请输入所需功能选项:');[m n]=size(y);[m n]=size(f);g=size(y,1);h=size(f,1);switch ecase 1d=y+fcase 2d=y-fcase 3if(g==1&&h==1)d=y.*felsed=y*fendcase 4if(g==1&&h==1)d=y./felsed=y/fendcase 5if(g==1&&h==1)d=y.\felsed=y\fendcase 6disp(' 退出操作 ')clcbreakendendcase 4if(t==1&&r==1)y=a./bf=input('请输入第3个数: ');disp(' ########****基本运算操作****####### ')disp(' ### 运算功能符 ### ') disp(' ### 1: 加法运算 ### ')disp(' ### 2: 减法运算 ### ')disp(' ### 3: 乘法运算 ### ')disp(' ### 4: 右除运算 ### ')disp(' ### 5: 左除运算 ### ')disp(' ### 6: 退出操作 ### ')disp(' ########****简单计算器操作****##### ')e=input('请输入所需功能选项:');[m n]=size(y);[m n]=size(f);g=size(y,1);h=size(f,1);switch ecase 1d=y+fcase 2d=y-fcase 3if(g==1&&h==1)d=y.*felsed=y*fendcase 4if(g==1&&h==1)d=y./felsed=y/fendcase 5if(g==1&&h==1)d=y.\felsed=y\fendcase 6disp(' 退出操作 ')clcbreakendelsed=a/bf=input('请输入第3个数: ');disp(' ########****基本运算操作****####### ')disp(' ### 运算功能符 ### ') disp(' ### 1: 加法运算 ### ')disp(' ### 2: 减法运算 ### ')disp(' ### 3: 乘法运算 ### ')disp(' ### 4: 右除运算 ### ')disp(' ### 5: 左除运算 ### ')disp(' ### 6: 退出操作 ### ')disp(' ########****简单计算器操作****##### ')e=input('请输入所需功能选项:');[m n]=size(y);[m n]=size(f);g=size(y,1);h=size(f,1);switch ecase 1d=y+fcase 2d=y-fcase 3if(g==1&&h==1)d=y.*felsed=y*fendcase 4if(g==1&&h==1)d=y./felsed=y/fendcase 5if(g==1&&h==1)d=y.\felsed=y\fendcase 6disp(' 退出操作 ')clcbreakendendcase 5if(t==1&&r==1)d=a.\bf=input('请输入第3个数: ');disp(' ########****基本运算操作****####### ')disp(' ### 运算功能符 ### ') disp(' ### 1: 加法运算 ### ')disp(' ### 2: 减法运算 ###')disp(' ### 3: 乘法运算 ### ')disp(' ### 4: 右除运算 ### ')disp(' ### 5: 左除运算 ### ')disp(' ### 6: 退出操作 ### ')disp(' ########****简单计算器操作****##### ')e=input('请输入所需功能选项:');[m n]=size(y);[m n]=size(f);g=size(y,1);h=size(f,1);switch ecase 1d=y+fcase 2d=y-fcase 3if(g==1&&h==1)d=y.*felsed=y*fendcase 4if(g==1&&h==1)d=y./felsed=y/fendcase 5if(g==1&&h==1)d=y.\felsed=y\fendcase 6disp(' 退出操作 ')clcbreakendelsed=a\bf=input('请输入第3个数: ');disp(' ########****基本运算操作****####### ')disp(' ### 运算功能符 ### ') disp(' ### 1: 加法运算 ### ')disp(' ### 2: 减法运算 ### ')disp(' ### 3: 乘法运算 ### ')disp(' ### 4: 右除运算 ### ')disp(' ### 5: 左除运算 ### ')disp(' ### 6: 退出操作 ### ')disp(' ########****简单计算器操作****##### ')e=input('请输入所需功能选项:');[m n]=size(y);[m n]=size(f);g=size(y,1);h=size(f,1);switch ecase 1d=y+fcase 2d=y-fcase 3if(g==1&&h==1)d=y.*felsed=y*fendcase 4if(g==1&&h==1)d=y./felsed=y/fendcase 5if(g==1&&h==1)d=y.\felsed=y\fendcase 6disp(' 退出操作 ')clcbreakendendcase 6disp(' 退出操作 ')clcbreakendendwhile (x==7) %实现数学函数运算操作功能模块disp(' ');disp(' ###现在开始数学函数运算###')syms x a c y schura=input('请输入所需计算数值: ');disp(' ########**数学运算操作**########## ') disp(' ### 功能运算符 ### ')disp(' ### 1: 绝对值或复数的模 ### ')disp(' ### 2: 平方根 ### ')disp(' ### 3: 开方根 ### ')disp(' ### 4: 自然对数 ### ')disp(' ### 5: 常用对数 ### ')disp(' ### 6:自然对数1 ### ')disp(' ### 7: 有理数近似 ### ')disp(' ### 8: 模除求余 ### ')disp(' ### 9: 四舍五入到整数 ### ')disp(' ### 10: e的指数函数 ### ')disp(' ### 11: 2的幂函数 ### ')disp(' ### 12:截断取整 ### ')disp(' ### 13: 取最接近负无穷的整数 ### ')disp(' ### 14:取最接近正无穷的整数 ### ')disp(' ### 15: 求余 ### ')disp(' ### 16:退出操作 ### ')disp(' ########**符号运算操作**########## ')c=input('请输入功能运算符选项: ');y=sym(a);switch ccase 1disp(abs(y))case 2disp(sqrt(y))case 3disp(sqrtm(a))continuecase 4disp(log(y))case 5disp(log10(y))case 6disp(logm(y))case 7disp(rat(y))case 8e=input('请输入模除值: ');f=input('请输入模除值: ');d=input('请输入被模除值:');disp(mod([e f],d))case 9disp(round(y))case 10disp(exp(y))case 11disp(pow2(y))case 12disp(fix(y))case 13e=input('请输入左闭区间数值: '); f=input('请输入右闭区间数值: '); disp(floor([e f]))case 14e=input('请输入左闭区间数值: '); f=input('请输入右闭区间数值: '); disp(ceil([e f]))case 15e=input('请输入所需求余数值: '); f=input('请输入所需求余数值: '); d=input('请输入被减求余数值: '); disp(rem([e f],d))《MATLAB语言程序设计》结课作业case 16disp(' 退出操作 ')clcbreakendendif (x==8) %实现退出操作功能模块disp(' ');disp('退出操作')clcdisp(' 温馨提示:若还需操作,请输入''ma2''进行操作!')breakendEnd4、结果分析此计算机还有很多的功能还未实现,还有许多的问题还未解决,但结果还算都正确,操作还算可以吧。

MATLAB技术结课作业(1)

MATLAB技术结课作业(1)

一、MATLAB技术结课作业:根据自己专业相关的研究内容,或自己感兴趣的内容,自拟题目,用MATLAB编程语言编写一个程序,实现一定的软件功能。

要求提交三类文件:(1)程序相关文件:.m文件、.mat文件、.fig文件等;(2)一个软件说明书,存成.doc文件,软件说明书的格式和示例见附件1和附件2;(3)编程和调试的记录文件:*.txt(使用diary on 语句记录)。

所有文件打包后,命名为“姓名+学号”,发送至许老师qq邮箱:505231691@二、注意事项:(1)不能使用其他编程语言,如C语言等;(2)不允许相互抄袭;(3)软件说明书是说明自己所编写软件的功能,而不是让说明MATLAB软件;(4)程序不能过于简单,可以通过增加交互输入来增加复杂度。

三、如果找不到合适的题目,可以完成以下题目之一:1. 字符统计,功能:(1)通过人机交互输入英文文献(txt文档)的地址和名称;(2)统计该英文文献中字符a~z出现的频率;(3)以a~z为横坐标,频率为纵坐标,画出频率曲线图,并标出每个频率值。

2. 函数描述,功能:(1)通过人机交互输入一元代数函数f(x)(由多项式系数向量表示);(2)求出该函数的所有关键点(包括与x轴、y轴的交点、局部极值点);(3)绘制该函数的二维图形,并标出上述关键点。

3. 线性方程组求解,功能:(1)通过人机交互输入方程组AX=B 的系数矩阵和增广矩阵;(2)求解方程组并得出解及其意义(包括‘唯一解’, ‘特解’, ‘最小二乘解’ )。

4. 数据拟合和插值,功能:(1)通过人机交互输入n 和数据点坐标向量X,Y ;(2)在图形窗口绘制n (n<20)个子图,给出上述数据的n 次拟合和插值结果(的最小整数)。

5. 完数统计,(若一个数等于它的各个真因子之和,则称该数为完数,如:6=1+2+3,所以6是完数),功能:(1)通过人机交互输入正整数n;(2)列出[1,n]之间的全部完数。

MATLAB结课大作业

MATLAB结课大作业

一、判断系统稳定性的方法,并举例说明。

方法一:用Nyquist稳定判据判断系统的稳定性Nyquist稳定判据:若想使得闭环系统稳定,则开环系统G(S)H(S)的Nyquist曲线逆时针绕临界点(-1,j0)点的圈数R必需等于G(S)H(S)(系统的开环传函)位于S的右半平面开环极点数P。

即:Z=P-R Z=0 稳定;Z≠0 不稳定,Z为闭环正实部根的个数。

方法二:用Bode图判断系统的稳定性函数调用格式为:margin( )或[Gm Pm wcp wcg]=margin(G)对于最小相位系统:当相角裕度P m(γ)>0o 或幅值裕度G m(h) >1时,表示系统稳定当相角裕度P m(γ)<0o 或幅值裕度G m(h) <1时,表示系统不稳定幅值裕度G m(h)、相角裕度P m(γ)越大,系统稳定程度越好。

在使用时,G m(h)、P m(γ)是成对使用的,有时仅使用一个裕度指标P m(γ)。

方法三:用代数稳定判据法判断系统的稳定性(1)系统数学模型为传递函数形式G(S)=tf(num,den):执行语句:roots(G.den{1});注:“{}”表示维数(2)系统数学模型为零极点增益形式G(S)=zpk(z,p,k);执行语句:G.p{1};(3)系统数学模型为状态空间形式G(S)=ss(A,B,C,D);执行语句:eig(G.A);注:eig()表示计算系统的极点方法四:用根轨迹法判断系统的稳定性若根轨迹在参数取值过程中,部分在左半平面,部分在右半平面,则系统的稳定性与可变参数的取值有关。

函数命令调用格式:[k poles]=rlocfind(G)方法五:用单位阶跃响应曲线判定系统稳定性例:已知系统的开环传函为:5(S+2)G(S)= ----------------------------(S+10)(S³+3S²+2S+5)判断系统的稳定性解:方法一:用Nyquist稳定判据判断系统的稳定性>>G=tf(5*[1 2],conv([1 10],[1 3 2 5]));>>roots(G.den{1})Ans=-10.0000-2.9042-0.0479+1.3112i-0.0479-1.3112i>>nyquist(G)执行以上程序得到nyquist图可以看出,nyquist曲线包围临界点的圈数R=0。

matlab程序应用结课作业

matlab程序应用结课作业

北京林业大学全校公共选修课课程作业MATLAB程序应用姓名:手写签名课程序号:36班级:机械11-4学号:1110144102013年12月1、分别用矩阵求逆、矩阵除法求下面线性方程组的解;123412341234123421272245758x x x x x x x x x x x x x x x x +-+=⎧⎪-++=⎪⎨+-+=⎪⎪-++=⎩ 【问题描述】用矩阵除法解线性方程组 【建模方法】 X=A/b 【程序代码】A=[2 1 -1 1;1 -1 1 1;7 2 -2 4;7 -1 1 5]; b=[1 2 5 8]; X=A/b 【运行结果】 x = -0.3333 -3.3333 -3.0000 2.0000 【结果分析】 验算无误2、已知符号函数22(,)(f x y x y =+22222,,,∂∂∂∂∂∂∂∂∂∂∂f f f f f x y x y x y ; 【问题描述】 求函数的偏导数 【建模方法】 diff(f,x) 【程序代码】 syms x y z h h=x^2+y^2 f=h*sin(1\(h)^0.5)mx=diff(f,x),my=diff(f,y),mx2=diff(mx,x),my2=diff(my,y),mxy=diff(mx,y) 【运行结果】f =sin((x^2 + y^2)^(1/2))*(x^2 + y^2)mx =2*x*sin((x^2 + y^2)^(1/2)) + x*cos((x^2 + y^2)^(1/2))*(x^2 + y^2)^(1/2)my =2*y*sin((x^2 + y^2)^(1/2)) + y*cos((x^2 + y^2)^(1/2))*(x^2 + y^2)^(1/2)mx2 =2*sin((x^2 + y^2)^(1/2)) - x^2*sin((x^2 + y^2)^(1/2)) + cos((x^2 + y^2)^(1/2))*(x^2 + y^2)^(1/2) + (3*x^2*cos((x^2 + y^2)^(1/2)))/(x^2 + y^2)^(1/2)my2 =2*sin((x^2 + y^2)^(1/2)) - y^2*sin((x^2 + y^2)^(1/2)) +cos((x^2 + y^2)^(1/2))*(x^2 + y^2)^(1/2) + (3*y^2*cos((x^2 + y^2)^(1/2)))/(x^2 + y^2)^(1/2)mxy =(3*x*y*cos((x^2 + y^2)^(1/2)))/(x^2 + y^2)^(1/2) - x*y*sin((x^2 + y^2)^(1/2))【结果分析】经验算无误3.【程序代码】p=linspace(0,pi,19);q=linspace(0,2*pi,37);[p,q]=meshgrid(p,q);x=1*sin(p).*cos(q);y=2*sin(p).*sin(q);z=3*cos(p);surf(x,y,z);axis equal图像:4.设要求教练四杆机构两连架杆的三组对应位置分别为:mm l AD 80;105,125;75,80;50,35332211=︒=︒=︒=︒=︒=︒=ϕαϕαϕα,使用解析法设计此四杆机构。

matlab结课论文

matlab结课论文

山西大同大学matlab课程结课作业MATLAB程序应用姓名:课程序号: 2班级:学号:2013年12月1.实验内容:已知!123n n =⨯⨯⨯⋅⨯,编写一个程序求满足100!10n ≤的最大的n 值以及此时!n 的值。

function nn=2;m=1;while m<=10^100m=m.*n;n=n+1;endm=m/(n-1);n=n-2; m n m = 1.7112e+098 n =69 2.设)151131111917151311(22 +--++--+=π,试根据公式编出计算pi 的Matlab 主程序文件,pi 的精度为0.00001。

程序:k=0;n=1;b=0;a=0;while abs((pi-a))>0.00001a=2*sqrt(2)*k;k=( bcos( *pi/2)+sin(b*pi/2))/n+k;n=n+2;b=b+1;enda输出a=3.141602572083633 ; a-pi= 9.918493839577991e-0063.有两个矩阵A 和B 如下:⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡---=771175420132861-1A ,⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡------=0162310013125673B ,将A 中所有等于-1的元素改为-2,将B 中所有小于0的元素改为1,然后将B 中等于0的元素的值改为A 的相应位置元素的值。

请用Matlab 函数文件实现上述运算。

clear;clc;A=[1 -1 6 8;2 3 -1 0;-2 4 5 7;1 -1 7 7];B=[-3 -7 6 -5;-2 1 3 -1;0 0 1 3;2 6 -1 0];C=A;A(A==-1)=-2;U=A;D=B;B(B<0)=1;V=B;A=C;B=D;[i,j]=find(B==0);A(i,j)=0;W=A;A=C;B=D;A,B,W,U,V%用函数文件实现矩阵中元素的变换。

哈工大MATLAB选修课最终大作业

哈工大MATLAB选修课最终大作业

2014年春季学期MATLAB 课程考查题姓名:学号:11208学院:机电工程学院专业:机械设计制造及其自动化一.必答题(80分)1. 如何设置当前目录和搜索路径,在当前目录上的文件和在搜索路径上的文件有何区别?答:设置当前目录和搜索路径:在File菜单中选择SetPath选项,之后选择AddFolder增加目录。

当前工作目录是指MATLAB运行文件时的目录,只有在当前工作目录或搜索路径下的文件、函数可以被运行或调用。

2. 创建符号变量和符号表达式有哪几种方法?答:(1)符号变量:x = sym(‘x’) 创建x为符号变量,默认复数区域x = sym(‘x’, ‘real’) 创建实数的符号变量xx = (‘x’, ‘positive’) 创建正数的符号变量xx = sym('x', 'clear')创建一个没有额外属性的纯形式上的符号变量xs=sym(‘ab’,’flag’) 创建flag数域(复数,实数,正数)符号变量名s,内容ab(2)符号表达式:①直接法:>> x=sym('x');>> a=sym('a');>> b=sym('b');>> f=sin(b*x)+exp(-a*x)②整体定义法:f=sym(‘expression’)③字符串符号表达式:f=‘expression’3. GUIDE提供哪些常用的控件工具,各有什么功能?(5分)答:按钮(Push Buttons) :通过鼠标单击按钮可以执行某种预定的功能或操作;静态文本框(Static Texts):仅用于显示单行的说明文字.文本编辑器(Editable Texts):用来使用键盘输入字符串的值,可以对编辑框中的内容进行编辑、删除和替换等操作;单选按钮(Radio Button):单个的单选框用来在两种状态之间切换,多个单选框组成一个单选框组时,用户只能在一组状态中选择单一的状态,或称为单选项;滚动条(Slider):可输入指定范围的数量值,通过移动滚动条来改变指定范围内的数值输入,滚动条的位置代表输入数值。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

4.10 上机操作步骤1在MatLab 的命令窗口输入如下命令序列:clfsubplot(1,2,1) hold on grid on n=1:1000;m=1./n.*cos(n*pi/2); plot(n,m,'k.')观察数列的散点图22,当n 趋于无穷大时,数列趋于 0 subplot(1,2,2) hold on grid onn=500:10000;m=1./n.*cos(n*pi/2); plot(n,m,'k.')fplot('0.001',[500,10000]) fplot('-0.001',[500,10000]) axis([500,10000,-0.005,0.005])观察图23,当001.0=ε时,可以取N= 1000 ,当n>N 时有επε<<-2co s n 1n .图22 图232 在MatLab 的命令窗口输入如下命令序列:clfsubplot(1,2,1) hold on grid onfplot('x.*x',[1,3])观察函数图24, 当2x →时,2x y =的极限是 4subplot(1,2,2) hold on grid onfplot('x.*x',[1.9,2.1]) fplot('4.001',[ 1.9,2.1]) fplot('3.999',[ 1.9,2.1])axis([1.9997,2.0005,3.9989,4.0011]) % 调整显示图形的范围是该实验的重点 观察图25,当001.0=ε时, δ取 0.003 δ<-<2 0x 时,001.04<-y ?图24 图253 在MatLab 的命令窗口输入: syms xlimit((2.^x-log(2.^x)-1)./(1-cos(x)),x,0) 运行结果为ans = log(2)^2 理论上用洛必达法则计算该极限:xx x cos 112ln 2lim 0x ---→= 1 4 在MatLab 的命令窗口输入如下命令序列: (1)syms xy=sqrt(x+2)*(3-x)^4/(x+1)^5 diff(y,x) %求一阶导数 运行结果=y'1/2/(x+2)^(1/2)*(3-x)^4/(x+1)^5-4*(x+2)^(1/2)*(3-x)^3/(x+1)^5-5*(x+2)^(1/2)*(3-x)^4/(x+1)^6 x=1;eval(y) %求导数在x =1处的值 运行结果1'=x y = 0.8660(2)syms x y=exp(x)*cos(x)diff(y,x,4) %求)(4y运行结果)(4y = -4*exp(x)*cos(x)(3)已知yx y x z *)ln(2+=,求yx z x z x z ∂∂∂∂∂∂∂222,, 在MatLab 的命令窗口输入如下命令序列: syms x y zz=log(x+y^2)*x^y diff(z,x) 运行结果=xz∂∂ 1/(x+y^2)*x^y+log(x+y^2)*x^y*y/x diff(z,x,2) 运行结果=22xz∂∂-1/(x+y^2)^2*x^y+2/(x+y^2)*x^y*y/x+log(x+y^2)*x^y*y^2/x^2-log(x+y^2)*x^y *y/x^2 diff(diff(z,x),y) 运行结果=yx z∂∂∂2-2/(x+y^2)^2*x^y*y+1/(x+y^2)*x^y*log(x)+2*y^2/(x+y^2)*x^y/x+log(x+y^2)*x^y*log(x)*y/x+log(x+y^2)*x^y/x 5 (1)作函数f(x)的曲线,求f(x)的零点。

在MatLab 的命令窗口输入如下命令序列: syms xy=x^2*sin(x^2-x-2);d1=diff(y,x) % 求一阶导数d2=diff(d1,x) % 求二阶导数subplot(1,3,1) hold on grid onezplot(y,[-2 2]) %作函数f(x)的曲线title('f(x)')下面用作图观察法求函数f (x )的各零点:观察图26,可知函数f(x)在区间[-2,2]上有4个零点,分别为-1,0,2,还有一个零点位于区间[-2,-1]上,下面通过不断缩小零点的取值范围,在区间[-2,-1]上求函数f (x )的零点,输入命令序列:axis([-2,-1.5,-0.1,0.1]) %见图27 axis([-1.9,-1.8,-0.01,0.01]) %见图28axis([-1.85,-1.8,-0.001,0.001]) %见图29 axis([-1.84,-1.82,-0.001,0.001]) %见图30 axis([-1.825,-1.82,-0.001,0.001]) %见图31 axis([-1.823,-1.821,-0.001,0.001]) %见图32 axis([-1.822,-1.8215,-0.001,0.001]) %见图33 axis([-1.822,-1.8218,-0.0001,0.0001]) %见图34用作图法得零点的近似值为: -1.82192图29 图30 图31图32 图33 图34方法2在区间[-2,-2]上用求根公式求零点,在命令窗口输入如下命令: f1=char(y);图26 图27 图28fzero(f1,-2)运行结果得近似零点为-1.8220fzero(f1,-1)运行结果-1fzero(f1,0)运行结果0fzero(f1,2)运行结果 2比较作图法和求根公式法,结论是作图法更直观准确,求根公式法更快捷。

(2)作函数一阶导数的曲线,求驻点。

在MatLab的命令窗口输入如下命令序列:subplot(1,3,2)hold ongrid onezplot(d1,[-2,2])title ('一阶导数f’(x)')观察图36,可知一阶导数在区间[-2,2]有4个零点,近似值为-1.5,-0.8,0,1.5,下面用求根公式计算较精确的零点值,输入命令:f2=char(d1);x=fzero(f2,-1.5)eval(y)运行结果,记该零点为x1=-1.5326 ,f(x1)= 2.2364x=fzero(f2,-0.8)eval(y)运行结果,记该零点为x2=-0.7315 ,f(x2)= -0.3582x=fzero(f2,0)eval(y)运行结果,记该零点为x3=0 ,f(x3)= 0x=fzero(f2,1.5)eval(y)运行结果,记该零点为x4= 1.5951 ,f(x4)= -2.2080 根据函数单调性与一阶导数的关系,可得函数f(x)的单增区间为[-2,x1] ,[x2,x3] ,[x4,2] ,单减区间为[x1,x2] ,[x3,x4] 。

根据函数图形,可判别函数的极大值点为x1,x3 ,极小值点为x2,x4 。

(3)作函数二阶导数的曲线,求拐点。

在MatLab的命令窗口输入如下命令序列:subplot(1,3,3)hold ongrid onezplot(d2,[-2,2])title ('二阶导数f’’(x) ')图35 图36 图37观察图37,可知二阶导数在区间[-2,2]有4个零点,近似值为-1.9,-1.3,0.5,1.2,下面用求根公式计算较精确的零点值,输入命令: f3=char(d2); x=fzero(f3,-1.9) eval(y)运行结果,记该零点为x5= -1.9240 ,f(x5)= -1.7233 x=fzero(f3,-1.3) eval(y)运行结果,记该零点为x6= -1.2650 ,f(x6)= 1.2182 x=fzero(f3,0.5) eval(y)运行结果,记该零点为x7= 1.2404 ,f(x7)= -1.5254 x=fzero(f3,1.2) eval(y)运行结果,记该零点为x8= 1.2404 ,f(x8)= -1.5254根据函数凹凸性与二阶导数的关系,可得函数f(x)的凹区间为 [-2,-1][-1,-0.2][-0.2,2] ,凸区间为 [-1.7,-0.2][-0.2,1][1,2] 。

根据函数图形37,可判别函数的拐点为 (3,-0.6) 。

6 使用MatLab 软件求下列积分: (1)x xx x d sin cos 3⎰(2) x e x x xd 1e 2⎰+)( (3)dx x e x ⎰202cos π在MatLab 的命令窗口输入如下命令序列: (1)syms x;y=x*cos(x)*(sin(x))^(-3); int(y)运行结果:ans = -1/2*x/sin(x)^2-1/2/sin(x)*cos(x)(2) syms x;y=x*exp(x)*(exp(x)+1)^(-2); int(y)运行结果:ans = -1/2*x^2/exp(x^2)-1/2/exp(x^2) (3)syms x;y= exp(2*x)*cos(x); int(y,0,pi/2)运行结果:ans = 1/5*exp(pi)-2/5 (4) quad('exp(-x.^2)',0,1)运行结果:ans = 0.7468 7σd y 1y --12222⎰⎰++Dx x ,其中D 是由圆周122=+y x 及坐标轴所围成的在第一象限内的闭区域.具体步骤如下: (1)划定积分区域:ezplot('x^2+y^2-1',[0,1,0,1]) 结果如图38,D 为积分区域. (2)化二重积分σd )y (22⎰⎰+Dx 为累次积分⎰⎰+102-1022)y (dx x dy x .图38在MatLab 的命令窗口输入如下命令 syms x y z z=x^2+y^2;dx1=int(z,y,0,sqrt(1-x^2)); jf=int(dx1,0,1); 结果为:jf = 1/8*pi8用MatLab 创建函数pii.m 文件实现方法i 对π进行近似, n 代表展开阶数,6,,1i =, function zhi=pi1(n) syms x s t t=atan(x); s=taylor(t,n); x=1;zhi=4*eval(s);function zhi=pi2(n) syms x tDt=1/(2*x-1)^2;zhi=symsum(t,1,n);function zhi=pi3(n)syms x tt=(-1)^(x-1)/x^2;zhi=sqrt(12*symsum(t,x,1,n));function zhi=pi4(n)syms x tt=(-1)^(x-1)/(2*x-1)^3;zhi=(32*symsum(t,x,1,n))^(1/3);function zhi=pi5(n)syms x tt=sin(2*x-1)/(2*x-1)^3;zhi1=8*symsum(t,x,1,n);zhi=(1+sqrt(1+4*zhi1))/2;function zhi=pi6(n)syms x tt=(-1)^(x-1)/((2*x-1)*5^(2*x-1));zhi1=symsum(t,x,1,n);t=(-1)^(x-1)/((2*x-1)*239^(2*x-1));zhi2=symsum(t,x,1,n);zhi=16*zhi1-4*zhi2;在MatLab命令窗口输入format longpipi1(10)pi1(100)pi1(1000)pi2(10)numeric(ans) %把结果由分式表达形式变成小数形式pi2(100)numeric(ans)pi2(1000)numeric(ans)pi3(10)numeric(ans)pi3(100)numeric(ans)pi3(1000)numeric(ans)pi4(100)numeric(ans)pi4(1000)numeric(ans)pi4(100)numeric(ans)pi5(1000)numeric(ans)pi5(100)numeric(ans)pi5(1000)numeric(ans)pi6(10)numeric(ans)pi6(100)numeric(ans)pi6(1000)numeric(ans)执行结果填入下表:: 所给函数无法完成。

相关文档
最新文档