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矩阵的平方,给出执行语句以及计算结果。
- 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
输入输出图波形 增量值波形。