武文佳
摘要:文章以作者所講授的《MATLAB基礎(chǔ)與應(yīng)用》通識(shí)課程為基礎(chǔ),探討了MATLAB在優(yōu)化問題、信號(hào)處理及經(jīng)濟(jì)金融等領(lǐng)域中的應(yīng)用,根據(jù)不同專業(yè)背景的學(xué)生,對(duì)本課程開展分組案例教學(xué)探索,以提高學(xué)生對(duì)MATLAB的應(yīng)用能力。
關(guān)鍵詞:《MATLAB基礎(chǔ)與應(yīng)用》;優(yōu)化問題;信號(hào)處理;金融領(lǐng)域
中圖分類號(hào):G642.0? ? ?文獻(xiàn)標(biāo)志碼:A? ? ?文章編號(hào):1674-9324(2020)10-0270-02
一、引言
MATLAB是在自然科學(xué)領(lǐng)域內(nèi)廣泛應(yīng)用的工程計(jì)算軟件,能夠掌握MATLAB的基本應(yīng)用是大學(xué)生需要掌握的基本技能。在筆者所在院校,《MATLAB基礎(chǔ)與應(yīng)用》作為通識(shí)選修課,每學(xué)期在全校學(xué)生范圍內(nèi)開設(shè),受到學(xué)生的普遍歡迎。MATLAB功能強(qiáng)大,命令與數(shù)學(xué)中的符號(hào)和公式非常接近,可讀性強(qiáng),容易掌握。MATLAB根據(jù)專門領(lǐng)域的需要而設(shè)計(jì)了各種工具箱,可以解決多個(gè)學(xué)科領(lǐng)域的問題。為了更好地讓學(xué)生掌握MATLAB在專業(yè)中的應(yīng)用,筆者根據(jù)不同專業(yè)背景的學(xué)生開展了案例教學(xué)法,讓學(xué)生按照專業(yè)分組進(jìn)行案例學(xué)習(xí)。本文對(duì)MATLAB在不同專業(yè)領(lǐng)域的應(yīng)用案例進(jìn)行了研究。
二、MATLAB在優(yōu)化問題中的應(yīng)用
在自然科學(xué)和實(shí)際應(yīng)用領(lǐng)域中,經(jīng)常遇到優(yōu)化問題的最優(yōu)化方法就是研究如何從多個(gè)方案中合理的選取最優(yōu)方案。如在庫存管理問題中,經(jīng)常需要在保證銷量的前提下使庫存成本最小,在運(yùn)送物資時(shí)設(shè)計(jì)運(yùn)輸線路使得運(yùn)費(fèi)最少,等等,使得最優(yōu)化問題的應(yīng)用和研究深入自然科學(xué)的各個(gè)領(lǐng)域。MATLAB提供了優(yōu)化工具箱,可以求解線性規(guī)劃、非線性規(guī)劃和多目標(biāo)規(guī)劃等問題。下面對(duì)MATLAB用于非線性規(guī)劃給出一個(gè)案例。
案例1:設(shè)某人有200萬資金,要求3年內(nèi)用完。若每年使用資金x(萬元),可得收益(萬元),若當(dāng)年不用的資金可存入銀行,年利率為8%。制訂資金的使用計(jì)劃,使得3年收益總和最大。
求解:此問題為非線性規(guī)劃問題,用MATLAB解決非線性規(guī)劃問題的步驟是先定義目標(biāo)函數(shù)和約束條件,設(shè)置優(yōu)化參數(shù),最后調(diào)用優(yōu)化工具箱求解,MATLAB求解非線性規(guī)劃問題的函數(shù)是fmincon。
解決方案:先定義目標(biāo)函數(shù),設(shè)自變量為x,i=1,2,3,表示第i年使用的資金,則因變量y=++,題目所述問題則化為自變量x,i=1,2,3取何值時(shí),目標(biāo)函數(shù)y最大的問題,由于目標(biāo)函數(shù)為非線性函數(shù),因此屬于優(yōu)化問題中的非線性規(guī)劃,其次研究約束條件,本題的約束條件為:(1)x≤200;(2)1.08x+x≤216;(3)1.1664x+1.08x+x≤233.28;(4)x≥0,i=1,2,3。
用MATLAB求解本題過程如下:
step1:定義目標(biāo)函數(shù)function myfun=youhua(x)
myfun=-(sqrt(x(1))+sqrt(x(2))+sqrt(x(3)))
step2:主程序:youhuawenti.m
x0=[1;1;1];
A=[1 0 0;1.08 1 0;1.1664 1.08 1];
B=[200;216;233.28]
[x,fval]=fmincon(@youhua,x0,A,B)
程序運(yùn)行結(jié)果如下:
x=
61.6067
71.8581
83.8152
fval=
-25.4810
結(jié)果表明用MATLAB可以很容易解決上述優(yōu)化問題,第一年使用資金61.6067萬元,第二年71.8581萬元,第三年83.8152萬元時(shí)效益之和最大,最大效益為25.481萬元。
在授課中向?qū)W生講解MATLAB在優(yōu)化問題中的應(yīng)用,可以讓學(xué)生認(rèn)識(shí)到MATLAB在實(shí)際生活中的應(yīng)用,以提高學(xué)生學(xué)習(xí)的積極性以及分析解決問題的能力,這對(duì)學(xué)生專業(yè)課的學(xué)習(xí)和創(chuàng)新極其重要。
三、MATLAB在信號(hào)處理中的應(yīng)用
信號(hào)處理是很多工科專業(yè)必學(xué)的專業(yè)基礎(chǔ)課,MATLAB在數(shù)字信號(hào)處理中也有廣泛的應(yīng)用。數(shù)字信號(hào)處理把實(shí)際問題中的信號(hào)用符號(hào)表示成序列,通過信號(hào)處理設(shè)備,用數(shù)字?jǐn)?shù)值計(jì)算方法處理,提取有用信息用于實(shí)際應(yīng)用中。數(shù)字信號(hào)處理在圖像處理、通信工程、網(wǎng)絡(luò)工程等領(lǐng)域內(nèi)都有廣泛的應(yīng)用。MATLAB提供了信號(hào)處理的工具箱,包括信號(hào)處理工具箱、小波分析工具箱、通信工具箱等,可以滿足學(xué)生在實(shí)際專業(yè)課中的需求。信號(hào)處理工具箱提供了信號(hào)處理的基本函數(shù),如square、sawtooth、tripuls、gauspuls等函數(shù),也提供了信號(hào)變換函數(shù)和濾波器的設(shè)計(jì)函數(shù),如fft、dct、FIR、IIR等,可以方便地解決信號(hào)變換和濾波器的設(shè)計(jì)分析等問題。下面給出一個(gè)實(shí)例:
案例2:模擬信號(hào)x(t)=2sin(3πt)-sin(6πt),求其幅度譜和相位譜。
求解:問題2是典型的信號(hào)處理問題。首先對(duì)模擬信號(hào)進(jìn)行抽樣,然后將離散時(shí)間信號(hào)截為有限長序列,利用快速傅里葉變換fft函數(shù)得到頻域值,則可獲得其幅度譜和相位譜。程序和圖像如下。
ff=100;N=128;n=0:N-1;
xn=2*sin(3*pi*n/ff)-sin(6*pi*n/ff);xk=fft(xn,N);
f=(0:N-1)*fs/N;xfupin=abs(xk);xxiangpin=angle(xk);
subplot(2,1,1);plot(f,xfupin);title('幅頻相應(yīng)')
subplot(2,1,2);plot(f,xxiangpin);title('相頻相應(yīng)')
從圖像中可以看出信號(hào)中存在1.5HZ和3Hz兩個(gè)頻率。
MATLAB在數(shù)字信號(hào)處理中還有很多其他應(yīng)用,通過案例教學(xué)引發(fā)學(xué)生的學(xué)習(xí)興趣,學(xué)生可將MATLAB應(yīng)用在專業(yè)中,達(dá)到學(xué)以致用、解決問題的目的。
四、MATLAB在經(jīng)濟(jì)和金融領(lǐng)域中的應(yīng)用
MATLAB在經(jīng)濟(jì)和金融方面提供的工具箱包括經(jīng)濟(jì)工具箱、金融工具箱、固定收益工具箱等,全面提供了財(cái)務(wù)分析、投資組合、商品評(píng)價(jià)、風(fēng)險(xiǎn)管理以及經(jīng)濟(jì)模型建立的工具。其中經(jīng)濟(jì)工具箱提供了經(jīng)濟(jì)審計(jì)數(shù)學(xué)建模的函數(shù),金融工具箱提供了財(cái)務(wù)分析等方向的函數(shù),固定收益工具箱提供了經(jīng)濟(jì)證券固定收益建模分析的函數(shù)等。在授課中面向經(jīng)管學(xué)院經(jīng)濟(jì)與金融專業(yè)的學(xué)生講解相應(yīng)工具箱是極其必要的,也是學(xué)生在實(shí)際學(xué)習(xí)和工作中迫切需求的。下面舉一個(gè)實(shí)際應(yīng)用中的簡單實(shí)例。
案例3:設(shè)投資者有兩種資產(chǎn),總價(jià)值2億元,資產(chǎn)權(quán)重為35%和65%,資產(chǎn)的日波動(dòng)均值為0.003和0.005,標(biāo)準(zhǔn)差為0.03和0.01,兩種資產(chǎn)的相關(guān)系數(shù)為0.7,置信度為0.98,求該資產(chǎn)在30天的投資組合風(fēng)險(xiǎn)值。
求解:本問題為一個(gè)典型的金融問題,可以利用金融工具箱中計(jì)算投資組合風(fēng)險(xiǎn)值函數(shù)portvrisk來求解。在授課時(shí),可以先讓學(xué)生通過MATLAB強(qiáng)大的幫助功能分組自學(xué),通過help portvrisk首先自學(xué)此函數(shù),然后教師講解本函數(shù)的調(diào)用方式,其調(diào)用格式為:ValueAtRisk=portvrisk(PortReturn,PortRisk,RiskThreshold,PortValue)將問題中的數(shù)值作為上述函數(shù)的輸入?yún)?shù),簡單計(jì)算可得該資產(chǎn)的投資組合風(fēng)險(xiǎn)值為0.123億元。
五、總結(jié)
本文根據(jù)筆者所在學(xué)校應(yīng)用型本科院校的培養(yǎng)目標(biāo)和學(xué)生的實(shí)際情況,從《MATLAB基礎(chǔ)與應(yīng)用》課程的案例教學(xué)內(nèi)容上進(jìn)行了探討。對(duì)于本課程開展案例教學(xué),可以增強(qiáng)學(xué)生對(duì)MATLAB的應(yīng)用能力,提高學(xué)生對(duì)本課程的學(xué)習(xí)興趣,并會(huì)將所學(xué)內(nèi)容運(yùn)用到自身專業(yè)中和后續(xù)的工作中。
參考文獻(xiàn):
[1]蔡旭暉,劉衛(wèi)國,蔡立燕.MATLAB基礎(chǔ)與應(yīng)用教程[M].北京:人民郵電出版社,2016.
[2]張志涌,楊祖櫻,等.MATLAB教程[M].北京:北京航空航天大學(xué)出版社,2015.
[3]卓金武,魏永生,秦健,李必文.MATLAB在數(shù)學(xué)建模中的應(yīng)用[M].北京:北京航空航天大學(xué)出版社,2011.