日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

非线性规划问题求解(举例)

發布時間:2023/12/8 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 非线性规划问题求解(举例) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.概述

非線性規劃是一種求解目標函數或約束條件中有一個或幾個非線性函數的最優化問題的方法。運籌學的一個重要分支。20世紀50年代初,庫哈(H.W.Kuhn) 和托克 (A.W.Tucker) 提出了非線性規劃的基本定理,為非線性規劃奠定了理論基礎。這一方法在工業、交通運輸、經濟管理和軍事等方面有廣泛的應用,特別是在“最優設計”方面,它提供了數學基礎和計算方法,因此有重要的實用價值。

簡單來說,若規劃問題的目標函數或約束條件中包含非線性函數,則稱為非線性規劃。

2.模型

本文主要采用matlab進行非線性規劃的求解,lingo的求解以后會專門出一個教程。

下面是Matlab中非線性規劃的標準形式:

其中,大部分參數同線性規劃;‘fun’為目標函數;VLB、VUB為邊界約束;A、b、Aeq、beq為線性約束,其中A、b為不等式約束,Aeq、beq為等式約束;‘nonlcon’為非線性約束;x0是初始值,也就是迭代的起點;options是算法中相關的設置,一般可以先用默認的求解,然后根據matlab的提示再調整。

3.舉例求解

????????小龍蝦因體型比其他淡水蝦類大,肉也相對較多,及肉質鮮美之原因,而被制成多種料理,都受到了普遍的歡迎。《中國小龍蝦產業發展報告(2021)》中指出,2021年我國小龍蝦產業繼續保持較快發展,養殖面積和養殖產量再創新高,據測算, 2021年我國小龍蝦養殖總產量將達208.96萬噸,小龍蝦產業總產值達4110億元,其中,小龍蝦養殖業產值約710億元。

????????現在請運用數學知識來研究一下小龍蝦養殖的相關問題。小龍蝦在一個繁殖周期內,龍蝦數量以斐波那契數列增長,1,2,3,5,8,13,21,34,55,89...這個數列的前后項之比越來越趨近于黃金分割0.618,換而言之,這個數量增長的速度幾乎是以為底數的指數增長列。

????????假設某種龍蝦分四個年齡組,分別為一歲到四歲。各年齡組龍蝦的平均重量分別為5.17、11.58、17.66、22.98(g),各年齡組龍蝦的自然死亡率為0.79(/年),且龍蝦為季節性繁殖,平均每只四歲蝦的產卵量為?(個),三歲蝦的產卵量為這個數的一半,兩歲蝦和一歲蝦不產卵,產卵和孵化期為每年的最后4個月,卵孵化并成活為一歲蝦,其成活率(一歲蝦條數與產卵總量 之比)為 。龍蝦養殖場每年只在產卵孵化期前的8個月內進行捕撈作業.如果每年捕撈強度固定不變,這時單位時間捕撈量與各年齡組蝦群條數成正比,比例系數稱捕撈強度系數.通常只捕撈三歲蝦和四歲蝦,其兩個捕撈強度系數之比為0.42:1。

現假設有一荒廢的池塘中龍蝦數量隨時間變化如表1所示

表1? 某荒廢的池塘中龍蝦數量隨時間變化表

請你和你的團隊嘗試解決以下問題:

問題1為了滿足龍蝦養殖場的長期運營,需要實現每年開始捕撈時養殖場中各年齡蝦的數量基本保持不變。請建立數學模型分析如何在此前提下得到最高的年收獲量(捕獲龍蝦總重量)。

問題2若某龍蝦養殖場計劃養殖這種龍蝦,要求5年后蝦群的生產能力不能受到太大破壞。已知承包時各年齡組蝦群的數量分別為:125、31.7、9.7、3.09( 只),如果采用相同的捕撈強度,該養殖場應采取怎樣的策略才能使總收獲量最高。

以問題1為例說明如何分析非線性規劃以及利用MATLAB求解非線性規劃問題

