1、第13章MATLAB的学科应用【本章学习目标】综合运用所学MATLAB程序设计知识,学会针对具体的问题,选择合适的解题方案,灵活掌握利用MATLAB解决实际问题的方法。了解MATLAB中几个典型的学科工具箱。熟悉MATLAB在相关学科领域的应用案例。13.1 MATLAB在优化问题中的应用1 1优化模型优化模型优化模型是用数学关系式表示的研究对象的某种本质特征,它有如下3个要素。决策变量:问题中要确定的未知量,用以表示优化方案。目标函数:表示所待决策问题期望达到的目标,它是决策变量的函数。约束条件:指决策变量取值时受到的各种资源条件的限制,通常用含决策变量的等式或不等式表示。13.1.1 优化
2、模型与优化工具13.1 MATLAB在优化问题中的应用2 2优化优化函数函数13.1.1 优化模型与优化工具13.1 MATLAB在优化问题中的应用1 1一元函数最小值问题一元函数最小值问题fminbnd函数用于求解有约束的一元函数最小值问题,调用格式为x,fval=fminbnd(fun,x1,x2,options)fval为目标函数的最小值,fun为目标函数,解的约束为x1xx2。13.1.2 应用实例13.1 MATLAB在优化问题中的应用【例13.1】对边长为3m的正方形铁板,在4个角剪去相等的正方形以制成方形无盖水槽,问如何剪法使水槽的容积最大?求解水槽最大容积的模型min y=(3
3、 2x)2x,0 x x,fval=fminbnd(x)-(3-2*x)2*x,0,1.5)执行命令,结果如下:x=0.5000fval=2.000013.1 MATLAB在优化问题中的应用2 2线性规划线性规划线性规划问题的标准形式为求解线性规划问题使用函数linprog,调用格式为x,fval=linprog(f,A,b,Aeq,beq,lb,ub)其中,x是最优解,fval是目标函数的最优值。函数中的各项参数是线性规划问题标准形式中的对应项,f为目标函数。13.1.2 应用实例13.1 MATLAB在优化问题中的应用【例13.2】生产计划问题。某企业在计划期内计划生产甲、乙、丙3种产品。
4、这些产品分别需要在设备A、B上加工,需要消耗材料C、D,按工艺资料规定,单件产品在不同设备上加工及所需要的资源如表13.2所示。已知在计划期内设备的加工能力各为200台时,可供材料分别为360kg、300kg;每生产一件甲、乙、丙3种产品,企业可获得利润分别为40、30、50元,假定市场需求无限制。企业决策者应如何安排生产计划,使企业在计划期内总的利润收入最大?13.1 MATLAB在优化问题中的应用【例13.2】生产计划问题。目标函数为:minZ=40 x1 30 x2 50 x3。命令如下:f=-40;-30;-50;A=3 1 2;2 2 4;4 5 1;2 3 5;b=200;200;
5、360;300;x,fval=linprog(f,A,b)执行命令,结果如下:Optimal solution found.x=50.0000 30.0000 10.0000fval=-3.4000e+0313.1 MATLAB在优化问题中的应用3 3非线性规划非线性规划求解非线性规划问题的函数是fmincon,其调用格式为x,fval=fmincon(f,x0,A,b,Aeq,beq,lb,ub)其中,x0是初值,其余参数含义与linprog函数的相同。13.1.2 应用实例13.1 MATLAB在优化问题中的应用【例13.3】设有400万元资金,要求4年内使用完,若在一年内使用资金x万元,
6、则可得效益 万元(效益不能再使用),当年不用的资金可存入银行,年利率为10%。试制定出资金的使用计划,以使4年效益之和为最大。设变量xi表示第i年所使用的资金数,则有(1)定义目标函数。function f=xymb(x)f=-(sqrt(x(1)+sqrt(x(2)+sqrt(x(3)+sqrt(x(4);(2)求解 x0=1;1;1;1;A=1 0 0 0;1.1 1 0 0;1.21 1.1 1 0;1.331 1.21 1.1 1;b=400;440;484;532.4;x,fval=fmincon(xymb,x0,A,b)13.2 MATLAB在控制系统中的应用1 1系统分析系统分析
7、控制系统的分析包括系统的时域分析、频域分析、稳定性分析及根轨迹分析等。2系统设计13.2.1 控制系统工具箱模型构建和转换函数13.2 MATLAB在控制系统中的应用1 1常用函数常用函数MATLAB控制系统工具箱中提供的LTI仿真函数用于系统设计。【例13.4】图示为一典型线性反馈控制系统的结构图。已知 ,。试利用MATLAB控制系统工具箱求出负反馈结构的时域响应曲线。G1=tf(2 5 1,1 2 3);G2=zpk(0-2,-10,1);Cloop=feedback(G1,G2);%构造闭环系统的传递函数step(Cloop);%求系统的阶跃响应hold on;impulse(Cloop
8、,r-.);%求系统的冲激响应legend(Step,Impulse);13.2.2 应用实例13.2 MATLAB在控制系统中的应用2 2Linear System AnalyzerLinear System AnalyzerMATLAB提供了具有图形用户界面的线性系统分析工具Linear System Analyzer,用于观测和比较时域、频域响应,探究关键响应参数,例如上升时间、最大超调和稳定裕度等。打开Linear System Analyzer,在MATLAB命令行窗口输入命令:linearSystemAnalyzer或在MATLAB桌面,选“应用”选项卡,从APP列表中选“Line
9、ar System Analyzer”。13.2.2 应用实例13.2 MATLAB在控制系统中的应用3 3Control System DesignerControl System Designer可以通过零极点配置、根轨迹分析、系统波特图分析等传统的方法对线性系统进行设计。打开Control System Designer,在命令行窗口输入命令:controlSystemDesigner或在MATLAB桌面,从APP列表中选“Control System Designer”13.2.2 应用实例13.2 MATLAB在控制系统中的应用 Edit Architecture Configura
10、tion窗口13.2 MATLAB在控制系统中的应用【例例13.513.5】在在图示图示的控制系统中,的控制系统中,GcGc(s)(s)是一比例环节。试利用是一比例环节。试利用M MATLABATLAB的控制系统设计器(的控制系统设计器(Control System DesignerControl System Designer)求取系统)求取系统临界稳定的开环增益值临界稳定的开环增益值K K。(1)建立系统模型。(2)导入数据。(3)求临界稳定增益。在Root Locus Editor面板中,红色的方块表示闭环系统的极点。13.3 MATLAB在信号处理中的应用MATLAB中,与信号处理有关
11、的组件包括信号处理工具箱(Signal Processing Toolbox)、神经网络工具箱(Neural Network Toolbox)、小波分析工具箱(Wavelet Toolbox)、统计工具箱(Statistics Toolbox)、通信工具箱(Communications Toolbox)、图像处理工具箱(Image Processing Toolbox)等以及Simulink中的各种信号处理模块。13.3.1 信号处理工具箱与Simulink模块集13.3 MATLAB在信号处理中的应用【例13.6】采用海明窗函数设计一个95阶的线性相位带通滤波器,其技术指标要求为:采样频率1
12、 000Hz,通带下限截止频率为70Hz,通带上限截止频率为84Hz设计。利用MATLAB信号处理工具箱中的滤波器设计函数,设计滤波器。程序如下:n=95;fc1=70;fc2=84;fs=1000;w1=2*pi*fc1/fs;w2=2*pi*fc2/fs;window=hamming(n+1);h=fir1(n,w1/pi w2/pi,window);freqz(h,1,512);13.3.2 应用实例13.3 MATLAB在信号处理中的应用MATLAB提供了具有图形用户界面的滤波器设计工具Filter Designer app。在MATLAB命令行窗口输入命令:filterDesigne
13、r或在MATLAB桌面切换到APP选项卡,从APP列表中选Filter Designer。13.3.2 应用实例13.3 MATLAB在信号处理中的应用【例13.7】已知信号x(t)=sin(2f1t)+2sin(2f2t)+w(t),f1=50Hz,f2=120Hz,W(t)为标准差是0.1的白噪声,采样频率为1000Hz,信号长度为1024。使用周期图法求信号的功率谱。f=50;120;A=1 2;fs=1000;N=1024;n=0:N-1;t=n/fs;%生成带噪声的信号x=A*sin(2*pi*f*t)+0.1*randn(1,N);%绘制功率谱periodogram(x,N,fs)
14、;Pxx=periodogram(x,twosided,N,fs);%计算平均功率Pow=(fs/length(Pxx)*sum(Pxx);13.3 MATLAB在信号处理中的应用谱估计也可用数字信号分析工具Signal Analyzer实现。在命令窗口输入命令:signalAnalyzer或在MATLAB桌面切换到APP选项卡,从APP列表中选Signal Analyzer启动信号分析器。13.4 MATLAB在数字图像处理中的应用MATLAB图像处理工具箱支持4种图像类型,分别为真彩色图像、索引色图图像、灰度图像和二值图像,由于有的函数对图像类型有限制,这4种类型可以用工具箱的类型转换函数
15、相互转换。MATLAB可操作的图像文件包括BMP、HDF、JPEG、PCX、TIFF、XWD等格式。13.4.1 图像处理工具箱13.4 MATLAB在数字图像处理中的应用【例13.8】显示两幅图像在空域和频域融合后的效果。因为要做矩阵的算术运算,要求两幅图同样大小。X1=imread(Pic_1.jpg);X2=imread(Pic_2.jpg);subplot(1,2,1);image(X1);title(图像1)subplot(1,2,2);image(X2);title(图像2)Figure;XR1=X1/2+X2/2;subplot(1,3,1);image(XR1);%在空域内直接
16、融合title(直接相加融合);F1=fft2(X1);F2=fft2(X2);XR2=uint8(abs(ifft2(F1+F2)/2);subplot(1,3,2);image(XR2);%显示经过FFT变换融合后的图像title(傅立叶变换融合)%分别对两幅原图像进行小波分解C1,L1=wavedec2(X1,2,sym4);C2,L2=wavedec2(X2,2,sym4);C=C1+C2;%对分解系数进行融合XR3=waverec2(C,L1,sym4);%对融合后的信号进行图像重构subplot(1,3,3);image(uint8(XR3/2);%显示经过小波变换融合后的图像ti
17、tle(小波变换融合)13.4.2 应用实例13.5 MATLAB在经济和金融领域中的应用Econometrics ToolboxFinancial ToolboxFixed Income ToolboxStatistic ToolboxDatafeed Toolbox13.5.1 经济和金融领域的工具箱13.5 MATLAB在经济和金融领域中的应用【例13.9】假设投资者有两种资产,总价值为1亿元,资产权重分别为30%与70%,资产的日波动率均值分别为0.002和0.004,标准差为0.03和0.01。这两种资产的相关系数为0.8,给定置信度为0.99,求总资产在30天的投资组合风险值。计算
18、投资组合风险值函数portvrisk,调用方式为Var=portvrisk(PortReturn,PortRisk,RiskThreshold,PortValue)参数PortReturn为总资产的回报,PortRisk为总资产的标准差,RiskThreshold为概率阈值,默认值为0.05,PortValue为资产的总价值,输出参数Var为在概率阈值下的投资组合风险值。13.5.2 应用实例13.5 MATLAB在经济和金融领域中的应用【例13.9】假设投资者有两种资产,总价值为1亿元,资产权重分别为30%与70%,资产的日波动率均值分别为0.002和0.004,标准差为0.03和0.01。
19、这两种资产的相关系数为0.8,给定置信度为0.99,求总资产在30天的投资组合风险值。13.5.2 应用实例w=0.3,0.7;ret=0.002,0.004;d=0.03,0.01;cov=1,0.8;0.8,1;time=30;pret=time*dot(w,ret);%计算总收益sd=w.*d;pd=sqrt(sd*cov*sd*time);%计算总资产的标准差Var=portvrisk(pret,pd,0.01,1);13.5 MATLAB在经济和金融领域中的应用【例13.1013.10】某商店为了确定向公司A或公司B购买某种产品,将A、B公司以往各次进货的次品率进行比较,数据如表13.4所示,设两样本独立。问两公司商品的质量有无显著差异。13.5.2 应用实例 a=7.0,3.5,9.6,8.1,6.2,5.1,10.4,4.0,2.0,10.5;b=5.7,3.2,4.2,11.0,9.7,6.9,3.6,4.8,5.6,8.4,10.1,5.5,12.3;p,h=ranksum(a,b)p=0.8282h=logical 0