2019-第12章MATLAB的学科应用-PPT课件-文档资料_图文

第12章 MATLAB的学科应用

MATLAB工具箱大致可分为两类:
?功能性工具箱: 主要用来扩充MATLAB的符号计算功能、 图形建模仿真功能、文字处理功能以及与硬件的实时交互功 能,能用于多种学科。
?学科性工具箱: 涵盖了控制系统设计与分析、数字信号处 理、数字图像处理、金融财务分析、生物遗传过程等许多专 业领域,可以利用这些工具箱进行相关领域的科学研究,解 决相关领域的实际问题。
【本章学习目标】
● 综合运用所学MATLAB程序设计知识,学会针对具体 的问题,选择合适的解题方案,灵活掌握利用MATLAB解决 实际问题的方法。
● 了解MATLAB中几个典型的学科工具箱。
● 熟悉MATLAB在相关学科领域的应用案例。

12.1 MATLAB在优化问题中的应用
最优化方法就是专门研究如何从多个方案中科学合理地提取 出最佳方案的科学。 12.1.1 优化模型与优化工具 1.优化模型 优化模型是用数学关系式表示的研究对象的某种本质特征, 它有如下3个要素。 ● 决策变量:问题中要确定的未知量,用以表示优化方 案。 ● 目标函数:表示所待决策问题期望达到的目标,它是 决策变量的函数。 ● 约束条件:指决策变量取值时受到的各种资源条件的 限制,通常用含决策变量的等式或不等式表示。

2.优化函数
表 12.1 函数 fgo alat t ain fminbnd fmincon fminimax fminsearch fminunc fseminf linprog qua dprog fzero lsql in lsqc urvefit lsqnonlin lsqnonneg

优化工具 箱中的 常用函 数 描述
多目标达 到问题 有约束的 一元函 数最小 值求解 多变量有 约束非 线形函 数极小 值 最大最小 化 采用 Nelder-Mead 简单搜寻法求多变量无约束函数极小值 采用基于 梯度算 法求多 变量无 约束函 数极小 值 半无限问 题 求解线性 规划问 题 求解二次 规划问 题 标量非线 性方程 求解 有约束的 线性最 小二乘 优化 非线性曲 线拟合 非线性最 小二乘 优化 非负线性 最小二 乘优化

3.优化工具图形用户界面
使用优化工具图形用户界面,可以通过鼠标操作选择优化参 数和运行优化。在MATLAB的命令窗口输入“optimtool”命令 可以打开优化工具图形用户界面

12.1.2 应用实例
利用MATLAB的优化工具箱,可以求解线性规划、非线性规 划和多目标规划问题。使用优化工具箱,先要定义目标函数 和约束条件,然后设置优化参数(如算法),最后调用优化 工具求解。
1.一元函数最小值问题
fminbnd函数用于求解有约束的一元函数最小值问题,其调 用格式为
[x,fval] = fminbnd(fun,x1,x2,options)
其中,fval为目标函数的最小值,fun为目标函数,解的约束 为x1≤x≤x2。

【例12.1】对边长为3m的正方形铁板,在4个角剪去相等的正方形以制 成方形无盖水槽,问如何剪法使水槽的容积最大? 设剪去的正方形的边长为x,则水槽的容积为(3 ? 2x)2x。fminbnd函数用 于求最小值,因此将求解水槽最大容积转换为
min y = ? (3 ? 2x)2x,0 < x < 1.5
在MATLAB命令窗口输入命令:
[x,fval]=fminbnd((x)-(3-2*x)^2*x,0,1.5); 求解得到:
x=
0.5000
fval =
?2.0000 即剪掉的正方形的边长为0.5m时,水槽的容积最大,最大容积为2m3。 此题也可使用优化工具的GUI来求解。

2.线性规划

研究 线 性约 束 条件 下 线性 目 标函 数 的极 值 问题 的数 学 理论 和 方法 , 用线 性 规划 求 解的 典 型