由題易知其為最優化問題,故須確立目標函數,約束條件進行優化求解。

目標函數:收獲的蝦的總重量最大

約束條件

第j+1年y+1歲蝦的數量n(j+1)(y+1) =第j年y歲蝦的數量njy *(1-0.79)(存活率)

(j=1,2……;y=1,2)

第j+1年4歲蝦的數量n(j+1)4 =第j年3歲蝦的數量nj3 *(1-0.79)(存活率)-第j年3歲蝦的捕撈量bj3

(n=1,2……)

第j+1年1歲蝦的數量n(j+1)1 =(第j年4歲蝦的數量nj4 -第j年4歲蝦的捕撈量b4)*4歲蝦的產卵量 +(第j年3歲蝦的數量nj3 -第j年3歲蝦的捕撈量b3)*3歲蝦的產卵量(四歲蝦的一半)

蝦的捕撈量和其數量有關。

(b3/n3)/(b4/n4)=0.42

各個年齡段的蝦的數量基本保持不變(k=5%)

njy*(1-k)≤nj+1y≤njy*(1+k)

(j+1年y歲蝦的數量處于j年y歲蝦的數量*百分比(1k))范圍內

捕撈量小于龍蝦數量:b3<n13,b4<n14;

蝦的數量為整數:njy(j=1,2;y=1,2,3,4),

捕撈量為整數:b3,b4

第一年各年齡蝦的數量:1226,308,99,41;

第二年各年齡蝦的數量:1273,293,100,39。

前后兩年蝦的數量波動在5%以內

捕獲的3歲蝦29只,4歲蝦28只

收獲29*17.66+28*22.98=1155.6克

代碼實現

%非線性規劃main.m p=0.79;%死亡率 k=0.05;%與前一年相比,今年各個年齡段蝦的數量的波動系數 %% 線性不等式約束 A=[1-k,0,0,0,-1,0,0,0,0,0;-1-k,0,0,0,1,0,0,0,0,0;0,1-k,0,0,0,-1,0,0,0,0;0,-1-k,0,0,0,1,0,0,0,0;0,0,1-k,0,0,0,-1,0,0,0;0,0,-1-k,0,0,0,1,0,0,0;0,0,0,1-k,0,0,0,-1,0,0;0,0,0,-1-k,0,0,0,1,0,0;0,0,-1,0,0,0,0,0,1,0;0,0,0,-1,0,0,0,0,0,1;]; b=[0;0;0;0;0;0;0;0;0;0]; %% 線性等式約束 Aeq=[1-p,0,0,0,0,-1,0,0,0,0;0,1-p,0,0,0,0,-1,0,0,0;0,0,1-p,0,0,0,0,-1,-1,0]; beq=[0;0;0]; lb=[0;0;0;0;0;0;0;0;0;0]; ub=[]; x0=[1000,1000,1000,1000,1000,1000,1000,1000,210,500]; %% 求解 [x,fval,exitflag] = fmincon('fmin',x0,A,b,Aeq,beq,lb,ub,'fcontr'); %% 目標函數fmin.m function f = fmin(t) b3=t(9);b4=t(10); f=-(b3*17.66+b4*22.98); end %% 非線性fcontr.m function [c d] = fcontr(t) n13=t(3);n14=t(4);n21=t(5);%各類蝦的數量 b3=t(9);b4=t(10);%捕撈量 l4 = 1.108*10^5; %產卵量 l3 = 0.5*l4; p34=1.21*10^11/(1.21*10^11+(n13-b3)*l3+(n14-b4)*l4);%卵的成活率 d1 = ((n13-b3-8/12*n13*0.79)*l3+(n14-b4-8/12*n14*0.79)*l4)*p34-n21; %假設平均每月蝦的死亡數量為每年的死亡數量/12,到了9月份開始產卵 d2 = b3/b4-n13/n14*0.42; d=[d1;d2];%非線性等式約束 c=[]; end

總結

以上是生活随笔為你收集整理的非线性规划问题求解(举例)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。