Matlab程序设计大作业(终审稿)
MATLAB大作业
![MATLAB大作业](https://img.taocdn.com/s3/m/d96b61e450e2524de5187eb1.png)
1.设计一个程序,要求用户用键盘输入10次,输入内容可以是数字、英文、汉字、或者
其他文字或者符号。
如果输入的是数字,则把存入一个数字数组当中;如果输入的是英文的字符,则存入一个英文字符数组当中;如果是其他字符,则存入一个字符串数组中。
当10次内容都输入完毕后,先输出英文数组中的内容,然后输出字符串数组中的内容。
如果数字数组中元素数量大于3个,则由数字数组中的数字组成一个a0 X n+a1X n-1+………an=f(X),其中a0…an是数组中第一到最后一个元素,n为元素的个数,并且画出这个函数在区间[0,20]之间的曲线。
如果数字数组中的元素数量小于等于3个,则由数字数组中的数字组成一个a0 X n+a1Y n-1+anZ=0的方程,并且画出这个函数在[0,10]之间的曲线。
具体要求:
(1)画出程序的结构图
(2)画出程序的流程图
(3)每一行或者每一小段都需要标注
(4)附上完整的程序
2.按如下条件,设计一个完整的程序。
(1)有一片草原,草原上有人、狼、羊、鸡和蝗虫生活;
(2)被吃过的草,三年之后可以修复;
(3)一个人一年吃一只羊,10个人一年杀一只狼,一个人一年吃一只鸡;
(4)一头狼一年吃一只羊,一头狼三年成活一个幼崽;
(5)一只羊一年吃掉100平方米的草原;
(6)一只鸡一年吃掉1000只蝗虫;
(7)一只蝗虫一年吃掉一平方米的草原。
按如上条件,模拟出草原及其上述的生物从现在起500年间的状态。
具体要求:
(1)写出具体的解题思路
(2)列出详细的变量表,写出每一个变量的含义
(3)写出完整的程序,最好有图。
matlab大作业实验报告,《Matlab程序设计》期末实验报告-大作业2015.doc
![matlab大作业实验报告,《Matlab程序设计》期末实验报告-大作业2015.doc](https://img.taocdn.com/s3/m/4b44129ca1116c175f0e7cd184254b35eefd1ae1.png)
matlab⼤作业实验报告,《Matlab程序设计》期末实验报告-⼤作业2015.doc《MATLAB程序设计》实验报告学院: 学号: 姓名:⼀、题⽬:1、(10分)已知矩阵,⽤Matlab代码实现以下要求:(1)将矩阵赋给变量A,并在屏幕上显⽰A;(2)将A按列进列逆序重排,重排后的矩阵赋给变量B,并在屏幕上显⽰B;(3)⽤reshape命令将A重排为⼀个2⾏6列矩阵并赋给变量C;(4)将A重排为⼀个列向量,将其赋给变量D,求D的平均值,在屏幕上显⽰D和它的平均值;(5)⽤命令查看变量A的维数,并显⽰运⾏结果。
2、(10分)写代码实现以下要求:构造菜单项‘Plot’,菜单项Plot有两个⼦菜单项Plot sin(选择此项后执⾏画出曲线,线型为虚线,线条颜⾊为红⾊)和Plot cos(选择此项后执⾏画出曲线 ,线型为实线,线条宽度为2)。
3、(20分)已知,实现下列操作:(1)在同⼀个图形窗⼝,同⼀坐标系下⽤不同的颜⾊和线型绘制三条曲线,并添加图例来区分三条曲线(5分)。
(2)⽤subplot命令,以⼦图的⽅式绘制三条曲线,图形排列⽅式为三⾏⼀列(5分)。
(3) 分别⽤直⽅图(bar)、棒状图(stem)和填充图(fill)绘制三条曲线,以⼦图⽅式绘制,排列⽅式为3⾏3列,共9幅⼦图(10分)。
4、(10分)⽤surf命令绘制曲⾯图形,⽤shading interp命令进⾏插值着⾊处理并添加垂直颜⾊棒。
5、(15分)⾃2011年9⽉1⽇起,我国实⾏新的个⼈所得税征收办法,起征点为3500元,请⽤If-else if-else-end结构实现⼈⼯输⼊⽉收⼊后能计算出个⼈所得税的缴纳额并显⽰⽉收⼊10000元时应缴纳的税款。
级数应纳税所得额x(元)税率备注1x<=15003%x指⽉收⼊扣除起征点3500元之后的余额;215008000045%同上6. (10分)⽤while-end循环结构计算级数和的值,输⼊n值,能计算出f的值,并显⽰结果。
最后的matlab大作业
![最后的matlab大作业](https://img.taocdn.com/s3/m/2f49cedf680203d8cf2f2401.png)
课程:《控制系统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大作业](https://img.taocdn.com/s3/m/f33e94a165ce050876321358.png)
偏置直动滚子推杆盘形凸轮机构设计推程运动规律:余弦加速度运动回程运动规律:正弦加速度运动凸轮机构的推杆在近休,推程,远休及回程段的凸轮转角偏置直动滚子推杆盘形凸轮机构已知参数推杆运动规律1)推程运动规律:余弦加速度运动推程运动方程式:s = h[1 - cos(πδ/δ0)]/ 2,v= πhωsin(πδ/δ0)/( 2δ0),a= π2hω2cos(πδ/δ0)/( 2δ02)2)回程运动规律:正弦加速度运动回程运动方程式:s = h [1-(δ/δ0’)+sin(2πδ/δ0’)/(2π) v = hω [cos(2πδ/δ0’-1)]/δ0’a = -2πhω2sin(2πδ/δ0’)/(δ0’2)滚子中心坐标:x=(s+s0)sinδ+ecosδy=(s+s0)cosδ-ecosδ其中s0=r02−e2实际轮廓曲线坐标:x′=x−r r cosθy′=y−r r sinθ其中sinθdxdδ(dδ)2+(dδ)2cosθ=−dydδ(dδ)2+(dδ)2计算压力角:α=tan−1dsdδ−er02−e2+s计算曲率半径:ρ=dxdδ2+dydδ2 3dδ∙2dδ2−dδ∙2dδ2计算程序符号的表示含义:r0 初选基圆半径x 理论轮廓曲线的x坐标y 理论轮廓曲线的y坐标X 实际轮廓曲线的x坐标Y 实际轮廓曲线的x坐标p 曲率半径s 推杆位移rr 滚子半径 a 压力角paamin 许用最小曲率半径pamin 实际曲率半径的最小值a1max 回程前压力角的最大值a2max 回程后压力角的最大值e 偏距h 推杆行程a1 推程许用压力角a2 回程程许用压力角dar0 每次修正r0所加的长度N 计算点数k1 近休角k2 推程角k3 远休角k4 回程角kamin 实际曲率半径最小值所对应的角度k1max 回程前压力角的最大值所对应的角度k2max 回程后压力角的最大值所对应的角度子程序1计算最大压力角:function [amax,kmax]=yalijiao1(a,N1,b)amax=0;kmax=0;amax=max(a);for i=1:N1if a(i)==amaxkmax=i*b;endendend子程序2计算最小曲率半径:function [pamin,kamin]=qulv(p,b,N)pamin=0;kamin=0;for i=1:N-1p(i)=abs(p(i));endpamin=min(p);for i=1:N-1pamin=min(p)if p(i)==paminkamin=i*b;endendend子程序3计算回程前的压力角及修正r0:function [A,r0]=haha(r0,rr,e,h,a1,dar0,N,k1,k2,k3,k4)N1=(k1+k2)/360*N;eta=pi/180;%化为弧度while(1)s0=(r0^2-e^2)^(1/2);syms k s dk ds d2k d2sn1=k1/360*N;k11=linspace(0,k1,n1);s1=k11./k11.*0;x1=e.*cos(k11.*pi/180)+(s0+s1).*sin(k11.*pi/180);y1=(s0+s1).*cos(k11.*pi/180)-e.*sin(k11.*pi/180);n2=k2/360*N;k22=linspace(k1,k1+k2,n2);s2=(h/2).*(1-cos(pi.*(k22-k1)/k2));x2=e.*cos(k22.*pi/180)+(s0+s2).*sin(k22.*pi/180);y2=(s0+s2).*cos(k22.*pi/180)-e.*sin(k22.*pi/180);x=[x1,x2];y=[y1,y2];k=[k11,k22];s=[s1,s2];dx=diff(x)./diff(k);dk=k(1:end-1);dy=diff(y)./diff(k);dk=k(1:end-1);ds=diff(s)./diff(k);dk=k(1:end-1);ds(N1)=0;for i=1:N1f(i)=(ds(i)-e)/(sqrt(r0^2-e^2)+s(i));a(i)=atan(f(i));%计算a压力角A(i)=abs(a(i))/eta;if A(i)>a1r0=r0+dar0;break;endendif i==N1break;endendend子程序4计算回程后的压力角及修正r0:function [A,r0]=hahaha(r0,rr,e,h,a2,dar0,N,k1,k2,k3,k4) N2=(k3+k4)/360*N;b=360/N;eta=pi/180;%化为弧度while(1)s0=(r0^2-e^2)^(1/2);syms k s dk ds d2k d2sn3=k3/360*N;k33=linspace(k1+k2,k1+k2+k3,n3);s3=k33./k33.*h;x3=e*cos(k33*pi/180)+(s0+h).*sin(k33*pi/180);y3=(s0+h).*cos(k33*pi/180)-e*sin(k33*pi/180);n4=k4/360*N;k44=linspace(k1+k2+k3,k1+k2+k3+k4,n4+1);s4=h.*(1-(k44-k1-k2-k3)./k4+sin(2*pi.*(k44-k1-k2-k3)./k4)/(2*pi));x4=e.*cos(k44*pi/180)+(s0+s4).*sin(k44*pi/180);y4=(s0+s4).*cos(k44*pi/180)-e*sin(k44*pi/180);x=[x3,x4];y=[y3,y4];k=[k33,k44];s=[s3,s4];dx=diff(x)./diff(k);dk=k(1:end-1);dy=diff(y)./diff(k);dk=k(1:end-1);ds=diff(s)./diff(k);dk=k(1:end-1);ds(N2)=0;for i=1:N2f(i)=(ds(i)-e)/(sqrt(r0^2-e^2)+s(i));a(i)=atan(f(i));%计算a压力角A(i)=abs(a(i))/eta;if A(i)>a2r0=r0+dar0;break;endendif i==N2break;endendend子程序5计算曲率半径,并修正r0,计算理论轮廓曲线坐标和实际轮廓曲线的坐标及曲率半径,拖杆位移:function [x,y,X,Y,p,s,r0]=qulvvv(r0,rr,e,h,paamin,dar0,N,k1,k2,k3,k4)eta=pi/180;%化为弧度i=1;while(1)s0=(r0^2-e^2)^(1/2);syms k s dk ds d2k d2sn1=k1/360*N;k11=linspace(0,k1,n1);s1=k11./k11.*0;x1=e.*cos(k11.*pi/180)+(s0+s1).*sin(k11.*pi/180);y1=(s0+s1).*cos(k11.*pi/180)-e.*sin(k11.*pi/180);n2=k2/360*N;k22=linspace(k1,k1+k2,n2);s2=(h/2).*(1-cos(pi.*(k22-k1)/k2));x2=e.*cos(k22.*pi/180)+(s0+s2).*sin(k22.*pi/180);y2=(s0+s2).*cos(k22.*pi/180)-e.*sin(k22.*pi/180);n3=k3/360*N;k33=linspace(k1+k2,k1+k2+k3,n3);s3=k33./k33.*h;x3=e*cos(k33*pi/180)+(s0+h).*sin(k33*pi/180);y3=(s0+h).*cos(k33*pi/180)-e*sin(k33*pi/180);n4=k4/360*N;k44=linspace(k1+k2+k3,k1+k2+k3+k4,n4);s4=h.*(1-(k44-k1-k2-k3)./k4+sin(2*pi.*(k44-k1-k2-k3)./k4)/(2*pi));x4=e.*cos(k44*pi/180)+(s0+s4).*sin(k44*pi/180);y4=(s0+s4).*cos(k44*pi/180)-e*sin(k44*pi/180);x=[x1,x2,x3,x4];y=[y1,y2,y3,y4];k=[k11,k22,k33,k44];s=[s1,s2,s3,s4];dx=diff(x)./diff(k);dk=k(1:end-1);dy=diff(y)./diff(k);dk=k(1:end-1);ds=diff(s)./diff(k);dk=k(1:end-1);d2x=diff(dx)./diff(dk);d2y=diff(dy)./diff(dk);d2y(N)=0;dy(N)=0;dx(N)=0;d2x(N)=0;while(1)p(i)=(dx(i)^2+dy(i)^2)^(3/2)/(dx(i)*d2y(i)-dy(i)*d2x(i));%计算曲率半径pp(i)=abs(p(i))if pp(i)-rr<paaminr0=r0+dar0;i=1;break;elsefor ii=1:Nsino(ii)=dx(ii)/(dx(ii)^2+dy(ii)^2)^0.5;coso(ii)=(-1)*dy(ii)/(dx(ii)^2+dy(ii)^2)^0.5;X(ii)=x(ii)-rr*coso(ii); %定义实际轮廓线的X座标Y(ii)=y(ii)-rr*sino(ii); %定义实际轮廓线的Y座endendi=i+1;if i==Nbreak;endendif i==Nbreak;endendend主程序function[r0,x,y,X,Y,p,s,a,pamin,kamin,a1max,k1max,a2max,k2max]=zuizhong(r0,rr,e,h,a1,a2,paamin,dar0 ,N,k1,k2,k3,k4)N1=(k1+k2)/360*N;N2=(k3+k4)/360*N;b=360/N;eta=pi/180;%化为弧度a11=0;a22=0;s=0;pamin=0;kamin=0;a1max=0;k1max=0;a2max=0; k2max=0;while(1)while(1)[a11,r0]=haha(r0,rr,e,h,a1,dar0,N,k1,k2,k3,k4);%计算符合推程许可压力角的修正的r0r1=r0;[a22,r0]=hahaha(r0,rr,e,h,a2,dar0,N,k1,k2,k3,k4);%计算符合回程许可压力角的修正的r0r2=r0;if r0~=r1break;else[x,y,X,Y,p,s,r0]=qulvvv(r0,rr,e,h,paamin,dar0,N,k1,k2,k3,k4);%计算满足最小许可曲率半径条件的修正的r0,计算实际轮廓曲线坐标和理论轮廓曲线坐标,及曲率半径r3=r0;if r0~=r2break;endendif r0==r3break;endendif r0==r3break;endend[paminkamin]=qulv(p,b,N);[a1max k1max]=yalijiao1(a11,N1,b);[a2max k2max]=yalijiao1(a22,N2,b);a=[a11 a22];figure(1);plot(x,y);hold on;t=linspace(0,2*pi,N);x=r0*cos(t);y=r0*sin(t);plot(0,0,'*',x,y,X,Y);title('凸轮的理论轮廓曲线');axis([-70,70,-70,70]);axis square;end只需输入[r0,x,y,X,Y,p,s,a,pamin,kamin,a1max,k1max,a2max,k2max]=zuizhong(20,14,10,30,40,70,4.2,1,72 ,45,165,50,100)即可得到所需图形和数据。
MATLAB大作业
![MATLAB大作业](https://img.taocdn.com/s3/m/2f930d08a8956bec0975e3b1.png)
基于M A T L A B识别图片中的文字知识点:图像识别图像处理计算机视觉实验目的:以MATLAB为工具,识别图片中的文字。
问题描述:交通是一个十分重要的问题,红绿灯上的摄像头可以辨别车主的身份。
现在,我们是否能够用matlab设计一个图像识别的系统,通过车牌号的来识别相应的数字。
问题分析及模型建立:第一步:确定车牌号的区域对于一张图像在matlab中,在处理图像元素时用(x,y,z)三坐标的形式表达的灰度集时,其中,x和y是空间坐标,z是f 在坐标(x,y)处的值,就可以表达图像在该坐标轴上的点。
再将,将f(x,y)的数值简单地显示为一个矩阵,就可以定量地表达了一幅数值图像。
矩阵中的每个元素称为像素。
所以,如果我们想要截取一段车牌号的图像,我们就可以扫描图像每一个点的像素。
然后我们进行恢复处理,算子边缘检测,腐蚀,闭操作,删除小对象得到我们就可以利用RGB的值找到白色区域的边界,然后我们利用边界,截取我们的原图像就可以得到我们所需要的车牌号的区域了。
第二步:进行文字的分割在进行分割之前,就需要将我们所获得的车牌号的区域的图像进行进一步的处理,突出我们需要的文字部分。
灰度处理彩色的图片占用的空间比较大,处理会花费很长的时间,先将图片进行灰度处理二值化再将图片二值化,将图片的256个灰度级强制减少到只有{0,255}2个灰度级,更加方便了后续的文字识别识别。
均值滤波均值滤波是对是对图像进行局部平均, 以平均值来代表该像素点的灰度值。
矩形滤波器对这个二维矢量的每一个分量进行独立的平滑处理。
获得一张比较干净清晰的图像。
腐蚀和膨胀腐蚀可以分割独立的图像元素,膨胀用于连接相邻的元素,更加利于图像的分割进行完图像的预处理,就可以开始图像的切割了首先进行边缘的切割,处理完后的图像为黑底白字。
其中黑色为0,白色1为。
这样我们就可以从四个边缘进行扫描,若行或者列像素之和0的话,就为背景,这样就可以继续向内推移,直到和不为0的位置为止。
Matlab期末大作业
![Matlab期末大作业](https://img.taocdn.com/s3/m/5bd6a47602768e9951e738e4.png)
华南农业大学《控制系统仿真与计算机辅助设计》基于Matlab /Simulink的风力发电机仿真施茂良200830460226陶杰2008304602272012年1月2日题目:用simulink 搭建风力发电机部分的仿真图,使其工作模式满足式(2-4),使用的发电机是永磁同步电机,具体背景材料附后。
风力发电机的控制思路如下:我们需要依据风的速度控制电机的转速使得风能的利用率最高,而电机的转速通过改变永磁同步电机的定子端电压ud 和uq 来实现,具体方程为(3-28)。
最终通过PWM 的导通关断时间来改变端电压,如材料图 2所示。
具体要求:1. 根据公式(2-5)画出类似 图2.3 的曲线。
且当β=0时,画出为获得最大的风能利用率,叶尖速λ和风速v 之间的曲线关系。
风力机用来捕获风能,将叶片迎风扫掠面积内的一部分空气的动能转换为有用的机械能,它决定了整个风力发电系统装置有效功率的输出。
风力机的输入功率是3231122V P A v R v ρρπ==式中,ρ为空气密度;A 为风力机叶片扫掠面积;R 为叶片半径。
v 为风速。
风力机的输出功率为3012p P A v C ρ=式中,pC 为风能利用系数,其值小于1。
风力机输出转矩为;其中λ为叶尖速比 风能利用系数pC 为风力机将风能转换为机械能的效率,它与风速、叶片转速,叶片直径和桨叶节距角均有关系,是叶尖速比λ和桨叶节距角β的函数。
叶尖速比λ是风能叶尖速与风速之比,即R v ωλ=式中,ω为风力机叶片旋转角速度。
根据上文可知,功率与风速具有一定的关系,它们可以用下面的函数来表示213116(,)0.5176(0.45)0.0068110.0350.081i p i iC e λβλβλλλλββ-⎧=--+⎪⎪⎨⎪=-⎪++⎩根据公式(2-5)在simulink 中的建模如图所示:Matlab 波形曲线图其中(β = 0 ,2,5,8,12,15 )代入公式2-5的曲线 蓝色曲线为β=0时风能利用系数p C 与β和λ之间的曲线据根λ=RW/v; 叶尖速λ和转速v 的关系,绘制如下图:2.搭建一个模块,使其产生自然风(5-26),并封装起来,画出一具体的 然风的曲线自然风是非常随机的一种物理现象,其产生机理非常复杂,对其建模也殊为不易。
matlab程序设计作业
![matlab程序设计作业](https://img.taocdn.com/s3/m/091c3b2efd0a79563d1e7270.png)
Matlab程序设计作业姓名:学号:专业:《MATLAB程序设计》作业1、考虑如下x-y 一组实验数据:x=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]y=[1.2, 3, 4, 4, 5, 4.7, 5, 5.2, 6, 7.2]分别绘出plot的原始数据、一次拟合曲线和三次拟合曲线,给出MATLAB代码和运行结果。
12345678910原始曲线1234567891022.533.544.555.566.57一次拟合12345678910三次拟合x=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10];y=[1.2, 3, 4, 4, 5, 4.7, 5, 5.2, 6, 7.2];figure;plot(x,y)p1=polyfit(x,y,1);y1=polyval(p1,x);figure;plot(x,y1)p2=polyfit(x,y,3);y2=polyval(p2,x);figure;plot(x,y2)2、在[0,3π]区间,绘制y=sin(x)曲线(要求消去负半波,即(π,2π)区间内的函数值置零),求出曲线y的平均值,以及y的最大值及其最大值的位置。
给出执行代码和运行结果。
x=0:pi/1000:3*pi;y=sin(x);y1=(y>=0).*y; %消去负半波figure(1);plot(x,y1,'b');a=mean(y1) %求出y1的平均值b=max(y1) %求出y1的最大值b,以及最大值在矩阵中的位置;d=x(find(y1==b))>> ex1a =0.4243b =1d =1.5708 7.8540>>1234567891000.10.20.30.40.50.60.70.80.913、给出函数z=x^2+y^2的三维曲面的绘制结果和MATLAB 代码,x=-3:0.1:3; y=-4:0.1:4;[x,y]=meshgrid(x,y); z=x.^2+y.^2; mesh(x,y,z);4、将一幅彩色图像文件转换为灰度图像,存储并显示转换后的灰度图像,给出运行结果和执行代码。
MATLAB大作业
![MATLAB大作业](https://img.taocdn.com/s3/m/77dfdfd96bd97f192379e99c.png)
MATLAB大作业一、作业说明MATLAB,即matrix laboratory,作为强大的数学处理软件,在化学化工领域中也有着极为广泛的应用。
而作为化工专业的学生,我认为本课学习MATLAB最直接和有效的意义在于,学生能够利用MATLAB处理实验数据和图形。
而对于MATLAB本身数学逻辑与语言的理解和掌握相信在之前所上交的“高斯消元法”和“二分法改进”两次小作业中得到体现。
因此,本次大作业我选择利用MATLAB处理化工原理实验中已经做过的离心泵实验来进行数据处理和图形制作。
其中实验原始数据皆由本人进行化工原理实验时所记录,水的密度和粘度表由文献查得。
二、编程思路整个M文件的目标是,利用现有的实验做得数据,进行实验数据的处理以及图形绘制,主要分为三个步骤完成:第一部分利用插值和拟合求实验温度下水的密度和粘度值;第二部分利用公式和矩阵变换计算离心泵的扬程He和轴功率Pzhou;第三部分作图:离心泵的扬程和轴功率随流量变化的曲线(双y轴)。
具体思路已在主程序文件中进行注释。
三、MATLAB主程序clearclose allformat compact,format shortecho off% 处理化工原理实验数据及图形制作% 第一部分求水的密度和粘度%已知条件:(1)实验温度为23.1℃% (2)网上查得15℃-30℃下水的密度和粘度表,记录为excel表% (3)此部分数据存放在原始数据表的sheet1和sheet2中%%主要方法:(1)MATLAB数据读入% (2)矩阵初等变换% (3)函数拟合% (4)函数插值%[num1]=xlsread('原始数据表');%读取excel表格中sheet1的数据x0=[num1(:,1)];%x0x表示温度值,sheet1的第1列y0=[num1(:,2)];%y0表示密度值,sheet1的第2列x1=x0';%进行转置,将列向量转换为相应的行向量y=y0';%进行转置,将列向量转换为相应的行向量%下面开始拟合密度随温度的变化函数n = length(y);ss = '';for k = 1:n;yy = num2str(y(k));ss = strcat(ss,['+''(' yy ')''*''x''^' num2str(n+1-k)]);%将数值转换为字符串格式,在MATLAB内将密度与温度的关系拟合为n次多项式endpause,ss%输出密度随温度变化函数式%%进行图像表示%x轴为温度,y轴为密度,表示在figure窗口的上半部分pause,subplot(2,1,1),line(x1,y,'linewidth',2),title('T-density'),xlabel('温度T/℃'),ylabel('密度/(kg?m^-3)')axis([15,30,995,1000])pause, x2=23.1,y1=interp1(x1,y,x2,'spline');%读取excel表格中sheet2的数据,接下来步骤与密度处理方法相同[num2]=xlsread('原始数据表',2);t0=[num2(:,1)];z0=[num2(:,2)];t1=t0';z=z0';n = length(z);rr= '';for k = 1:n;zz = num2str(z(k));rr = strcat(rr,['+''(' zz ')''*''t''^' num2str(n+1-k)]);endpause,rr%x轴为温度,y轴为粘度,表示在figure窗口的下半部分pause,subplot(2,1,2),line(t1,z,'linewidth',2),title('T-viscosity'), xlabel('温度T/℃'),ylabel('粘度/(Pa?s)')axis([15,30,0.0008 0.0012])pause,t2=23.1,z1=interp1(t1,z,t2,'spline');y1,z1%显示实验温度下流体的密度与粘度值,y1为密度,z1为粘度pause,close all%关闭图像窗口pause,clc% 第二部分计算离心泵的扬程He和轴功率Pzhou%%已知条件:(1)所需数据存放在原始数据表的sheet3中% (2)从左至右分别为“入口压强、出口压强、入口速度、出口速度、流量、电机功率”% (3)计算公式:He=pout-pin+0.2+(uout.^2-uin.^2)./(9.81*2);% Pzhou=P.*0.9;%%主要方法:(1)MATLAB数据读入% (2)矩阵初等运算与变换% (3)利用MATLAB进行实验数据处理%读取excel表格中sheet3的数据%“pin、pout、uin、uout、qv、P、He、Pzhou”分别表示为%“入口压强、出口压强、入口速度、出口速度、流量、电机功率、扬程和轴功率”[num3]=xlsread('原始数据表',3);pout0=[num3(:,2)];pin0=[num3(:,1)];uout0=[num3(:,4)];uin0=[num3(:,3)];qv0=[num3(:,5)];pout=pout0';pin=pin0';uout=uout0';uin=uin0';qv=qv0';He=pout-pin+0.2+(uout.^2-uin.^2)./(9.81*2);P0=[num3(:,6)];P=P0';Pzhou=P.*0.9;pause,clc%输出计算结果pause,HePzhouclose allpause,clcpause,%第三部分作图:离心泵的扬程和轴功率随流量变化的曲线(双y轴)%%pause,s1=He;s2=Pzhou;x5=qv;yWidth = 60;%设置两个y轴的间隔(像素)axesPosition = [110 40 200 200];%设置图像生成位置x5Limit = [min(x5) max(x5)];%设定自变量范围x5Offset=-yWidth*diff(x5Limit)/axesPosition(3);%建立图像,设置双变量与双坐标轴h1 = axes('Units','pixels','Position',axesPosition,...'Color','w','XColor','k','YColor','r',...'XLim',x5Limit,'YLim',[10 22],'NextPlot','add');h2 = axes('Units','pixels','Position',axesPosition+yWidth.*[-1 0 1 0],...'Color','none','XColor','k','YColor','m',...'XLim',x5Limit+[x5Offset 0],'YLim',[0.3 0.7],...'XTick',[],'XTickLabel',[],'NextPlot','add');xlabel(h1,'qv');ylabel(h2,'Pzhou');%给坐标轴命名pause,plot(h2,x5,s2,'*m');pause,plot(h1,x5,s1,'^r');四、工作日志density_viscosity(密度_粘度)clearclose allformat compact,format shortecho offss =+(999.126)*x^31+(999.05)*x^30+(998.97)*x^29+(998.888)*x^28+(998.802)* x^27+(998.714)*x^26+(998.623)*x^25+(998.53)*x^24+(998.433)*x^23+(998. 334)*x^22+(998.232)*x^21+(998.128)*x^20+(998.021)*x^19+(997.911)*x^18 +(997.799)*x^17+(997.685)*x^16+(997.567)*x^15+(997.448)*x^14+(997.327 )*x^13+(997.201)*x^12+(997.074)*x^11+(996.944)*x^10+(996.813)*x^9+(99 6.679)*x^8+(996.542)*x^7+(996.403)*x^6+(996.262)*x^5+(996.119)*x^4+(9 95.974)*x^3+(995.826)*x^2+(995.676)*x^1x2 =23.1000rr =+(0.0011404)*t^16+(0.0011111)*t^15+(0.0010828)*t^14+(0.0010559)*t^13+ (0.0010299)*t^12+(0.001005)*t^11+(0.000981)*t^10+(0.0009579)*t^9+(0.0009358)*t^8+(0.0009142)*t^7+(0.0008937)*t^6+(0.0008737)*t^5+(0.000854 5)*t^4+(0.000836)*t^3+(0.000818)*t^2+(0.0008007)*t^1t2 =23.1000y1 =997.5432z1 =9.3361e-04He =Columns 1 through 1021.7000 20.9069 19.9348 19.1688 18.7950 18.3412 17.9656 17.1311 16.2075 15.6581Columns 11 through 1415.1075 14.2847 13.4611 12.6543Pzhou =Columns 1 through 100.3240 0.3600 0.4050 0.4500 0.4770 0.5040 0.5310 0.5670 0.5940 0.6120Columns 11 through 140.6300 0.6390 0.6570 0.6750diary off五、附录附录1. 温度在15-30℃时,水的密度表附录2. 温度在15-30℃时,水的粘度表附录3. 离心泵实验原始数据记录表附录4. 生成图像。
matlab程序设计作业
![matlab程序设计作业](https://img.taocdn.com/s3/m/6a62bf7f482fb4daa58d4b91.png)
Matlab程序设计作业姓名:学号:专业:《MATLAB程序设计》作业1、考虑如下x-y 一组实验数据:x=[1, 2,3,4, 5, 6,7,8,9,10]y=[1、2,3,4,4,5, 4、7, 5,5、2, 6, 7、2]分别绘出plot得原始数据、一次拟合曲线与三次拟合曲线,给出MATL AB代码与运行结果。
12345678910原始曲线1234567891022.533.544.555.566.57一次拟合12345678910三次拟合x=[1,2,3, 4, 5,6, 7,8,9, 10];y=[1、2, 3, 4,4, 5, 4、7, 5, 5、2,6, 7、2];figure;plot(x,y)p1=polyfit(x,y,1);y1=polyval(p1,x);figure;plot(x,y1)p2=polyfit(x,y,3);y2=polyval(p2,x);figure;plot(x,y2)2、在[0,3π]区间,绘制y=sin(x)曲线(要求消去负半波,即(π,2π)区间内得函数值置零),求出曲线y得平均值,以及y得最大值及其最大值得位置。
给出执行代码与运行结果.x=0:pi/1000:3*pi;y=sin(x);y1=(y>=0)、*y;%消去负半波figure(1);plot(x,y1,'b');a=mean(y1)%求出y1得平均值b=max(y1)%求出y1得最大值b,以及最大值在矩阵中得位置;d=x(find(y1==b))〉〉ex1a=0、4243b=1d=1、57087、8540〉>1234567891000.10.20.30.40.50.60.70.80.913、给出函数z=x^2+y^2得三维曲面得绘制结果与MA T LAB 代码,x =—3:0、1:3; y=—4:0、1:4;[x,y]=mesh grid (x,y ); z=x 、^2+y 、^2; mesh (x,y ,z);4、将一幅彩色图像文件转换为灰度图像,存储并显示转换后得灰度图像,给出运行结果与执行代码。
MATLAB大作业
![MATLAB大作业](https://img.taocdn.com/s3/m/b3d513d9312b3169a451a48c.png)
MATLAB大作业MATLAB是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。
它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。
MATLAB和Mathematica、Maple并称为三大数学软件。
它在数学类科技应用软件中在数值计算方面首屈一指。
MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯,图像处理、信号检测、金融建模设计与分析等领域。
MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。
在新的版本中也加入了对C,FORTART,C++,JAVA的支持。
可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用。
MATLAB 产品族可以用来进行以下各种工作:●数值分析●数值和符号计算●工程与科学绘图●控制系统的设计与仿真●数字图像处理技术●数字信号处理技术●通讯系统设计与仿真●财务与金融工程MATLAB 的应用范围非常广,包括信号和图像处理、通讯、控制系统设计、测试和测量、财务建模和分析以及计算生物学等众多应用领域。
附加的工具箱(单独提供的专用MATLAB 函数集)扩展了MATLAB 环境,以解决这些应用领域内特定类型的问题。
matlab期末大作业
![matlab期末大作业](https://img.taocdn.com/s3/m/00588dc42cc58bd63186bd36.png)
电气学科大类Modern Control SystemsAnalysis and DesignUsing Matlab and Simulink Title: Automobile Velocity ControlName: 巫宇智Student ID: U200811997Class:电气0811电气0811 巫宇智CataloguePreface (3)The Design Introduction (4)Relative Knowledge (5)Design and Analyze (6)Compare and Conclusion (19)After design (20)Appendix (22)Reference (22)Automobile Velocity Control1.Preface:With the high pace of human civilization development, the car has been a common tools for people. However, some problems also arise in such tendency. Among many problems, the velocity control seems to a significant challenge.In a automated highway system, using the velocity control system to maintain the speed of the car can effectively reduce the potential danger of driving a car and also will bring much convenience to drivers.This article aims at the discussion about velocity control system and the compensator to ameliorate the preference of the plant, thus meets the complicated demands from people. The discussion is based on the simulation of MATLAB.Key word: PI controller, root locus电气0811 巫宇智2.The Design Introduction:Figure 2-1 automated highway systemThe figure shows an automated highway system, and according to computing and simulation, a velocity control system for maintaining the velocity if the two automobiles is developed as below.Figure 2-2 velocity control systemThe input, R(s), is the desired relative velocity between the twoAutomobile Velocity Controlvehicles. Our design goal is to develop a controller that can maintain the vehicles in several specification below.DS1 Zero steady-state error to a step inputDS2 Steady-state error due to a ramp input of less than 25% of the input magnitude.DS3 Percent overshoot less than 5% to a step input.DS4 Settling time less than 1.5 seconds to a step input( using a 2% criterion to establish settling time)3.Relative Knowledge:Controller here actually serves as a compensator, and we have some compensators for different specification and system.电气0811 巫宇智4.Design and Analysis:4.1S pecification analysisAccording to the relative knowledge above, I may consider a PI controller to compensate------------G c(s)=k p s+k I.sDs1: zero steady error to step response:To introduce an integral part to add the system type is enough.Ds2: Steady-state error due to a ramp input of less than 25% of the input magnitude.limsGc(s)G(s)≥4 −−→ Ki>4abs→0Ds3: overshoot less than 5% to a step response.P.0≤5% −−→ξ≥0.69DS4 Settling time less than 1.5 seconds to a step input( using a 2% criterion to establish settling time)Ts≤1.5 −−→ξ∗Wn≥2.66According to DS3 and DS4, we can draw the desired regionto placeAutomobile Velocity Controlour close-loop poles.(as the shadow indicate)Figure 4-1 Desired region for locating the dominant polesAfter adding the controller, the system transfer function become:T(s)=Kp s+Kis3+10s2+(16+Kp)s+KiThe corresponding Routh array is:s3 1 Kp+ab s2a+b Kis1ba KiabKpba+-++))((电气0811 巫宇智s0KiFor stability, we have (a+b)(Kp+ab)−Kia+b>0For another consideration, we need to put the break point of root locus to the shadow area in Figure 4-1 to ensure the dominant poles placed on the left of s=-2.66 line.a=−a−b−(−Ki Kp)2<−2.66In all, the specification is equal to a PI controller with limit below.{(a+b)(Kp+ab)−Kia+b>0⋯⋯⋯⋯⋯①KiKp<−5.32+(a+b)⋯⋯⋯⋯⋯⋯⋯②Ki>4ab⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯③4.2Design process:4.2.1Controller verification:At the very beginning, we take the system with G(s)=1(s+2)(s+8)and the controller (provided by the book) withG c(s)=33+66sfor an initial discussion.Automobile Velocity ControlFigure 4-2 step response( a=2,b=8,Kp=33,Ki=66)Figure 4-3 ramp response( a=2,b=8,Kp=33,Ki=66)电气0811 巫宇智From figure 4-2, we can see that the overshoot is 4.75%, and the settling time is 1.04 s with zero error to the step input.From figure 4-3, it is clear that the ramp steady-state error is a little less than 25%.Thus, the controller with G c(s)=33+66scompletely meets the specification .4.2.2further analysis:For next procedure, I will have some more specific discussion about the applicable range of this controller to see how much can a and b vary yet allow the system to remain stable.We don’t change the parameter of the controller, and insert the Ki=66, Kp=33 into the inequality and get this:.{ab<16.5a+b>7.32ab+33−66a+b>0If we suppose the system to be a minimum phase system, a,b>0,thus it is easy to verify the 3rd inequality. Now, we draw to see the range of a and b.Figure4-4 the range of a,b for controller(Kp=33,Ki=66)Actually, the shade area can not completely meets the specification, for the constraint conditions represented in the 3 inequality is not enough, we need to draw the root locus for a certain system(a and b) to locate the actual limit for controller.However, this task is rather difficult, in a way, the 4 variables (a,b,Ki,Kp) all vary in terms of others’ change . Thus we can approximately locate the range of a and b from the figure above.4.2.3Alternatives discussion:According to inequality ①②③,The range of a and b bear some relation with the inequality below:{ a +b >5.32+Ki Kp ab <Ki 4Kp +ab −Ki a +b >0Basing our assumption on the range in the previous discussion, we can easily see that in order to increase the range, we can increase Ki and decrease the ratio of Ki to Kp.Thus, I adjust the parameter to{Ki =80Kp =64Figure4-5 the range of a,b for controller(Kp=64,Ki=80)As the figure indicate,(the range between dotted lines refers tothe previous controller, while the range between red lines refers to the new alternatives), the range increase as we expect.Next step, we may keep the system of G(s)=1(s+2)(s+8)fixed, and discuss the different compensating effect of different PI parameter.When carefully checking the controller, we may find that the controller actually add a zero( -Ki/Kp) , an integral part and a gain part, so we can only change the zero and draw the locus root and examine the step response and ramp response.KiKp=1.5:Figure4-6 the root locus (KiKp=1.5)Using rlocfind, we find the maximum Kp=34.8740So we choose 3 groups of parameter ([35,52.5],[30.45],[25,37.5]) to examine the reponseFigure4-7 the step response (KiKp=1.5)It’s clear that the step response preference is not satisfying with too long settling timeKiKp=2:Figure4-8 the root locus (KiKp=2)Using rlocfind, we find the maximum Kp=34.3673So we choose 3 groups of parameter to examine the response and ramp response.Figure4-9 the step response (KiKp=2)Figure4-10 the ramp response (KiKp=2)KiKp=2.5:Figure4-11 the root locus (KiKp=2.5)Using rlocfind, we find the maximum Kp=31.47Similarly, we choose 3 groups of parameter to examine the response and ramp response.Figure4-12 the step response (KiKp=2.5)Virtually, the overshoot (Kp=30, Ki=75) doesn’t meet thespecification as we expect. I guess, that may come from the effect ofzero(-2.5), thus , go back to the step response of KiKp=2, due to the elimination between zero(-2) and poles, thus the preference is within our expectation.Figure4-13 the ramp response (KiKp=2.5)pare and ConclusionMainly from the step response and ramp response, it can be concluded that, in a certain ratio of Ki to Kp, the larger Kp brings smaller ramp response error, as well as larger range of applicable system. Nevertheless, the larger Kp means worse step response preference(including overshoot and settling time).This contradiction is rather common in control system.In all, to get the most satisfying preference, we need to balanceall the parameter to make a compromise, but not a single parameter.From what we are talking about, we find the controller provided by the book(Kp=33, Ki=66) may be one of the best controller in comparison to some degree, with satisfying step response and ramp response preference, as well as a wider range for the variation of a and b, further, it use a zero(s=-2) to transfer the 3rd order system to 2nd order system, in doing so, we may eliminate some unexpected influence from the zero.The controller verified above (in Figure4-9 and Figure 4-10) with Kp=34, Kp=68 may be a little better, but only a little, and it doesn’t leave some margin.6.After Design这是一次艰难,且漫长的大作业,连续一个星期,每天忙到晚上3点,总算完成了这个设计,至少我自己是很满意的。
MATLAB大作业
![MATLAB大作业](https://img.taocdn.com/s3/m/024de7aeb0717fd5360cdcc6.png)
实验七图像的形态学运算一、实验目的1.掌握图像的奇异值分解与合成2.能够利用模板操作实现图像的腐蚀运算3.能够利用模板操作实现图像的膨胀运算4.掌握图像的开、闭运算二、实验内容1. 读下面的程序,分析该程序要完成什么样的功能。
A=[1 2 1;2 3 2;1 2 1];[u d v]=svd(A);[nx,ny]=size(A);I=eye(nx,nx);for i=nx:-1:2I(i,i)=0;endB=u*I*d*v';BX=imread('cameraman.bmp');X=double(X);A=X(20:256,20:256);[nx,ny]=size(A);I=eye(nx,nx);for i=nx:-1:21I(i,i)=0;end[u d v]=svd(A);B=u*I*d*v';A=uint8(A);`B=uint8(B);subplot(2,2,1);imshow(A)subplot(2,1,2);imshow(B)该程序的功能是对图像分别进行膨胀和腐蚀的操作!2. 利用模板操作,编写程序实现二值图像的腐蚀运算函数imerode的功能。
程序:a=imread('D:\005.bmp');b=~a;m=[1;1;1];n=[1 1 0];p=[0 0 0;0 1 0;0 0 0];q=[0 0 1;0 0 0;1 0 0];c1=imerode(b,m);c2=imerode(b,n);c3=imerode(b,p);c4=imerode(b,q); subplot(1,5,1);imshow(b)subplot(1,5,2);imshow(c1)subplot(1,5,3);imshow(c2)subplot(1,5,4);imshow(c3)subplot(1,5,5);imshow(c4)3. 利用模板操作,编写程序实现二值图像的膨胀运算函数imdilate的功能。
MATLAB程序设计期末大作业
![MATLAB程序设计期末大作业](https://img.taocdn.com/s3/m/f5b97c1f52d380eb62946de5.png)
MATLAB程序设计期末大作业姓名:班级:学号:指导教师:题目1给定如图1所示的单位负反馈系统。
图1在系统中分别引入不同的非线性环节(饱和、死区、与滞环),观察系统的阶跃响应,并且分析比较不同的非线性环节对系统性能的影响。
解:1、利用MATLAB中的simulink工具箱,对题设控制系统进行建模,如图1 所示。
则没有任何非线性环节的系统,其阶跃响应曲线如图2 所示。
图22、在系统中加入饱和非线性环节,系统框图如图3所示。
其中,饱和非线性环节的输出上限为0.1,输出下限为-0.1;阶跃信号幅值为1。
图3利用simulink进行仿真,得到的阶跃响应曲线如图4所示。
图4为了比较当饱和非线性环节输出上下限变化时系统阶跃响应的不同,可以利用simulink中的to workspace模块,将多次仿真的结果记录到工作空间的不同数组中,并且绘制到同一幅图像上。
此时,系统框图如图5所示。
图5将4种情况下系统的阶跃响应曲线绘制在同一幅图像中,代码如下:>> plot(tout,out2);>> plot(tout,out2);>> hold on;>> grid on;>> gtext('0.1');>> plot(tout,out1);>> plot(tout,out3);>> gtext('0.2');>> plot(tout,out4);>> gtext('0.5');运行程序,结果如图6所示。
图6从图6中可以看出:当饱和非线性环节的输出范围较窄时,系统的阶跃响应速度较慢,上升时间长;同时,超调量较小,振荡不明显;随着输出范围的扩大,系统的响应速度加快,上升时间大大减小,同时伴有显著的振荡。
这是因为饱和环节会对信号起到限幅作用;不难想象,限制作用越强,系统的输出越不容易超调,响应也会越慢,这从图6也可以看出这一趋势。
2015-4matlab程序设计大作业评分标准
![2015-4matlab程序设计大作业评分标准](https://img.taocdn.com/s3/m/7847de0b6bd97f192279e95a.png)
命题人: 龙佳乐 审核人: 试卷分类(A 卷或B 卷) A 五邑大学 试 卷 学期: 2014 至 2015 学年度 第 2 学期课程: Matlab 程序设计 课程代号: 0702210使用班级:140707,140708 姓名: 学号: 题一设A 是一个256×256的矩阵,编写一个函数,格式为 B=function_name(A, n),其中 n 为一个正整数(≤256×256),该函数只保留A 矩阵中绝对值最大的 n 个元素,其他元素值设为零,输出到B 矩阵。
测定n=500时程序运行时间。
题二将一个绘图界面分4幅,选择合适的步长在左上幅与右下幅绘制出下列函数的图形。
①,22x ππ⎡⎤∈-⎢⎥⎣⎦② 228x y +=。
(25分) 题三设计类似下图所示的图形用户界面系统,要求有绘图界面有按键可输入参数。
用户按不同的按纽输入不同的参数可产生不同的效果。
该图为示意图,界面系统的功能可以是画图可以是修改图形参数或者其他。
(40分)评分标准:三个题目均正确完成为良好,若第三题设计完整合理、布局美观则为优;只完成前两题,第三题初步完成为中,第三题未完成为及格;只完成前两题任一题,第三题正确完成为中;只完成一题,则不及格。
function [B]=function_mane(A,n)t=cputime;a=zeros(1,256*256);for p=1:1:length(a) a(p)= abs(A(p));end s_a=sort(a,'descend');n_a=s_a(n);B=max(A,n_a);for i=1:1:256 for j=1:1:256if B(i,j)==n_a B(i,j)=0;endendendtime=cputime-t;fprintf('Run time is %f.\n',time);2.函数:function B=E_max(A,n) B=zeros(256,256); R=reshape(A,1,256*256); R=sort(R,'descend'); for i=1:n [x,y]=find(A==R(i)); B(x,y)=R(i); end主程序:>> A=rand(256,256); >> tic; >> B=E_max(A,300); >> t=toc t = 21.3786L=length(A);b=A(1,:);for i=2:Lb=cat(2,b,A(i,:));end;[sortb,index]=sort(b);for i=1:(L^2-n)sortb(i)=0;end;for i=1:L^2sortbb(index(i))=sortb(i);endc=sortbb(1:L);for i=1:(L-1)c=cat(1,c,sortbb((i*L+1):(i*L+L)));endfuction B=function_name(A, n)C=zeros(245,245);A_abs=abs(A);minA=min(min(A_abs))for (ni=1:n)[max_ys yis]=max(A_abs);[max_x xi]=max(max_ys);yi=yis(xi);C(yi,xi)=A(yi,xi);C(yi,xi)=minA;endB=C;function [c]=function_q(x,n)t=cputime; %获取当前CPU时间a=zeros(1,256*256); %生成一个1行256×256列的零矩阵for p=1:1:length(a) %将矩阵x的值赋给a矩阵a(p)=x(p); %根据你说的意思,个人认为这里应该取绝对值,ends_a=sort(a,'descend'); %对矩阵a进行降序排序,最大的在前面n_a=s_a(n); %获取排序后第n大的值,即矩阵x中第n大的值%根据你后面的意思,个人认为这里应该取n+1; %即n_a = s_a(n+1);c=max(x,n_a); %将矩阵x中小于n_a的值赋值为n_a,最后传递给c矩阵%遍历c矩阵,将所有值为n_a的赋值为0for i=1:1:256for j=1:1:256if c(i,j)==n_a c(i,j)=0;endendendtime=cputime-t; %获取程序运行时间fprintf('Run time is %f.\n',time); %输出程序运行时间第二题subplot(2,2,1);>> ezplot('(cos(x))^(1/2)',[-pi./2,pi./2]);>> xlabel('自变量x')>> ylabel('因变量y');>> subplot(2,2,2);>> subplot(2,2,3);>> subplot(2,2,4)>> ezsurfc('x^2+y^2');>>title(…….)>> text(-13,-12,' x^2+y^2=8');text函数用于在图形中指定的位置上显示字符串。
matlab大作业
![matlab大作业](https://img.taocdn.com/s3/m/a12032f1c8d376eeaeaa3127.png)
Matlab大作业大作业要求:1 以下matlab编程和simulink题目各选做一个,大作业总共两道题。
2如果不做给定的题目,自己选题,提前qq(244731524)上和我说下,根据题目的难易,可以考虑多给些时间。
3 第十周前由各班学委统一将纸质版交给我,写上班级,学号,姓名。
4 请勿抄袭。
Matlab编程1、使用m文件对周期信号频域进行分析(1)用matlab求周期矩形脉冲的傅里叶级数,并绘制出周期矩形脉冲信号及其频谱图(2),用matlab求改变周期、脉冲宽度后的周期矩形脉冲的傅里叶级数和频谱,并分析周期,脉宽对周期信号频谱的影响。
2、使用m文件对非周期信号频域进行分析(1)用matlab对矩形脉冲信号的频谱进行分析(2)利用matalb函数绘制给定信号的幅度谱和相位谱。
Simulink1、使用Simulink的积分模块求解二阶微分方程:x’’+0.2x’+0.4x =0.2u(t) ,u (t) 是单位阶跃函数a、用积分模块创建求解微分方程的模型思路:利用连续系统模块库中的积分器Integrator,解微分方程。
建模仿真:阶跃信号Step ,求和sum,常数增益gain,积分器,示波器scopeb、用传递函数求微分方程思路:对微分方程作laplace变换,移项整理后求得传递函数,利用连续系统模块库中的传递函数模块Transfer Fcn ,解微分方程。
建模仿真:阶跃信号Step ,示波器scope,传递函数模块Transfer Fcn等2、使用simupower system模块求解电路。
电路如图所示,参数如下:R1=2,R2=4,R3=12,R4=4,R5=12,R6=4,R7=2,Us=10V。
求i3,U4,U7;。
哈工大MATLAB选修课最终大作业
![哈工大MATLAB选修课最终大作业](https://img.taocdn.com/s3/m/b4162b2f376baf1ffc4fadf7.png)
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):可输入指定范围的数量值,通过移动滚动条来改变指定范围内的数值输入,滚动条的位置代表输入数值。
MATLAB 大作业
![MATLAB 大作业](https://img.taocdn.com/s3/m/a13c02e119e8b8f67c1cb9c0.png)
MATLAB 大作业请各位同学,自己完成matlab 大作业的内容。
禁止相互抄袭,如有雷同,零分计算。
大作业的格式按照实验报告的格式书写,务必标明题号,作业完成后,将生成的报告打印出来提交。
正文的字号以宋体五号字,1.5倍行距的格式打印。
请与18周五前将大作业报告由班级负责人统一收齐交给我,过期不收。
1、 试编写名为test01.m 的MATLAB 函数,用以计算下述的值:⎪⎩⎪⎨⎧-<->=t t n t t t n t f 的对所有其他情况的对所有)4/sin()(si )4/sin()sin()4/sin()(si )4/sin()(ππππ要绘制t 关于函数f (t )的图形,其中t 的取值范围为ππ66≤≤-t ,间距为10/π。
(提示:注意要产生一系列的点,这里可考虑t 的输入是向量形式,可以利用find 函数找出所需限定值的元素的位置,对其按需要赋值后,再进行绘图;其次,另外一种思路,也可考虑使用循环的形式来实现)2、 编写函数,在同一窗口的4个子图中利用plot 等语句绘制y=at 2图像,其中a=[1 2 5 10],t错误!未找到引用源。
3、 求函数32)(3-+=x x x f 在区间[-5,5]上的最大值和最小值。
4、 求解函数⎰12dx e x 的数值积分和符号积分,并比较结果。
5、 求解微分方程3|;1|2)1(002='='=''+==x x y y y x y x 的精确解和解析解,并绘制图形。
假设求解区间为[0,10] 。
6、 说说你对MATLAB 及应用这门课程学习后的体会,另外请说明在所学章节中哪一章的内容你最感兴趣,为什么?哪一章的内容你认为是没有必要学习的,为什么?如果可以选择MATLAB 的学习的内容的话,谈谈你所期望学到的知识类别的前三种。
1.实验名称 MATLAB 大作业2.实验目的(1)理解Matlab数据对象的特点;(2)掌握基本Matlab运算规则;(3)掌握Matlab帮助的使用方法;3.实验设备及条件计算机一台(带有MATLAB7.0以上的软件环境)4.实验内容及要求请各位同学,自己完成matlab大作业的内容。
MATLAB大作业
![MATLAB大作业](https://img.taocdn.com/s3/m/129f836dc8d376eeafaa313f.png)
MATLAB大作业作业要求:(1)编写程序并上机实现,提交作业文档,包括打印稿(不含源程序)和电子稿(包含源程序),以班为单位交,作业提交截止时间6月24日。
(2)作业文档内容:问题描述、问题求解算法(方案)、MATLAB程序、结果分析、本课程学习体会、列出主要的参考文献。
打印稿不要求MATLAB程序,但电子稿要包含MATLAB 程序。
(3)作业文档字数不限,但要求写实,写出自己的理解、收获和体会,有话则长,无话则短。
不要抄袭复制,可以参考网上、文献资料的内容,但要理解,要变成自己的语言,按自己的思路组织内容。
(4)从给出的问题中至少选择一题(多做不限,但必须独立完成,严禁抄袭)。
(5)大作业占过程考核的20%,从完成情况、工作量、作业文档方面评分。
第一类:绘制图形。
(B级)问题一:斐波那契(Fibonacci)螺旋线,也称黄金螺旋线(Golden spiral),是根据斐波那契数列画出来的螺旋曲线,自然界中存在许多斐波那契螺旋线的图案,是自然界最完美的经典黄金比例。
斐波那契螺旋线,以斐波那契数为边的正方形拼成的长方形,然后在正方形里面画一个90度的扇形,连起来的弧线就是斐波那契螺旋线,如图所示。
问题二:绘制谢尔宾斯基三角形(Sierpinskitriangle)是一种分形,由波兰数学家谢尔宾斯基在1915年提出,它是一种典型的自相似集。
其生成过程为:取一个实心的三角形(通常使用等边三角形),沿三边中点的连线,将它分成四个小三角形,然后去掉中间的那一个小三角形。
接下来对其余三个小三角形重复上述操作,如图所示。
问题三:其他分形曲线或图形。
分形曲线还有很多,教材介绍了科赫曲线,其他还有皮亚诺曲线、分形树、康托(G. Cantor)三分集、Julia集、曼德布罗集合(Mandelbrot set),等等。
这方面的资料很多(如/content/16/0103/14/5315_525141100.shtml),请分析构图原理并用MATLAB实现。
五邑大学《MATLAB程序设计》选修课大作业
![五邑大学《MATLAB程序设计》选修课大作业](https://img.taocdn.com/s3/m/bdbe25efaeaad1f346933f6b.png)
五邑大学《MATLAB程序设计》选修课大作业学生姓名:学生学号:学院年级专业:学院级专业指导老师:刘战(副教授)成绩:2010年12月1、求下列联立方程的解⎪⎪⎩⎪⎪⎨⎧-=+-+-=-+-=++-=--+81025695832475412743w z y x w z x w z y x w z y x 求系数矩阵的秩;求出方程组的解。
解:在MATLAB 中输入以下指令:>> a=[3 4 -7 -12;5 -7 4 2;1 0 8 -5;-6 5 -2 10]a =3 4 -7 -125 -7 4 21 0 8 -5-6 5 -2 10>> rank(a)ans =4>> b=[4;-3;9;-8]b =4-39-8>> k=a\bk =-1.4841-0.68160.5337-1.2429故系数矩阵的秩为4 方程组的解为x=-1.4841 y=-0.6816 z=0.5337 w=-1.24292、设))]1/()sin 3((5.0cos[2x x y ++=把x=0~2π间分为101点,画出以x 为横坐标,y 为纵坐标的曲线;解:在MATLAB 中输入以下指令:x=linspace(0,2*pi,101);y=cos(0.5+3.*sin(x)./(1+x.^2));plot(x,y,'g-') //这里可以把‘g-’改成其它的,具体请对表基本线型和颜色(见附录) title('函数曲线')xlabel('自变量 x')ylabel('因变量y')text(2,0.5,'y=cos[0.5+3sin(x)/(1+x^2)]')grid //这里可以不用grid 也就是没有栅格 用就有 下图就没用输入结果为:3、设6234)(245+-+-=x x x x x f(1)取x=[-2,8]之间函数的值(取100个点),画出曲线,看它有几个零点。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
M a t l a b程序设计大作
业
公司内部档案编码:[OPPTR-OPPT28-OPPTL98-OPPNN08]
Matlab程序设计
课程大作业
题目名称:_________________________________ 班级:_________________________________
姓名:_________________________________
学号:_________________________________
课程教师:温海骏
学期: 2015-2016学年第2学期
完成时间:
MATLAB优化应用
§1 线性规划模型
一、线性规划问题:
问题1:生产计划问题
假设某厂计划生产甲、乙两种产品,现库存主要材料有A类3600公斤,B类2000公斤,C类3000公斤。
每件甲产品需用材料A类9公斤,B类4公斤,C类3公斤。
每件乙产品,需用材料A类4公斤,B类5公斤,C类10公斤。
甲单位产品的利润70元,乙单位产品的利润120元。
问如何安排生产,才能使该厂所获的利润最大。
问题2:投资问题
某公司有一批资金用于4个工程项目的投资,其投资各项目时所得的净收益(投入资金百分比)如下表:工程项目收益表
由于某种原因,决定用于项目A的投资不大于其他各项投资之和而用于项目B和C的投资要大于项目D的投资。
试确定该公司收益最大的投资分配方案。
问题3:运输问题
有A 、B 、C 三个食品加工厂,负责供给甲、乙、丙、丁四个市场。
三个厂每天生产食品箱数上限如下表:
四个市场每天的需求量如下表:
从各厂运到各市场的运输费(元/每箱)由下表给出:
求在基本满足供需平衡的约束条件下使总运输费用最小。
§2 多目标规划模型
多目标规划定义为在一组约束下,多个不同的目标函数进行优化设计。
数学模型:
12min ()()
().()0,1,2,
,m j f x f x f x st g x j k
⎡⎤⎣⎦
≤=
其中x=(x 1 ,x 2 , … ,x n )为一个n 维向量;f i (x)为目标函数,i=1,
2, … ,m; g j (x)为系统约束, j=1, 2, … ,k 。
当目标函数处于冲突状态时,不存在最优解使所有目标函数同时达到最优。
于是我们寻求有效解(又称非劣解或非支配解或帕累托解) 定义:若 x *(x *∈Ω)的邻域内不存在Δx ,使得(x *+Δx ∈Ω),且
()(),1,2,,()(), i i j j F x x F x i m
F x x F x j
***
*
+∆≤=+∆≥某些
则称 x *为有效解。
多目标规划问题的几种常用解法: (1) 主要目标法
其基本思想是:在多目标问题中,根据问题的实际情况,确定一个目标为主要目标,而把其余目标作为次要目标,并且根据经验,选取一定的界限值。
这样就可以把次要目标作为约束来处理,于是就将原来的多目标问题转化为一个在新的约束下的单目标最优化问题。
(2) 线性加权和法
其基本思想是:按照多目标f i (x) (i=1, 2, … ,m)的重要程度,分别乘以一组权系数λj (j=1, 2, … ,m)然后相加作为目标函数而构成单目标规划问题。
即1
min ()m
j j j f f x λ==∑,其中 1
01m
j j j λλ=>=∑且
问题1:某钢铁厂准备用5000万用于A 、B 两个项目的技术改造投资。
设x 1、x 2分别表示分配给项目A 、B 的投资。
据专家预估计,投资项目A 、B 的年收益分别为70%和66%。
同时,投资后总的风险损失将随着
总投资和单项投资的增加而增加,已知总的风险损失为++(x 1+x 2)2
,问应如何分配资金才能使期望的收益最大,同时使风险损失为最小。
(3) 极大极小法
其基本思想是:对于极小化的多目标规划,让其中最大的目标函数值尽可能地小为此,对每个 x ∈R ,我们先求诸目标函数值f i (x)的最大值,然后再求这些最大值中的最小值。
即构造单目标规划:
{}
1min max ()j j m
f f x ≤≤=
(4) 目标达到法
对于多目标规划:
12min ()()
().()0,1,2,
,m j f x f x f x st g x j n
⎡⎤⎣⎦
≤=
先设计与目标函数相应的一组目标值理想化向量
()12,,
,m f
f f *
**,
再设γ为一松弛因子标量。
设()12,,,m w w w 为权值系数向量。
于是多目标规划问题化为:
,min (),1,2,,()0,1,2,
,x j j F x weight f j m
g x j k
γ
γ
γ*-•≤=≤=
问题2:某 化工厂拟生产两种新产品A 和B ,其生产设备费用分别为2万元/吨和5万元/吨。
这两种产品均将造成环境污染,设由公害所造成的损失可折算为A 为4万元 /吨,B 为1万元/吨。
由于条件限制,工厂
生产产品A 和B 的最大生产能力各为每月5吨和6吨,而市场需要这两种产品的总量每月不少于7吨。
试问工厂如何安排生产计划,在满足市场需要的前提下,使设备投资和公害损失均达最小。
该工厂决策认为,这两个目标中环境污染应优先考虑,设备投资的目标值为20万元,公害损失的目标为12万元。
问题3:某工厂生产两种产品甲和乙,已知生产甲产品100公斤需6个工时,生产乙产品100公斤需8个工时。
假定每日可用的工时数为48工时。
这两种产品每100公斤均可获利500元。
乙产品较受欢迎,且若有个老顾客要求每日供应他乙种产品500公斤,问应如何安排生产计划 §3 最大最小化模型
问题1 求解下列最大最小值问题:
123422112121222312
2241212minmax (),(),(),() ()321235
()547
()6()491220
f x f x f x f x f x x x x f x x x x f x x x f x x x x x ⎡⎤⎣⎦
=+-+=-+=+=+-+其中
例2:选址问题
设某城市有某种物品的10个需求点,第i 个需求点P i 的坐标为(a i ,b i ),道路网与坐标轴平行,彼此正交。
现打算建一个该物品的供应中心,且由于受到城市某些条件的限制,该供应中心只能设在x 界于[5,8],y 界于[5,8]的范围之内。
问该中心应建在何处为好
P点的坐标为:。