问题 有 运输 问 题、 生 产计 划 问题 、配 套 生产 问 题、 下 料和 配 料问 题 等。 线 性规 划 问题 的 标准 形

式为

min

f (x)

s.t. A x ≤ b

x? Rn

Aeq x ? beq

lb ≤ x ≤ ub 求解线性规划问题使用函数 linprog,其调用格式为

[x, fval] = linprog(f, A, b, Aeq, beq, lb, ub) 其中,x 是最优解,fval 是目标函数的最优值。函数中的各项参数是线性规划问题标准形式中的对

应项,x、b、beq、lb、ub 是向量,A、Aeq 为矩阵,f 为目标函数。

【例12.2】生产计划问题。某企业在计划期内计划生产甲、乙、丙3种产 品。这些产品分别需要在设备A、B上加工,需要消耗材料C、D,按工 艺资料规定,单件产品在不同设备上加工及所需要的资源如表12.2所示。 已知在计划期内设备的加工能力各为200台时,可供材料分别为360kg、 300kg;每生产一件甲、乙、丙3种产品,企业可获得利润分别为40、30、 50元,假定市场需求无限制。企业决策者应如何安排生产计划,使企业 在计划期内总的利润收入最大?

设在计划期内生产这3种产品的产 量为x1、x2、x3,用Z表示利润, 则有Z = 40x1 + 30x2 + 50x3。在 安排3种产品的计划时,不得超过 设备A、B的可用工时,材料消耗 总量不得超过材料C、D的供应量, 生产的产量不能小于零。企业的目
标是要使利润达到最大,这个问题 的数学模型为

m ax Z ? 40 x1 ? 30 x2 ? 50 x3

?3 x1 ? 3 x2 ? 2 x3 ≤ 2 0 0

? ?? ?

2 4

x1 x1

? ?

2 5

x2 x2

? ?

4 x3 ≤ x3 ≤ 3

20 60

0

? ?

2

x

1

?

3 x2

?

5 x3



300

?? x 1 ≥ 0 , x 2 ≥ , x 3 ≥ 0

优化函数 linprog 是求极小值,因此目标函数转换为:minZ = ? 40x1 ? 30x2 ? 50x3。

3.非线性规划 求解非线性规划问题的函数是fmincon,其调用格式为
[x, fval] = fmincon(f, x0, A, b, Aeq, beq, lb, ub)
其中,x0是初值,其余参数含义与linprog函数的相同。 【例12.3】设有400万元资金,要求4年内使用完,若在一年 内使用资金x万元,则可得效益万元(效益不能再使用), 当年不用的资金可存入银行,年利率为10%。试制定出资金 的使用计划,以使4年效益之和为最大。 设变量xi表示第i年所使用的资金数,则有

m ax z ? x1 ? x2 ? x3 ? x4

? x1 ≤ 400

????11

. .

1 2

x1 ? 1 x1

x2 ?1

≤ .1x

44 2?

0 x

3



484

??1.331x1 ? 1.21x2 ? 1.1 x3 ? x4 ≤ 532.4

?? xi ≥ 0, i ? 1, 2, 3, 4

(1)定义目标函数 function f=xymb(x) f=-(sqrt(x(1))+sqrt(x(2))+sqrt(x(3))+sqrt(x(4))); (2)主程序youh3.m为 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)

12.2 MATLAB在控制系统中的应用
控制系统的分析工具包括控制系统工具箱(Control System Toolbox)、 系统辨识工具箱(System Identification Toolbox)、模糊逻辑工具箱 (Fuzzy Logic Toolbox)、鲁棒控制工具箱(Robust Control Toolbox)、模型预测控制工具箱(Model Predictive Control Toolbox)、 线性矩阵不等式工具箱(LMI Control Toolbox)等。
12.2.1 控制系统工具箱
控制系统工具箱包含了丰富的线性系统分析和设计函数,并以LTI对象为 基本数据类型对线性时不变系统进行操作与控制。控制系统工具箱能够 完成系统的时域和频域分析。
1.系统分析
控制系统的分析包括系统的时域分析、频域分析、稳定性分析及根轨迹 分析。命令行方式调用各种函数完成模型分析。
2.系统设计
控制系统工具箱支持4种线性模型表述方式:传递函数模型、零极点增益 模型、状态空间模型和频域响应数据模型。每一种模型形式都有相应的 LTI对象的表达。除了模型数据以外,LTI对象还可以存储离散系统的采 样时间、时间延迟、输入输出名称、模型注释等。

