1. 程式人生 > >演算法第二彈-線性規劃之投資的收益和風險分析及程式碼實現

演算法第二彈-線性規劃之投資的收益和風險分析及程式碼實現

嘻嘻,當你看到這篇文章的時候,是的,我又更新啦!初學小白的我對於如宇宙黑洞般一樣神祕的演算法,分享給大家一些小小的感受,第二彈!

演算法和數學息息相關,巧妙的邏輯往往建立在數學上,今天結合線性規劃,談談投資中收益與風險等因素的相互關係,為決策者在實際生活中提供參考依據,以及用Matlab實現的方法。學以致用,所以這是一篇實用貼!大笑

題目:


----------------------------------------------------------------------分割線---------------------------------------------------------------------

以下是數學建模過程:

一.符號說明


二.基本假設


三.模型的分析與建立


四.模型簡化



五.模型一的求解


六.結果分析


-------------------------------------------------至此模型的分析就告一段落啦,嘻嘻------------------------------------------------------

單純形法是求解線性規劃問題最常用最有效的演算法之一,此處介紹一種好用的工具,將將-Matlab(可用於演算法開發、資料視覺化、資料分析以及數值計算,此外,還能建立使用者介面以及呼叫其他語言(包括C\C++\Fortran)編寫的程式

Matlab解法:

//編寫M檔案;將M檔案存檔,並命名為xxx.m;在Matlab指令窗執行xxx即可得所求結果
clc,clear
a=0;
hold on                                  //實現新的plot命令產生的圖形畫在原來的圖形上
while a<0.05
    c=[-0.05,-0.27,-0.19,-0.185,-0.185]         //規範化max->min
    A=[zeros(4,1),diag([0.025,0.015,0.055,0.026])];
    b=a*ones(4,1);
    Aeq=[1,1.01,1.02,1.045,1.065];          //等式約束條件的係數
    beq=1;                             //等式約束條件右邊
    LB=zeros(5,1);                       //變數允許的最低取值
    [x,Q]=linprog(c,A,b,Aeq,beq,LB);        //線性規劃函式
    Q=-Q;                             //求得最大收益
    plot(a,Q,’*r’);                       //Matlab中繪製二維曲線,其中’*r’表示線型點為加號,顏色為紅色(具體可查“matlab中plot函式全部功能”)
    a=a+0.001;                        //以進行迴圈搜尋
end
xlabel(‘a’),ylabel(‘Q’)                    //標註
 “山河平靜遼闊,無一點貪嗔痴愛,而我們匆匆忙忙,都還在路上”---《路上書》

文藝的say goodbye~~~再見偷笑

下期見❥(^_-)