MATLAB程序设计作业
(完整word版)优化设计Matlab编程作业
优化设计无约束优化min f(x)= 21x +22x -21x 2x -41x初选x0=[1,1]程序:Step 1: Write an M-file objfun1.m.function f1=objfun1(x)f1=x(1)^2+2*x(2)^2-2*x(1)*x(2)-4*x(1);Step 2: Invoke one of the unconstrained optimization routinesx0=[1,1];>> options = optimset('LargeScale','off');>> [x,fval,exitflag,output] = fminunc(@objfun1,x0,options)运行结果:x =4.0000 2.0000fval =-8.0000exitflag =1output =iterations: 3funcCount: 12stepsize: 1firstorderopt: 2.3842e-007algorithm: 'medium-scale: Quasi-Newton line search'message: [1x85 char]非线性有约束优化1. Min f(x)=321x +22x +21x -32x +5Subject to: 1g (x)=1x +2x +18≤02g (x)=51x -32x -25≤03g (x)=131x -4122x 0≤4g (x)=14≤1x 130≤5g (x)=2≤2x 57≤初选x0=[10,10]Step 1: Write an M-file objfun2.mfunction f2=objfun2(x)f2=3*x(1)^2+x(2)^2+2*x(1)-3*x(2)+5;Step 2: Write an M-file confun1.m for the constraints.function [c,ceq]=confun1(x)% Nonlinear inequality constraintsc=[x(1)+x(2)+18;5*x(1)-3*x(2)-25;13*x(1)-41*x(2)^2;14-x(1);x(1)-130;2-x(2);x(2)-57];% Nonlinear inequality constraintsceq=[];Step 3: Invoke constrained optimization routinex0=[10,10]; % Make a starting guess at the solution>> options = optimset('LargeScale','off');>> [x, fval] = ...fmincon(@objfun2,x0,[],[],[],[],[],[],@confun1,options)运行结果:x =3.6755 -7.0744fval =124.14952. min f (x )=222154x x +s.t. 0632)(211≤-+=x x x g01)(212≥+=x x x g 初选x0=[1,1]Step 1: Write an M-file objfun3.mfunction f=objfun3(x)f=4*x(1)^2+5*x(2)^2Step 2: Write an M-file confun3.m for the constraints.function [c,ceq]=confun3(x)%Nonlinear inequality constraintsc=[2*x(1)+3*x(2)-6;-x(1)*x(2)-1];% Nonlinear equality constraintsceq[];Step 3: Invoke constrained optimization routinex0=[1,1];% Make a starting guess at the solution>> options = optimset('LargeScale','off');>> [x, fval] = ...fmincon(@objfun,x0,[],[],[],[],[],[],@confun,options)运行结果:Optimization terminated: no feasible solution found. Magnitude of searchdirection less than 2*options.TolX but constraints are not satisfied.x =1 1fval =-13实例:螺栓连接的优化设计图示为一压气机气缸与缸盖连接的示意图。
matlab大作业实验报告,《Matlab程序设计》期末实验报告-大作业2015.doc
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的值,并显⽰结果。
matlb课程设计作业
matlb课程设计作业一、教学目标本课程的教学目标是使学生掌握MATLAB基本语法、编程技巧以及应用方法,培养学生解决实际问题的能力。
具体目标如下:1.知识目标:(1)理解MATLAB的基本概念,如变量、数据类型、运算符等。
(2)掌握MATLAB编程的基本语法,如矩阵操作、函数定义与调用、循环结构、条件语句等。
(3)熟悉MATLAB与其他软件(如Mathematica、Python等)的接口转换。
(4)了解MATLAB在工程领域中的应用,如信号处理、控制系统、图像处理等。
2.技能目标:(1)能够运用MATLAB进行简单的数学计算、数据分析及图形绘制。
(2)具备编写MATLAB脚本文件和函数文件的能力。
(3)学会使用MATLAB解决实际问题,如编写程序实现线性方程组求解、最优化问题求解等。
(4)掌握MATLAB在实验数据处理、仿真实验等方面的应用。
3.情感态度价值观目标:(1)培养学生对科学探究的兴趣,提高其创新意识。
(2)培养学生团队协作、沟通交流的能力。
(3)培养学生具备良好的编程习惯和职业道德。
二、教学内容本课程的教学内容主要包括以下几个部分:1.MATLAB基本概念:变量、数据类型、运算符等。
2.MATLAB编程语法:矩阵操作、函数定义与调用、循环结构、条件语句等。
3.MATLAB高级应用:数组运算、图像处理、控制系统、信号处理等。
4.MATLAB与其他软件的接口转换。
5.实践项目:利用MATLAB解决实际问题,如线性方程组求解、最优化问题求解等。
三、教学方法本课程采用讲授法、案例分析法、实验法等多种教学方法相结合,以提高学生的学习兴趣和主动性。
1.讲授法:用于讲解MATLAB基本概念、语法和应用。
2.案例分析法:通过分析实际案例,使学生掌握MATLAB在各个领域的应用。
3.实验法:让学生亲自动手实践,培养其运用MATLAB解决实际问题的能力。
四、教学资源1.教材:选用《MATLAB教程》作为主要教材,辅助以相关参考书籍。
matlab简单编程21个题目及答案
1、设⎥⎦⎤⎢⎣⎡++=)1(sin35.0cos2xxxy,把x=0~2π间分为101点,画出以x为横坐标,y为纵坐标的曲线。
第一题的matlab源程序:①考虑cos(x)为一个整体,然后乘以中括号里面的全部x=0:2*pi/100:2*pi; %x的步长以及范围从0到2*pi y=cos(x).*(0.5+3*sin(x)./(1+x.^2)); %y的表达式plot(x,y)%画出图形图如下:②考虑对整体求解cos,先求x乘以括号中的部分x=0:2*pi/100:2*pi; %x的步长以及范围从0到2*pi y=cos(x.*(0.5+3*sin(x)./(1+x.^2))); %y的表达式plot(x,y) %画出图形图如下:2、产生8×6阶的正态分布随机数矩阵R1, 求其各列的平均值和均方差。
并求该矩阵全体数的平均值和均方差。
第二题的matlab源程序如下:R1=randn(8,6) %产生正态分布随机矩阵R1 =1.0933 -0.7697 1.5442 -0.1924 1.4193 0.21571.1093 0.3714 0.0859 0.8886 0.2916 -1.1658-0.8637 -0.2256 -1.4916 -0.7648 0.1978 -1.14800.0774 1.1174 -0.7423 -1.4023 1.5877 0.1049-1.2141 -1.0891 -1.0616 -1.4224 -0.8045 0.7223-1.1135 0.0326 2.3505 0.4882 0.6966 2.5855-0.0068 0.5525 -0.6156 -0.1774 0.8351 -0.66691.5326 1.1006 0.7481 -0.1961 -0.2437 0.1873aver=(sum(R1(1:end,1:end)))./8 %产生各行的平均值aver =0.0768 0.1363 0.1022 -0.3473 0.4975 0.1044a=std(R1(1:end,1:end)) %产生各行的均方差也就是标准差a =1.0819 0.8093 1.3456 0.8233 0.8079 1.2150aver1=(sum(R1(:)))./48 %全体数的平均值aver1 =0.0950b=std(R1(:)) %全体数的均方差即标准差b =1.01033、设x=rcost+3t,y=rsint+3,分别令r=2,3,4,画出参数t=0~10区间生成的x~y 曲线。
matlab简单编程21个题目及答案
1、设⎥⎦⎤⎢⎣⎡++=)1(sin35.0cos2xxxy,把x=0~2π间分为101点,画出以x为横坐标,y为纵坐标的曲线。
第一题的matlab源程序:①考虑cos(x)为一个整体,然后乘以中括号里面的全部x=0:2*pi/100:2*pi; %x的步长以及范围从0到2*pi y=cos(x).*(0.5+3*sin(x)./(1+x.^2)); %y的表达式plot(x,y)%画出图形图如下:②考虑对整体求解cos,先求x乘以括号中的部分x=0:2*pi/100:2*pi; %x的步长以及范围从0到2*pi y=cos(x.*(0.5+3*sin(x)./(1+x.^2))); %y的表达式plot(x,y) %画出图形图如下:2、产生8×6阶的正态分布随机数矩阵R1, 求其各列的平均值和均方差。
并求该矩阵全体数的平均值和均方差。
第二题的matlab源程序如下:R1=randn(8,6) %产生正态分布随机矩阵R1 =1.0933 -0.7697 1.5442 -0.1924 1.4193 0.21571.1093 0.3714 0.0859 0.8886 0.2916 -1.1658-0.8637 -0.2256 -1.4916 -0.7648 0.1978 -1.14800.0774 1.1174 -0.7423 -1.4023 1.5877 0.1049-1.2141 -1.0891 -1.0616 -1.4224 -0.8045 0.7223-1.1135 0.0326 2.3505 0.4882 0.6966 2.5855-0.0068 0.5525 -0.6156 -0.1774 0.8351 -0.66691.5326 1.1006 0.7481 -0.1961 -0.2437 0.1873aver=(sum(R1(1:end,1:end)))./8 %产生各行的平均值aver =0.0768 0.1363 0.1022 -0.3473 0.4975 0.1044a=std(R1(1:end,1:end)) %产生各行的均方差也就是标准差a =1.0819 0.8093 1.3456 0.8233 0.8079 1.2150aver1=(sum(R1(:)))./48 %全体数的平均值aver1 =0.0950b=std(R1(:)) %全体数的均方差即标准差b =1.01033、设x=rcost+3t,y=rsint+3,分别令r=2,3,4,画出参数t=0~10区间生成的x~y 曲线。
MATLAB程序设计期末复习题集
第1章 MATLAB系统环境一、选择题1.最初的MATLAB核心程序是采用()语言编写的。
A.FORTRAN B.C C.BASIC D.PASCAL2.2016年3月发布的MATLAB版本的编号为()。
A.MATLAB 2016Ra B.MATLAB R2016aC.MATLAB 2016Rb D.MATLAB R2016b3.下列选项中能反应MATLAB特点的是()。
A.算法最优 B.不需要写程序C.程序执行效率高 D.编程效率高4.当在命令行窗口执行命令时,如果不想立即在命令行窗口中输出结果,可以在命令后加上()。
A.冒号(:) B.逗号(,) C.分号(;) D.百分号(%)5.如果要重新执行以前输入的命令,可以使用()。
A.左移光标键(←) B.右移光标键(→)C.下移光标键(↓) D.上移光标键(↑)6.MATLAB命令行窗口中提示用户输入命令的符号是()。
A.> B.>> C.>>> D.>>>>7.plot(x,y)是一条()命令。
A.打印 B.输出 C.绘图 D.描点8.以下两个命令行的区别是()。
>> x=5,y=x+10>> x=5,y=x+10;A.第一个命令行同时显示x和y的值,第二个命令行只显示x的值B.第一个命令行同时显示x和y的值,第二个命令行只显示y的值C.第一个命令行只显示x的值,第二个命令行同时显示x和y的值D.第一个命令行只显示y的值,第二个命令行同时显示x和y的值9.下列命令行中,输出结果与其他3项不同的是()。
A.>> 10+20+... B.>> ...30 10+20+30C.>> 10+20+30%5 D.>> %10+20+3010.下列选项中,不是MATLAB帮助命令的是()。
A.lookfor B.lookfor –all C.search D.help二、填空题1.MATLAB一词来自的缩写。
matlab程序设计作业
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课程设计作业
2015年春季学期《MATLAB语言及应用》课程试卷1.请概括Matlab中冒号(:),逗号(,),分号(;)的功能?(6分)答:冒号(:):用于生成一维数组;表示一维数组的全部元素或多维数组的某一维的全部元素。
逗号(,):用于要显示计算结果的命令之间的分隔符;用于输入变量之间的分隔符;用于数组行元素之间的分隔符。
分号(;):用于不显示计算结果的命令行的结尾;作为不显示计算结果的命令之间的分隔符;作为数组元素之间的分隔符。
2.a=[1 -6 0 0.45 0 100],b=[0 1.5 4 0 0.5 -34],请问在进行逻辑运算时,a、b分别相当于什么样的逻辑量?a与b的逻辑与、逻辑或都分别是什么?(4分)答:a相当于[1 1 0 1 0 1]逻辑向量,b相当于[0 1 1 0 1 1]逻辑向量。
a与b逻辑与:[0 1 0 0 0 1],a与b逻辑或:[1 1 1 1 1 1]3.有几种建立矩阵的方法?各有什么优点?(4分)答:1)直接输入法:将矩阵的元素用方括号括起来,按矩阵行的顺序输入各元素,同一行的各元素之间用空格或逗号分隔,不同行的元素之间用分号分隔。
2)利用M文件建立矩阵:这是对于比较大的矩阵而言。
(1)启动有关编辑程序或MATLAB文本编辑器,并输入待建矩阵。
(2)把输入的内容存盘(设文件名为mymatrix.m)(3)在MATLAB命令窗口中输入mymatrix,即运行该M 文件,自动建立一个名为MY-MAT的矩阵,供以后使用。
3)建立大矩阵:大矩阵可由方括号中的小矩阵建立起来。
4)特殊矩阵建立:用相应的函数建立。
如单位矩阵,随机矩阵,范德蒙矩阵等,其对应的函数为eye,rand,vander等。
4.生成一个7阶的魔方矩阵A,再采用相应的MATLAB命令,将其全部奇数行提取出来,赋给矩阵B,给出执行语句以及计算结果。
(4分)答:执行语句为:A=magic(7);B=A(1:2:7,:)计算结果为:5.生成5阶魔方矩阵A,再分别计算A中元素的平方、A矩阵的平方,给出执行语句以及计算结果。
matlab课程设计大作业
matlab课程设计大作业一、教学目标本课程的教学目标是使学生掌握MATLAB基本语法、编程技巧以及MATLAB 在工程计算和数据分析中的应用。
通过本课程的学习,学生将能够熟练使用MATLAB进行简单数学计算、线性方程组求解、函数图像绘制等。
1.掌握MATLAB基本语法和编程结构。
2.了解MATLAB在工程计算和数据分析中的应用。
3.熟悉MATLAB的函数库和工具箱。
4.能够使用MATLAB进行简单数学计算。
5.能够使用MATLAB求解线性方程组。
6.能够使用MATLAB绘制函数图像。
7.能够利用MATLAB进行数据分析和处理。
情感态度价值观目标:1.培养学生对计算机辅助设计的兴趣和认识。
2.培养学生团队合作和自主学习的能力。
二、教学内容本课程的教学内容主要包括MATLAB基本语法、编程技巧以及MATLAB在工程计算和数据分析中的应用。
1.MATLAB基本语法:介绍MATLAB的工作环境、基本数据类型、运算符、编程结构等。
2.MATLAB编程技巧:讲解MATLAB的函数调用、脚本编写、函数文件编写等编程技巧。
3.MATLAB在工程计算中的应用:介绍MATLAB在数值计算、线性方程组求解、图像处理等方面的应用。
4.MATLAB在数据分析中的应用:讲解MATLAB在数据采集、数据分析、数据可视化等方面的应用。
三、教学方法本课程采用讲授法、案例分析法、实验法等多种教学方法相结合的方式进行教学。
1.讲授法:通过讲解MATLAB的基本语法、编程技巧以及应用案例,使学生掌握MATLAB的基本知识和技能。
2.案例分析法:通过分析实际工程案例,使学生了解MATLAB在工程计算和数据分析中的应用。
3.实验法:安排上机实验,使学生在实际操作中巩固所学知识,提高实际编程能力。
四、教学资源本课程的教学资源包括教材、实验设备、多媒体资料等。
1.教材:选用《MATLAB教程》作为主要教材,辅助以相关参考书籍。
2.实验设备:为学生提供计算机实验室,配备有MATLAB软件的计算机。
实验4答案 Matlab程序设计1
实验4 Matlab 程序设计1实验目的:1、 掌握建立和执行M 文件的方法;2、 掌握实现选择结构的方法;3、 掌握实现循环结构的方法。
实验内容:1. 从键盘输入一个4位整数,按如下规则加密后输出。
加密规则:每位数字都加上7,然后用和除以10的余数取代该数字;再把第一位与第三位交换,第二位与第四位交换。
a = input('请输入一个四位整数:');a1 = fix(a/1000);a2 = rem(fix(a/100),10);a3 = rem(rem(fix(a/10),100),10);a4 = rem(a,10);a1 = rem(a1+7,10)a2 = rem(a2+7,10)a3 = rem(a3+7,10)a4 = rem(a4+7,10)b1 = a1;a1 = a3;a3 = b1;b2 = a2;a2 = a4;a4 = b2;b = a1*1000+a2*100+a3*10+a42. 求分段函数的值。
,x x x x y x x x x x x x ⎧+- <≠-⎪=-+ ≤<≠≠⎨⎪-- ⎩2226035605231且且及其他用if 语句实现,分别输出x=-5,-3,0,1,2,2.5,3,5时的y 值。
x = input(请输入X 的值:');if x <0 & x~=-3y = x.*x +x-6;elseif x>=0 & x<5 & x~=2 & x~=3y = x.*x-5*x+6;elsey = x.*x-x-1;endy3.输入一个百分制成绩,要求输出成绩等级A、B、C、D、E,其中90~100分为A,80~89分为B,70~79分为C,60~69分为D,60分以下为E。
要求:(1)分别用if语句和swich语句实现。
(2)输入百分制成绩后要判断该成绩的合理性,对不合理的成绩应输出出错信息。
山东大学《matlab程序设计》期末作业
《Matlab 程序设计》 期末作业学院: 专业: 班级:学号: 姓名: 成绩:一 、 简答题(每题10分,共50分)1、假设有两个矩阵A 和B ,请用这两个矩阵说明Matlab 数值计算中的“左除”与“右除”有什么区别?2、脚本M 文件与函数M 文件的主要区别是什么?3、设矩阵A=[1 4 3 9;5 30 12 42;2 18 32 15],试编程找出A 中所有大于或等于5的元素,并把这些元素组成一个列向量,并计算出这些元素的总和(注意附上标注说明)4、利用Matlab 编写程序求取335lim 21x x x →∞++和120()t t dt -⎰,并对求取结果进行分子和分母的提取(注意附上标注说明)。
5、利用Matlab 编写程序求微分方程x e y y y x 2cos 52=+'-''的通解。
二、 综合题(每题20分,共40分)1、在同一张图上分别画出两组坐标)10,,2,1(),4,(),,(3222 =+i i i i i i 的散点图和折线图。
要求只能利用plot 命令进行绘制,X 坐标范围[0,105] ,Y 坐标范围[0,1450]。
2、已知学生的名字和百分制分数。
编写相应的程序要求输入所有学生的百分制分数后,一次性判断每个学生的成绩分别是“满分”、“优秀”、“良好”、“及格”还是“不及格”,并要求最后用单元数组按行分别输出每个学生的名字、分数和成绩判断结果。
学生姓名 Jack Marry Peter Rose Tom成 绩 72 83 56 94 100判断标准:满分(100),优秀(90-99),良好(80-89),及格(60-79),不及格(<60)三、 论述题(共10分)浅谈一下Fortran 、matlab 、maple 和mathematic 这四种计算语言的特点和区别。
MATLAB程序设计期末大作业
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也可以看出这一趋势。
matlab大作业例子
Matlab作业题目1:(1)程序部分:>> x=0:pi/50:2*pi;>> y=cos(0.5+((3*sin(x))./(1+x.^2))); >> plot(x,y)>> xlabel('x');>> ylabel('y');>> title('x-y');(2)运行结果截图:(1)程序部分:>> clear>> clc>> x=0:pi/100:4*pi;>> y1=sin(x);>> y2=cos(x);>> plot(x,y1,'r-',x,y2,'g:') >> hold on>> y3=x(find(abs(y1-y2)<0.001)); >> plot(y3,sin(y3),'*')(2)运行结果截图:(1)程序部分:>> t=(0:2*pi/100:2*pi)'; >> y1=sin(t)*[1,-1]; >> y2=sin(t).*sin(9*t); >> subplot(2,1,1);>> plot(t,[y1,y2]);>> subplot(2,1,2);>> plot(t,[y1,y2]) (2)运行结果截图:题目4(1)程序部分:>> t=0:pi/50:4*pi;>> y=exp(-t/3);>> y0=exp(-t/3).*sin(3*t); >> plot(t,y,'r-',t,y0,'b:') >> xlabel('\bf\it t')>> ylabel('\bf\it y')>> grid on;(2)运行结果截图:题目5(1)程序部分:>> n=0;>> sum=0;>> while sum<2000n=n+1;sum=sum+n;end>> n(2)运行结果截图:题目6(1)程序部分:for j=1:3n=input('n='); sum=0;for i=1:na=1/(i.^2);sum=sum+a;endPI=sqrt(6*sum) end(2)运行结果截图:题目7(1)程序部分:n0=0;y0=0;while 3*y0<5n0=n0+1;y0=y0+1/(2*n0-1);y=y0-1/(2*n0-1);n=n0-1;endn(2)运行结果截图:题目8(1)程序部分:for i=1:7x=input('put x:');if x<0&x~-3y=x^2+x-6;elseif x>=0&x<5&x~=3&x~=2 y=x*x-5*x+6;elsey=x*x-x-1;endend(2)运行结果截图:题目9①switch语句(1)程序部分:>> score=input('请输入成绩'); switch fix(score/10)case {9,10}disp('A');case {8}disp('B');case {7}disp('C');case {6}disp('D');case {0,5}disp('E');otherwisedisp('error');end(2)运行结果截图:如右图②if语句(1)程序部分:score=input('请输入成绩:') n=score/10;if n>=9&n<10disp Aelseif n>=8&n<9disp Belseif n>=7&n<8disp Celseif n>=6&n<7disp Delseif n>=0&n<6disp Eelsedisp errorend(2)运行结果截图:题目10(1)程序部分:t=input('员工的工作时间:')if t<60m=84*t-700;elseif t>120m=84*(t-120)*1.15+84*120;elsem=84*t;endm2)运行结果截图:题目11(1)程序部分:a=round(20*rand(5,6))n=input('请输入n的值:') tryb=a(n,:);catchb=a(5,:);endblasterr(2)运行结果截图:。
实验4___MATLAB程序设计__4学时
程序2: 程序 : 首先建立函数文件f2c.m。 首先建立函数文件 。 function c=f2c(f) c=5*(f-32)/9 然后在MATLAB的命令窗口调用该函数文件。 的命令窗口调用该函数文件。 然后在 的命令窗口调用该函数文件 clt temperature:'); : x=f2c(y) 输出情况为: 输出情况为: Input Fahrenheit temperature:70 : c= 21.1111 x= 21.1111
4.2.3 循环结构 1.for语句 . 语句 for语句的格式为: 语句的格式为: 语句的格式为 for 循环变量 表达式 表达式 表达式 循环变量=表达式 表达式2:表达式 表达式1:表达式 表达式3 循环体语句 end 其中表达式1的值为循环变量的初值 表达式2的值 的值为循环变量的初值, 其中表达式 的值为循环变量的初值,表达式 的值 为步长,表达式3的值为循环变量的终值 步长为1时 的值为循环变量的终值。 为步长,表达式 的值为循环变量的终值。步长为 时, 表达式2可以省略 可以省略。 表达式2可以省略。
2.switch语句 . 语句 switch语句根据表达式的取值不同,分别执行不同 语句根据表达式的取值不同, 语句根据表达式的取值不同 的语句,其语句格式为: 的语句,其语句格式为: switch 表达式 case 表达式 表达式1 语句组1 语句组 case 表达式 表达式2 语句组2 语句组 …… case 表达式 表达式m 语句组m 语句组 otherwise 语句组n 语句组 end
例4-8 一个三位整数各位数字的立方和等于该数本身则 称该数为水仙花数。输出全部水仙花数。 称该数为水仙花数。输出全部水仙花数。 程序如下: 程序如下: for m=100:999 m1=fix(m/100); %求m的百位数字 求 的百位数字 m2=rem(fix(m/10),10); %求m的十位数字 求 的十位数字 m3=rem(m,10); %求m的个位数字 求 的个位数字 if m==m1*m1*m1+m2*m2*m2+m3*m3*m3 disp(m) end end 输出的水仙花数为: 输出的水仙花数为:153、370、371、407 、 、 、
matlab经典编程例题30道
MATLAB是一款功能强大的数学软件,其编程功能也受到越来越多人的关注。
下面介绍的是30个matlab经典编程例题,可以帮助大家熟悉matlab的编程语法,提高matlab 编程技能。
1. 请编写一个程序,计算出两个数的和。
2. 请编写一个程序,计算出两个数的最大值和最小值。
3. 请编写一个程序,计算出一组数据的平均值和标准差。
4. 请编写一个程序,将一个矩阵转置。
5. 请编写一个程序,求出两个矩阵的乘积。
6. 请编写一个程序,求出一个矩阵的逆矩阵。
7. 请编写一个程序,求出一个矩阵的行列式。
8. 请编写一个程序,计算出一元二次方程的解。
9. 请编写一个程序,计算出两个数组的相似度。
10. 请编写一个程序,计算出一个矩阵的特征值和特征向量。
11. 请编写一个程序,求出两个矩阵的秩。
12. 请编写一个程序,求出一个矩阵的特定元素。
13. 请编写一个程序,求出一组数据的最高值和最低值。
14. 请编写一个程序,求出两个数组的交集。
15. 请编写一个程序,求出一个矩阵的行和列之和。
16. 请编写一个程序,使用循环语句计算出100以内所有奇数的和。
17. 请编写一个程序,使用循环语句计算出1到1000以内的和。
18. 请编写一个程序,使用递归函数计算出斐波那契数列的第n项。
19. 请编写一个程序,求出一个多项式的导数。
20. 请编写一个程序,求出一个函数的极值点。
21. 请编写一个程序,求出一个数组的非零元素个数。
22. 请编写一个程序,计算出函数的不定积分。
23. 请编写一个程序,计算出函数的定积分。
24. 请编写一个程序,求出一个矩阵的秩。
25. 请编写一个程序,求出函数的极限值。
26. 请编写一个程序,求出一个矩阵的特征值分解。
27. 请编写一个程序,求出一个矩阵的LU分解。
28. 请编写一个程序,求出一个矩阵的QR分解。
29. 请编写一个程序,求出三次多项式的根。
30. 请编写一个程序,求出一个函数的积分。
matlab平时作业
《MATLAB程序设计基础(jīchǔ)》平时作业(zuòyè)说明(shuōmíng):1-17题为必做题,须分别(fēnbié)提交纸质文档及与纸质文档对应的电子文档.doc版。
1.对于每输入的一个百分制成绩,要求输出对应的成绩等级(děngjí)A、B、C、D、E。
其中A的分值在区间[90,100)内;B的分值在区间[80,90)内;C的分值在区间[70,80)内;D的分值在区间[60,70)内;E的分值在区间[0,60)内;要求:1)要有对输入成绩是否合理的判断:①输入成绩如果含有小数,只能是“x.5”的形式,其实x为合理的整数。
②成绩必须在百分制范围内。
③如果输入的成绩不合理,应向命令窗口输出报错信息“输入的成绩不合理”2)用if语句实现题目要求x=input('输入一个数值:'); %输入if mod(x,0.5)==0&&x>=0&&x<100; %mod(x,0.5)表示x除以0.5的余数,用以判断成绩含小数是否为x.5if x<0&x>=100 %不合理成绩disp('输入的成绩不合理')elseif x<100&x>=90%成绩[90 100)disp('成绩等级为:A')elseif x<90&x>=80 %成绩[80 90)disp('成绩等级为:B')elseif x<80&x>=70%成绩[70 80)disp('成绩等级为:C')elseif x<70&x>=60%成绩[60 70)disp('成绩等级为:D')elsedisp('成绩等级为:E')%成绩[0 60)endelsedisp('输入的成绩不合理')end运行结果:输入一个数值:57成绩等级为:E输入一个数值:93.3输入的成绩不合理3)用switch语句实现题目要求x=input('请输入一个成绩:'); %输入if mod(x,0.5)==0&&x>=0&&x<100 %mod(x,0.5)表示x除以0.5的余数,用以判断成绩含小数是否为x.5switch floor(x/10) %x除以10向下取整case 9disp('成绩(chéngjì)等级为:A');case 8disp('成绩(chéngjì)等级为:B');case 7disp('成绩(chéngjì)等级为:C');case 6disp('成绩(chéngjì)等级为:D');case {5,4,3,2,1,0}disp('成绩(chéngjì)等级为:E');otherwisedisp('输入的成绩不合理');endelsedisp('输入的成绩不合理');end运行结果:请输入一个成绩:0成绩等级为:E请输入一个成绩:120输入的成绩不合理请输入一个成绩:95.5成绩等级为:A2. 设计程序,完成[10,99]之间两位整数的加、减、乘、除四则运算。
matlab程序设计例题及答案
1.编写程序:计算1/3+2/5+3/7+……+10/21法一:s=0;for i=1:10s=s+i/(2*i+1);endss =4.4096法二:sum((1:10)./(3:2:21))ans =4.40962.编写程序:计算1~100中即能被3整除,又能被7整除的所有数之和。
s=0;for i=1:100if mod(i,3)==0&&mod(i,7)==0s=s+i;end,endss =2103.画出y=n!的图(1<=n<=10),阶乘的函数自己编写,禁用MATLAB自带的阶乘函数。
x=1:10;for i=1:10try y(i)=y(i-1)*i;catch y(i)=1;end,endplot(x,y)123456789100.511.522.533.5464.一个数恰好等于它的因子之和,这个数就称为完数。
例如,6的因子为1,2,3,而6=1+2+3,因此6就是一个完数。
编程找出2000以内的所有完数。
g=[];for n=2:2000 s=0;for r=1:n-1if mod(n,r)==0 s=s+r; end endif s==ng=[g n]; end end gg =6 28 4965.编写一个函数,模拟numel函数的功能,函数中调用size函数。
function y=numelnumel(x)m=size(x);y=m(1)*m(2);numelnumel([1 2 3;4 5 6])ans =66. 编写一个函数,模拟length函数的功能,函数中调用size函数。
function y=lengthlength(x)m=size(x);y=max(m(1),m(2));lengthlength([1 2 3;4 5 6])ans =37.求矩阵rand(5)的所有元素和及各行平均值,各列平均值。
s=rand(5);sum=sum(sum(s))mean2=mean(s,2)mean1=mean(s)sum =13.8469mean2 =0.55830.55360.65540.49310.5090mean1 =0.6331 0.5006 0.6487 0.7124 0.27458.编程判断1001,1003,1007,1009,1011是否为素数,若不是,输出其约数。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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代码和运行结果。
代码如下:
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(x,y);
title('原始数据');
p=polyfit(x,y,1);
q=polyval(p,x);
figure,plot(x,q);
title('一次拟合');
p=polyfit(x,y,2);
q=polyval(p,x);
figure,plot(x,q);
title('二次拟合');
运行结果如下:
1
2
3
4
5
6
7
8
9
10
12
3
4
5
6
7
8
原始数据
123
456789
102
2.5
3
3.54
4.5
55.56
6.57一次拟合
123456789
101
2
3
4
5
6
7
二次拟合
2、在[0,3π]区间,绘制y=sin(x)曲线(要求消去负半波,即(π,2π)区间内的函数值置零),求出曲线y 的平均值,以及y 的最大值及其最大值的位置。
给出执行代码和运行结果。
代码如下: clear clc
x=(0:0.01:3*pi); y=sin(x); plot(x,y); y1=(y>=0).*y; figure,plot(x,y1);
p=mean(y1); [max_p,n]=max(y1); disp('均值:'); disp(p); disp('最大值:'); disp(max_p); disp('最大值位置:'); disp(n);
运行结果如下:
1
2
3
4
5
6
7
8
9
10
-1-0.8-0.6-0.4-0.200.20.40.60.810
1
2
3
4
5
6
7
8
9
10
00.10.20.30.40.50.60.70.80.91
3、给出函数z=x^2+y^2的三维曲面的绘制结果和MATLAB 代码
clear clc
t=[-5:0.1:5];
[x,y]=meshgrid(t); z=x.^2+y.^2; mesh(x,y,z);
-5
5
-5
5
010203040
50
4、将一幅彩色图像文件转换为灰度图像,存储并显示转换后的灰度图像,给出运行结果和执行代码。
x=imread('C:\Users\dell\Desktop\扫描材料1\张仲瑾照片.jpg'); figure(1); imshow(x); x=rgb2gray(x); figure(2); imshow(x); h=figure(2);
saveas(h,'gray.jpg');
保存的图像
5、结合自身研究方向,自拟一题目,采用MATLAB语言实现一具有完整功能的算法,给出运行结果和执行代码。
题目:增量式PID控制算法仿真
clear all
clc
ts=0.001;
sys=tf(50,[0.125,7, 0]); %传递函数
dsys=c2d(sys,ts,'z'); %离散化
[num,den]=tfdata(dsys,'v'); %获得分子分母矩阵
u_1=0.0;u_2=0.0;
y_1=0.0;y_2=0.0;
x=[0,0,0]';
error_1=0;
error_2=0;
for k=1:1:1000
time(k)=k*ts;
S=1;
if S==1
kp=5;ki=0.2;kd=6.5;
% kp=10;ki=0.1;kd=15;
rin(k)=1; %Step Signal elseif S==2
kp=10;ki=0.1;kd=15; %Sine Signal
rin(k)=0.5*sin(2*pi*k*ts);
end
du(k)=kp*x(1)+kd*x(2)+ki*x(3); %PID Controller
u(k)=u_1+du(k);
%Restricting the output of controller
if u(k)>=5
u(k)=5;
end
if u(k)<=-5
u(k)=-5;
end
%Linear model
yout(k)=-den(2)*y_1-den(3)*y_2+num(2)*u_1+num(3)*u_2;
error(k)=rin(k)-yout(k);
%Return of parameters
u_2=u_1;u_1=u(k);
y_2=y_1;y_1=yout(k);
x(1)=error(k)-error_1; %Calculating P
x(2)=error(k)-2*error_1+error_2; %Calculating D
x(3)=error(k); %Calculating I
error_2=error_1; error_1=error(k); end figure(1);
plot(time,rin,'b',time,yout,'r'); xlabel('time(s)'),ylabel('rin,yout'); figure(2); plot(time,error,'r')
xlabel('time(s)');ylabel('error');
0.1
0.2
0.3
0.4
0.50.6
0.7
0.8
0.9
1
0.20.40.60.81
1.21.41.6time(s)
r i n ,y o u t
00.10.20.30.4
0.50.60.70.80.91
-0.6
-0.4-0.200.20.4
0.60.81time(s)
e r r o r
输入输出图波形 增量值波形。