控制系统工具箱提供了GUI和命令行两种方式进行控制系统 的设计。命令行方式调用各种函数建立系统模型

表 12.3 函数名
tf ss zpk t fdat a ssdat a zpkdat a

MA TLAB 常用模型转换函数

函数功能

函数名

建立传递 函数模 型

series

建立状态 方程模 型

parallel

建立零极 点增益 模型

feedback

获取传递 函数模 型参数

set

获取状态 方程模 型参数

get

获取零极 点增益 模型参 数

函数功能 模型串联 模型并联 反馈连接
设置 LT I 对象属性 获取 LT I 对象属性

SISO(Single-Input Single-Output)设计器是控制系统工具箱所提供的 线性系统设计器,它为用户设计单输入单输出线性控制系统提供了非常 友好的图形界面。在SISO设计器中,用户可以同时使用根轨迹图与波 特图,通过修改线性系统零点、极点以及增益等传统设计方法进行 SISO线性系统设计。在MATLAB命令窗口中输入sisotool命令启动SISO 设计器。
使用控制系统工具箱中的函数还可以进行各种系统的补偿设计,如LQG (线性二次型设计)、Root Locus(线性系统的根轨迹设计)、Pole placement(线性系统的极点配置)、Observer-based regulator(线性 系统观测器设计)等

12.2.2 应用实例

【例 12.4】图 12.2 所示为一典型线性反馈控制系统的结构图。

已知 G1(s)

?

2s2 ? 5s ?1 s2 ? 2s ? 3



G2

(s)

?

s(s ? 2) s ?10

。试利用

MATLA B

控制系统工具箱求出负反馈结

构的时域响应曲线。

G1 = tf([2 5 1],[1 2 3]);

G2 = zpk([0 -2],-10,1);

Cloop = feedback(G1, G2); %构造闭环系统的传递函数

step(Cloop);

%求系统的阶跃响应

hold on;

impulse(Cloop, 'r-.'); %求系统的冲激响应

legend('Step','Impulse','--','r-.');

【例12.5】在图12.6所示的控制系统中,Gc(s)是一比例环节。 试利用MATLAB控制系统工具箱求取系统临界稳定的开环增 益值K。
(1)建立系统模型,然后启动SISO设计器。在MATLAB命令窗口 输入以下命令: Gp=tf(1,[1 7 10 0]); sisotool SISO设计器通过零极点配置、根轨迹分析、系统波特图分析等传统 的方法对线性系统进行设计。 (2)导入系统数据。 (3)求临界稳定增益。

12.3 MATLAB在信号处理中的应用
12.3.1 信号处理工具箱与Simulink模块集
在MATLAB中,与信号处理有关的组件包括信号处理工具箱 (Signal Processing Toolbox)、神经网络工具箱(Neural Network Toolbox)、小波分析工具箱(Wavelet Toolbox)、 统计工具箱(Statistics Toolbox)、通信工具箱 (Communications Toolbox)、图像处理工具箱(Image Processing Toolbox)等以及Simulink中的各种信号处理模 块。
1.信号处理工具箱
信号处理工具箱是一个信号处理的工业级标准算法集合,利 用它可以完成数字或模拟系统中常规的信号处理任务。例如, 信号生成、信号重采样、各种积分变换、模拟/数字滤波器的 设计和分析、频谱分析、随机信号分析、参数模型分析、线 性预测等。

