matlab 训练题目.docx
《matlab 训练题目.docx》由会员分享,可在线阅读,更多相关《matlab 训练题目.docx(12页珍藏版)》请在冰豆网上搜索。
matlab训练题目
过程系统研究室训练资料
2010.9.27
内容:
1.矩阵和数组的基本操作
2.简单M文件程序设计
3.拟合与规划
3.1线性拟合
3.2非线性拟合
3.3单目标规划(线性、非线性)
3.4多目标规划(线性、非线性)
4.方程(组)求解
4.1线性方程(组)的求解
4.2非线性方程(组)的求解
5.简单图形用户界面(GUI)设计
5.1知识点
5.2实例训练
6.GUI进阶
6.1知识点
6.2实例训练
7.大型系统编程
1.矩阵和数组的基本操作
用MATLAB产生2个矩阵A和B,其中A为4*4的魔方矩阵,B为4*4随机均匀分布的矩阵,对A和B做以下操作:
(1)求A*B,A+B,A/B,A.*B的值。
(2)分别找出A和B元素中最大的值及其对应的位置(以A(i,j)形式表示)。
[rows,cols]=find(max(max(a)))
[m,ind]=max(a(:
))[i,j]=ind2sub(size(a),ind)★
(3)对A中的所有元素进行升序排列,并重新生成4*4的矩阵C。
b=sort(a(:
)),c=reshape(b,4,4)
(4)删除A的最后一列得矩阵D和B的第一行得矩阵E。
a(:
4)=[]…b(1,:
)=[]
(5)将A和B连接起来,生成一个4*8的矩阵F和一个8*4的矩阵Gc=[ab],,d=[a;b]
2.简单的M文件程序设计
(1)编写M文件,用for循环求100以内的素数。
(2)编写M文件,求1000以内的所有完数。
(如6=1+2+3)
(3)编写M文件,求100—1000之间的水仙花数。
(如4^3+0^3+7^3=407)
(4)编写M文件,用while循环计算
的值。
(即求
)
(5)编写M文件,用switch语句实现百分制成绩的等级输出,90分以上为‘A’,80~90分为‘B’,70~79分为‘C’,60~69分为‘D’,60分以下为‘E’。
3.拟合与规划
3.1线性拟合(单变量、多变量)
(1)已知变量x与函数y满足关系lny=ax+lnb,且已知下列样本数据,求a,b的值。
xi=[1.001.251.501.752.00];
yi=[5.105.796.537.458.46];
(2)已知变量x1,x2与函数y满足关系y=a0+a1x1+a2x2,已得到下列样本数据,求常数a0,a1,a2并计算出abs(y计算-y实际)。
x1=[0.61.51.82.43.03.3]T
x2=[0.30.91.22.73.34.2]T
y=[0.510.780.840.690.810.72]T
3.2非线性拟合(单变量、多变量)
(1)拟合的函数形式是y=A*x2+B*x,且A>0,B>0。
其中:
x=[110.3323148.7328178.064202.8258033224.7105244.5711262.908280.0447296.204311.5475];
y=[5101520253035404550];
(2)需要拟合的函数y=(a4*x1*x2*x3-a5*x4)*x5/(1(a0*x1)^0.5a1*x2a2*x3a3*x4)^2
其中:
x1=[0.03274,0.03274,0.03274,0.03556,0.03556,0.03556,0.03556,0.0388,0.0388,0.0388,0.02963,0.02963,0.02963,0.02963,0.03852,0.03852,0.03852,0.0237,0.0237,0.0237,0.04741,0.04741,0.04741,0.04741,0.05333,0.05333,0.05333,0.05333,0.03556,0.03556,0.03556,0.03556,0.03556,0.03556,0.03556]';
x2=[0.05686,0.05686,0.05686,0.05912,0.05912,0.05912,0.05912,0.06128,0.06128,0.06128,0.04926,0.04926,0.04926,0.04926,0.06404,0.06404,0.06404,0.07882,0.07882,0.07882,0.03941,0.03941,0.03941,0.03941,0.02956,0.02956,0.02956,0.02956,0.05912,0.05912,0.05912,0.05912,0.05912,0.05912,0.05912]';
x3=[3.32,2.986,2.831,3.169,2.602,2.133,1.708,2.526,2.012,1.684,3.164,2.668,2.26,1.878,2.611,2.002,1.65,2.637,2.249,1.981,2.64,2.036,1.697,1.504,2.839,2.372,1.99,1.819,3.137,2.58,2.128,2.76,2.307,1.97,1.677]';
x4=[0.134,0.576,0.777,0.702,1.16,1.771,2.225,1.176,1.772,2.096,0.492,0.977,1.453,2.058,1.106,1.86,2.276,0.984,1.527,1.917,0.899,1.699,2.07,2.342,0.866,1.228,1.702,1.887,0.424,1.098,1.708,0.78,1.424,1.939,2.097]';
x5=[0.00119,0.00119,0.00119,0.00119,0.00119,0.00119,0.00119,0.00119,0.00119,0.00119,0.00119,0.00119,0.00119,0.00119,0.00119,0.00119,0.00119,4.02E-4,4.02E-4,4.02E-4,4.02E-4,4.02E-4,4.02E-4,4.02E-4,4.02E-4,4.02E-4,4.02E-4,4.02E-4,9.56E-5,9.56E-5,9.56E-5,3.06E-4,3.06E-4,3.06E-4,3.06E-4]';
y=[5.35692,5.25725,5.148,6.12633,5.96017,5.7608,5.47321,6.5989,6.0658,5.6165,6.0301,5.93721,5.80241,5.76895,6.23535,5.99836,5.12932,6.8791,6.69513,6.46914,7.54958,7.316,7.01067,6.56897,7.16209,6.92098,6.60262,6.13282,8.79241,8.63444,8.44674,7.2556,7.14569,7.0219,6.88093]';
3.3单目标规划(线性、非线性)
(1)max-5x1+6x2+7x3
s.t.5x1-6x2+10x3<=20
x1+x2+x3=5
x1+5x2-3x3>=15
x1,x2,x3>=0
(2)min-x1+10x1^2+10x2^2
s.t.x1^2+x2^2-1=0
3.4多目标规划(线性、非线性)
(1)目标函数:
minf1(x)=2x1+5x2
minf2(x)=4x1+x2
约束条件:
x1<=5
X2<=6
X1+x2>=7
X1,x2>=0
(2)min(1/2)*(5x1^2+6x1x2+5x2^2)-95x1-105x2
minx1^2+x2^2
s.t.x1+x2<=10
3x1+x2<=15
2x1+3x2<=30
-15x1+13x2<=0
x1>=0,x2>=0
4.方程(组)求解
4.1线性方程(组)的求解
求解下列方程组
4.2非线性方程(组)的求解
求解下列方程组
6编程序实现如下的功能
F=[10;20;30;40;50];
P1=[5;10;15;30;20];
P2=[5;10;15;10;30];
F—原产品
P1,p2表示经过后续操作所要得到的产品
S1---表示分离器,该分离器的功能从第一个位点分离。
比如F经过s1后产生两种产品[10;0;0;0;0];[0;20;30;40;50]
同理还有s2和s3,s4两种分离器可供选择
(1)s1,s2,s3,s4分离器总共可以产生多种产品,将所产生的全部产品放在a矩阵中
(2)在a矩阵中寻找一组,组成新的矩阵,该组合能够通过线性组合的方式产生产品p1和p2,并且产生p1和p2的线性组合系数都必须是正数
并且将线性组合的系数放在b矩阵中
5.简单图形用户界面(GUI)设计
5.1知识点
①二维图形
Plot命令:
线型和标记、加格线和标记、加图例、定制图形坐标轴、图形的保持、多图形窗口、屏幕的刷新、缩放
②句柄图形、图像对象、块对象、轴对象、图形对象。
③控件制作,包含下列控件:
pushbutton,togglebutton,radiobutton,checkbox,listbox,popupmenu,slider,edit,text,panel,回调函数,对话框与请求以及控件的一些属性(如enable,visible等)
④导入图像(JPG格式)到GUI界面
5.2实例训练
(1)设计一个GUI界面,实现由两个命令按钮(pushbutton)来控制坐标轴(axes)中曲线的类型(正弦或余弦),点击其中标有“sin(x)”的按钮时,绘制正弦图像,点击标有“cos(x)”的按钮时,绘制余弦图像。
①在上述基础上,添加两个编辑文本框(edittext),通过人工输入数值的方式,分别控制x、y轴的坐标范围。
②在①的基础上,添加两个单选按钮(radiobutton),控制网格线的出现。
③在②的基础上,添加三个按钮组(buttongroup),分别实现当前图形窗口内曲线的颜色、宽度以及线型的变化。
(2)设计一个GUI界面,实现由控件listbox来控制坐标轴(axes)中曲线的类型,点击第一个时出现正弦图像,点击第二个显示余弦图像,第三个显示正切图像,第四个显示余切图像。
①在上述基础上,添加两个控件(slider),分别控制x、y轴的坐标范围。
②在①的基础上,添加两个单选按钮(checkbox),控制网格线的出现。
(3)设计一个GUI界面,实现在输入编辑框中输入一串字符,将其中大写转化成小写,小写转化成大写,然后将结果显示在输出编辑框;若为数字字符则输出其对应的数值,若为其他字符则原样输出。
(以下图片仅作参考)
6.GUI进阶
6.1知识点
①从EXCEL导入导出数据
②从数据库Access导入数据到MATLAB
③将MATLAB程序编译成可执行文件
④串口读写数据
6.2实例训练
①设计一个GUI,实现以下功能:
从某个excel文件中读取到数据(对话框的形式),对数据作相应处理(自己模拟数据和处理方法),将处理结果显示在该界面上,并将结果写入另外一个excel文件中(对话框的形式)。
也可以考虑从数据库(access)中读取数据。
②设计一个科学计算器,实现其计算功能并能动态显示系统时间。
(以下图片仅作参考)
③为②中的科学计算器设计一个密码系统,输入正确的密码确定后,点关闭,进入待进去的系统;点修改密码,可以对密码进行修改。
输入错误的密码提示密码错误。
(以下图片作为参考)
④建立一个学生成绩查询系统,要求如下:
数据库(access)中储存学生成绩的相关信息,包括学生姓名、学号和各科成绩。
加入两个listbox,第一个显示姓名或者学号,第二个显示其中一个学生的成绩。
以下图片作为参考:
⑤编写一个时钟的程序,并将其编译成可执行程序。
以下图片作为参考。
7.大型系统编程(多个功能模块集成)
(1)离心泵机组操作优化系统
数据输入模块,特性曲线拟合模块,优化计算模块,数据输出模块
(2)锅炉蒸汽优化操作系统
数据输入模块,锅炉效率曲线拟合模块,优化计算模块,数据输出模块
1,编写下列矩阵
现有一注水管网(如图所示),图中有6个节点,7个管元。
管网中每根管元相应的首端节点和末端节点用序号(j,k)表示,所以,管网的连接结构可以用一个结构矩阵来表示。
图中管网的连接结构矩阵为:
B=[1124423;2332356]'(注意转置)。
系数K的值为:
K=[0.25880.20120.60180.31120.33500.25240.4637]。
试编写一个总体特征矩阵A,满足:
(1)将系数K叠加到总体特征矩阵A的(j,j)和(k,k)的位置上;
(2)将系数-K叠加到(j,k)和(k,j)的位置上。
考虑所有单元,形成A6×6矩阵。
矩阵编写完成后具有如下特点:
(1)如果两个任意节点j和k,它们之间互不联系,则他们对(j,k)、(k,j)都不做贡献,即贡献为零。
矩阵A仅当管网中所有节点都连接在一起时才是满阵。
事实上,对于注水管网,矩阵A是稀疏矩阵。
(2)无论何时只要对位置(j,k)上的系数有贡献,同时对它的对称位置(k,j)也做贡献,所以矩阵A是对称矩阵。
(3)主对角线元素都为正,非主对角线元素皆为负,且主对角线元素等于该行非主对角线元素绝对值之和。
(4)如果对矩阵A实施初等变换,就会发现,我们总能使矩阵任意一行元素都为零,也就是说,对于n×n的矩阵A,它的秩为n-1。
因为|A|=0,故A为奇异矩阵。
2.求解非满秩方程组
根据以编写出来的矩阵,求解下列方程组:
Ap=C
其中,
A——特征矩阵
P——各个节点的压力值
C——各个节点的输入流量。
C=[0.0506-0.0487-0.04320.400-0.0362-0.0815]
因为矩阵A的秩为5,所以它没有特定的解,需要给定一个压力点作为参考点才能解这个方程组。
现给定第一个节点的压力,p1=56.
试编写一程序,求出各节点的压力值。
WebAccess实际应用练习
软件准备:
(1)WindowsXP(SP3)withIE6.0or7.0
(2)IIS5.1
(3)AdvantechWebAccess演示版
(4)modsim32(模拟modbus软件)
(5)MicrosoftSQLServer2000个人版
1.在电脑上(a)先安装IIS5.1,(b)再安装WebAccess,(c)然后安装modsim32,建立一个基于虚拟modbus的工程,绘制一个仪表盘和一个可手动控制的流量计。
(参考资料:
IIS安装方法上网查,其他参考《手把手教你WebAccess32-网络组态》)
2.
(1)使用WebAccess创建数字点”DI0"和"DI1"的实时趋势和历史趋势
(参考资料:
《AdvantechWebAccess培训-07第七章趋势》)
(2)使用WebAccess创建数字点"DI0"和"DI1"的的日报表和月报表
(参考资料:
《AdvantechWebAccess培训-11第十一章报表》)
3.
(1)把计算机名改为自己的名字拼音(必须大写,不然无法安装),重启,在电脑上安装SQLServer2000个人版,将WebAccess的默认数据库更改为bwdata的SQL数据库。
(参考资料:
(a)《WebAccess新版教材》第九章,(b)文档《SQL设置说明》)
(2)使用SQLServer的“企业管理器”将名为bwdata的备份文件恢复至bwdata数据库,并用Matlab读取这个数据库的前100条数据。
(参考资料:
上网查资料)