信号处理工具箱提供的函数包括以下几类。
(1)产生基本信号的函数。例如,方波函数square、锯齿 波函数sawtooth、矩形脉冲函数tectpuls、三角脉冲函数 tripuls、高斯调制正弦波脉冲函数gauspuls、扫频余弦信号 函数chrip等。这些基本信号是信号处理的基础。
(2)信号变换函数。例如,快速傅立叶变换函数fft、离散余 弦变换函数dct、Hilbert变换函数hilbert和Chrip Z变换函数 czt等。
(3)数字滤波器的设计函数。提供了一套完整的有限冲激 响应(FIR)和无限冲激响应(IIR)方法,这些方法支持低 通、高通、带通、带阻和多频带滤波器的设计与分析。
(4)随机信号的分析函数。随机信号的分析包括信号的相 关性分析和功率谱估计。

FDATool(Filter Design and Analysis)是设计常规滤波器的图形用户界 面,它涵盖了信号处理工具箱中所有的滤波器设计方法,利用它可以分 别设计出满足新年指标的滤波器,并可查看该滤波器的各种分析图形。 在MATLAB命令窗口输入fdatool命令打开FDATool界面。
SPTool(Signal Processing Tool)是一个信号处理的GUI集成环境,提 供对信号、滤波器和频谱分析函数的访问入口。在MATLAB命令窗口输 入“sptool”命令,打开SPTool图形用户界面。利用SPTool可以从 MATLAB工作空间或从文件中导入已经设计好的信号和滤波器频谱进行 时域和频域分析,还可以用于设计滤波器和实现对信号的滤波,以及对 随机信号进行谱分析。
2.Simulink模块集
Simulink的信号处理模块集(Signal Processing Blockset)也提供了一 系列信号处理模块,允许用户在不进行底层编程的情况下设计和仿真实 时系统。信号处理模块约定以列向量表示单通道信号,在多通道情况下, 每一列代表一个通道,每一行对应一个采样点。

12.3.2 应用实例
【例12.6】采用海明窗函数设计一个95阶的线性相位带通滤波器,其技 术指标要求为:采样频率1 000Hz,通带下限截止频率为70Hz,通带上 限截止频率为84Hz设计。 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 );

【例12.7】已知信号x(t) = sin(2?f1t) + 2sin(2?f2t) + w(t),f1 = 50Hz, f2 = 120Hz,W(t)为标准差是0.1的白噪声,采样频率为1 000Hz,信号 长度为1 024。使用周期图法求信号的功率谱。 周期图法是将信号的采样数据进行Fourier变换求取功率谱密度估计的方 法。利用MATLAB信号处理工具箱中已经定义的周期图法函数,编写如 下程序:
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);%绘制功率谱
Pxx=periodogram(x,[],'twosided',N,fs); Pow=(fs/length(Pxx))*sum(Pxx); %计算平均功率

12.4 MATLAB在数字图像处理中的应用
图像处理工具包括图像处理工具箱(Image Processing Toolbox)、图像获取工具箱(Image Acquisition Toolbox)、 地理信息处理工具箱(Mapping Toolbox)、信号处理工具 箱、统计工具箱等,提供图像数据采集、图像处理和分析的 工具。
12.4.1 图像处理工具箱
MATLAB图像处理工具箱支持4种图像类型,分别为真彩色 图像、索引色图像、灰度图像和二值图像
1.常用图像操作函数
常用的图像操作函数包括读取图像的函数imread、输出图像 的函数imwrite、在屏幕上显示图像的函数imshow image等, 对图像进行裁剪可用imcrop函数,图像的插值缩放可用 imresize函数实现,旋转用imrotate函数实现。

2.图像增强功能
图像增强采用一系列技术去改善图像的视觉效果或将图像转换成一种更 适合于人眼观察和机器自动分析的形式。常用的图像增强方法有以下几 种。
(1)灰度直方图均衡化。histeq函数
(2)灰度变换法。imadjust函数
(3)平滑与锐化滤波。用fspecial函数创建预定义的滤波算子,然后用 filter2或conv2函数在实现卷积运算的基础上进行滤波。
3.边缘检测和图像分割功能
MATLAB工具箱提供的edge函数可针对sobel算子、prewitt 算子、 Roberts算子、log算子和canny 算子实现检测边缘的功能。
4.图像变换功能
图像处理工具箱提供了图像变换函数,如fft2与ifft2函数分别实现二维快 速傅立叶变换与逆变换,dct2与idct2函数实现二维离散余弦变换与逆变 换,wavedec2和waverec2函数分别实现二维多尺度小波变换与逆变换。
5.图像获取

12.4.2 应用实例 【例12.8】显示两幅图像在空域和频域融合后的效果。

图12.16 原图像

图12.17 融合图像

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 subplot(1,3,1);image((X1+X2)/2); %在空域内直接融合 title('直接相加融合') F1=fft2(X1);F2=fft2(X2);
XR1=uint8(abs(ifft2(F1+F2)/2)); subplot(1,3,2);image(XR1); %显示经过FFT变换融合后的图像 title('傅立叶变换融合') %分别对两幅原图像进行小波分解 [C1,L1]=wavedec2(X1,2, 'sym4');
[C2,L2]=wavedec2(X2,2, 'sym4'); C=C1+C2; %对分解系数进行融合 XR2=waverec2(C,L1,'sym4'); %对融合后的信号进行图像重构 subplot(1,3,3) image(uint8(XR2/2)); %显示经过小波变换融合后的图像 title('小波变换融合')

12.5 MATLAB在经济和金融领域中的应用
经济和金融方面的建模和分析工具提供财务数据分析、 投资组合最佳化、商品评价、风险管理、敏感度分析,以及 经济模型建立与预测的工具。
12.5.1 经济和金融领域的工具箱 ? 经济工具箱 ? 金融工具箱 ? 固定收益工具箱 ? 统计工具箱 ? 财务数据来源工具箱 ? 神经网络工具箱 ? 优化工具箱

12.5.2 应用实例 【例12.9】假设投资者有两种总资产,总价值为1亿元,资 产权重分别为30%与70%,资产的日波动率均值分别为 0.002和0.004,标准差为0.03和0.01。这两种资产的相关系 数为0.8,给定置信度为0.99,求该资产在30天的投资组合 风险值。
w = [ 0.3, 0.4 ]; 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);
程序执行后,得到Var = 0.0 924。由此即可求出该资产的投 资组合风险值为0.0 924亿元。

【例12.10】某商店为了确定向公司A或公司B购买某种产品,将A、B公 司以往各次进货的次品率进行比较,数据如表12.4所示,设两样本独立。 问两公司商品的质量有无显著差异。设两公司的商品的次品密度最多只 差一个平移,取α= 0.05。
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.8282
h=
0 运行结果表明两样本总体均值相等的概率为0.8 282,并不很接近于零, 且h = 0说明可以接受原假设,即认为两个公司的商品的质量无明显差异。


相关文档

2019-Matlab课件第4章 MATLAB文件操作-PPT精选文档-文档资料
2019年-MATLAB语言及其应用课件CH03 matlab程序设计-PPT课件-PPT精选文档
2019-三章MATLAB程序设计ppt课件-文档资料
2019-matlab课件第八章 Matlab在自动控制中的应用-PPT课件-文档资料
2019-matlab7教程课件第4章字符串-PPT文档资料-文档资料
2019-Matlab程序设计基础第四讲 MATLAB程序设计-PPT课件-文档资料
2019-Matlab课件第7章 MATLAB解方程与函数极值-PPT课件-文档资料
2019-Matlab课件第11章 MATLAB图形用户界面设计-PPT精选文档-文档资料
2019年-matlab7教程课件第7章程序设计-文档资料-PPT精选文档
2019-matlab在数字信号处理中的应用第2版课件第三章-文档资料
电脑版