【数学建模】—优秀论文(一)
2015年國賽A題
題目 太陽影子定位
? 如何確定視頻的拍攝地點和拍攝日期是視頻數據分析的重要方面,太陽影子定位技術就是通過分析視頻中物體的太陽影子變化,確定視頻拍攝的地點和日期的一種方法。
建立影子長度變化的數學模型,分析影子長度關于各個參數的變化規律,并應用你們建立的模型畫出2015年10月22日北京時間9:00-15:00之間天安門廣場(北緯39度54分26秒,東經116度23分29秒)3米高的直桿的太陽影子長度的變化曲線。
根據某固定直桿在水平地面上的太陽影子頂點坐標數據,建立數學模型確定直桿所處的地點。將你們的模型應用于附件1的影子頂點坐標數據,給出若干個可能的地點。
根據某固定直桿在水平地面上的太陽影子頂點坐標數據,建立數學模型確定直桿所處的地點和日期。將你們的模型分別應用于附件2和附件3的影子頂點坐標數據,給出若干個可能的地點與日期。
附件4為一根直桿在太陽下的影子變化的視頻,并且已通過某種方式估計出直桿的高度為2米。請建立確定視頻拍攝地點的數學模型,并應用你們的模型給出若干個可能的拍攝地點。
如果拍攝日期未知,你能否根據視頻確定出拍攝地點與日期?
問題分析
問題一
? 針對問題一首先為了建立影子長度變化的數學模型,應先確定影響影子長度變化的因素, 擬選取直桿所在經度、緯度、日期、時刻及桿長為參數建立數學模型。 由于題設中未直接給出關于影長與五個參數的數據,所以擬通過中間量描述影長與上述五個參數之間的關系。查閱相關資料得到可以太陽高度角、太陽赤瑋角、太陽時角及太陽方位角四個中間參量作為轉換分析中間變量,再根據四個中間變量得到影長與 5 個參數的函數關系式,即影長長度變化的數學模型。最后將天安門廣場的 5 個參數帶入影長變化模型,可得到桿影的變化曲線,分析影子長度關于各個參數的變化規律。再次此基礎上, 可運用控制變量法分析每個參數與影長的變化規律,并進行單因素敏感性分析。 由此,可建立影長變化模型,利用各參數求解變化規律。
問題二
? 針對問題二以直桿的太陽影子頂點為坐標數據建立數學模型,并應用于附件1 的影子頂點坐標數據求解直桿位置。可視為已知影長坐標、日期和時刻,求影長所在的地點的問題。首先應根據影長坐標計算太陽影長,本文擬將附件 1 中的影長、時刻及日期代入問題一中的影長變化函數中,可得到含有 21 個方程式的超定方程組。其次,該問題是一個單目標最優化問題,本文可建立影長差值絕對值最小為單目標的最優化模型對附件 1 進行求解,其中約束條件可考慮經緯度的范圍。最后通過窮舉搜索,得到直桿所在的地點。由此,可建立單目標最優化模型,利用窮舉搜索法求解。
問題三
? 針對問題三可視為已知影長坐標及測量影長的時刻,求解直桿經緯度及測量日期的問題。首先應將附件 2、 3 中的 21 組影長及時刻代入問題一中的影長變化函數中,得到超定方程組。其次該問題是一個雙目標最優化問題,本文可建立以影長差值最小、影長的曲線斜率差最小為目標的雙目標最優化模型對附件 2、 3進行求解,得出地點與日期,其中約束條件可考慮經緯度范圍。由此,可建立雙目標最優化模型,利用=窮舉搜索法求解,并對模型的正確性進行檢驗。
問題四
? 針對問題四首先需對視頻中影子長度進行提取,通過對圖像預處理,將彩色圖像灰度化,再對小連通域處理。 擬采用一種 Canny 邊緣檢測算法提取預處理后的圖像中的輪廓。 以直桿底座的左下方的頂點為原點建立平面直角坐標系,通過透視轉換,將平面直角坐標轉換到影長所在的平面內, 計算兩坐標轉換比例,其次提取影子長度, 求解超定方程組。最后以差值絕對值最小為目標函數,經緯范圍為約束條件,建立單目標優化模型,通過窮舉搜索,得到直桿所在的地點。以影長曲線斜率之差最小,影長差值最小建立雙目標優化模型, 其中約束條件可考慮經緯度范圍。 通過人工魚群算法,得到直桿所在經緯度和影長測量的日期。 最后針對直桿的高度做敏感性分析, 觀察桿高對直桿所處位置的影響。
所運用到的模型和算法
擬牛頓迭代法
牛頓法的基本思想是在迭代點xk初對目標函數f(x)進行二次函數近似,然后把二次模型的極小點作為新的迭代點,并不斷重復這一過程,直至求得滿足精度的近似極小點。
而擬牛頓法可以在保證收斂速度的同時,不用滿足Hesse矩陣處處正定的條件并且可以避免每次都進行Hesse計算,通過構造可以近似Hesse矩陣(或Hesse矩陣的逆)的正定對稱陣。
代碼
function [xk,fk,k]=cauthy_newton_method1(x0,ess)
%目標函數f,有確定最優解x*=[0 0],f(x*)=400.0
syms x1 x2 t;
f=100*(2*x1^2+2)^2+x2^2;
%構造目標函數f的梯度函數
fx=diff(f,x1);
fy=diff(f,x2);
gf=[fx fy];
%初始點的梯度和函數值,,賦值
xk=x0;
fk=subs(f,[x1 x2],x0);
gk=subs(gf,[x1 x2],x0);
Hk=eye(2);
k=0;
%進入迭代循環
while((norm(gk)>ess)&&(k<15))%迭代終止條件
%確定搜索方向
dk=-Hk*gk' ;
%下一點x(k+1)
xk=xk+t*dk' ;
f_t=subs(f,[x1 x2],xk); %構造一元搜索的一元函數φ(t)
df_t=diff(f_t,t);
res=solve(df_t) ;%由一維搜索找到最優步長
tk=res(1) ;
if (tk~=0 )
tk=double(tk);
else
break;
end
%計算下一點的函數值和梯度
xk = subs(xk,t,tk) ;
fk = subs(f,[x1 x2],xk);
gk0=gk;
gk=subs(gf,[x1 x2],xk);
%DPF校正公式,找到修正矩陣
yk=gk-gk0;
sk=tk*dk';
Hk=Hk-(Hk*yk'*yk*Hk)/(yk*Hk*yk')+sk'*sk/(yk*sk');
k=k+1
end
然后在命令行輸入:
x0:是初始點
k:迭代次數
f(xk):目標函數值
clear all;
x0=[10.8 11.8];
ess=1e-5;
[xk,fk,k]=cauthy_newton_method1(x0,ess);
xk=vpa(xk,5)
fk=vpa(fk,5)
k
人工魚群算法
在一片水域中,魚往往能自行或尾隨其他魚找到營養物質多的地方,因而魚生存數目最多的地方一般就是本水域中營養物質最多的地方,人工魚群算法就是根據這一特點,通過構造人工魚來模仿魚群的覓食、聚群及追尾行為,從而實現尋優。
中文名 人工魚群算法 典型行為覓食行為
特點 具有較快的收斂速度
停止條件 均方差小于允許的誤差。
算法描述
在一片水域中,魚往往能自行或尾隨其他魚找到營養物質多的地方,因而魚生存數目最多的地方一般就是本水域中營養物質最多的地方,人工魚群算法就是根據這一特點,通過構造人工魚來模仿魚群的覓食、聚群及追尾行為,從而實現尋優,以下是魚的幾種典型行為:
1)覓食行為:一般情況下魚在水中隨機地自由游動,當發現食物時,則會向食物逐漸增多的方向快速游去。
2)聚群行為:魚在游動過程中為了保證自身的生存和躲避危害會自然地聚集成群,魚聚群時所遵守的規則有三條:
分隔規則:盡量避免與臨近伙伴過于擁擠;
對準規則: 盡量與臨近伙伴的平均方向一致;
內聚規則: 盡量朝臨近伙伴的中心移動。
3)追尾行為:當魚群中的一條或幾條魚發現食物時,其臨近的伙伴會尾隨其快速到達食物點。
4)隨機行為:單獨的魚在水中通常都是隨機游動的,這是為了更大范圍地尋找食物點或身邊的伙伴。
特點
1)具有較快的收斂速度,可以用于解決有實時性要求的問題;
2)對于一些精度要求不高的場合,可以用它快速的得到一個可行解;
3)不需要問題的嚴格機理模型,甚至不需要問題的精確描述,這使得它的應用范圍得以延伸。
停止條件
判斷連續多次所得的均方差小于允許的誤差;
判斷某個區域的人工魚群的數目達到某個比率;
連續多次所獲取的值均不能超過已找到的極值。
4)迭代次數達到預設次數
流程圖
L-M 最優化算法
? 本題的最優化模型是一個利用最小二乘法原理對多個參數進行擬合的問題。經查閱資料我們發現 L-M(Levenberg-Marquardt)算法在解決這類問題時有較好的應用。
? Levenberg-Marquardt 算法是介于牛頓法與梯度下降法之間的一種非線性優化方法,這個算法對于過參數化問題不敏感,能有效處理冗余參數問題,而且尋優速度較快。
例題
test.m
syms t;
f = [t^2+t-1;2*t^2-3];
[x_optimization,f_optimization] = Levenberg_Marquardt_Method(f,5,0.4,2,1.5,(t));
x_optimization = double(x_optimization);
f_optimization = double(f_optimization);
x_optimization
f_optimization
t = -2:0.01:2;
St = (t.^2 + t - 1).^2 + (2.*t.^2 - 3).^2;
figure(1)
plot(t,St);
Levenberg_Marquardt_Method.m
function [x_optimization,f_optimization] = Levenberg_Marquardt_Method(f,x0,beta,mu,v,var_x,epsilon)
format long;
% f:目標函數
% x0:初始點
% beta:參數
% mu:阻尼參數
% v:放大系數
% var_x:自變量向量
% epsilon:精度
% x_optimization:目標函數取最小值時的自變量值
% f_optimization:目標函數的最小值
if nargin == 6
epsilon = 1.0e-6;
end
S = transpose(f)*f;
k = length(f);
n = length(x0);
x0 = transpose(x0);
var_x = transpose(var_x);
grad_f = jacobian(f,var_x);
xk = x0;
dx = 1;
while norm(dx) > epsilon
fxk = zeros(k,1);
for i=1:k
fxk(i,1) = subs(f(i),var_x,xk); % 【2】
end
Sxk = subs(S,var_x,xk);
grad_fxk = subs(grad_f,var_x,xk); % 【3】
grad_Sxk = transpose(grad_fxk)*fxk; % 【4】
Q = transpose(grad_fxk)*grad_fxk; % 【5】
while 1
I = eye(size(Q));
dx = double(-(Q + mu*I)grad_Sxk);
xk_next = xk + dx; % 【6】
for i=1:k
fxk_next(i,1) = subs(f(i),var_x,xk_next);
end
Sxk_next = subs(S,var_x,xk_next);
if norm(dx) <= epsilon
break;
end
if Sxk_next >= Sxk + beta*transpose(grad_Sxk)*dx % 【7】
mu = v*mu;
continue;
else
mu = mu/v;
break;
end
end
xk = xk_next; % 【8】
end
x_optimization = xk;
f_optimization = subs(S,var_x,x_optimization);
format short;
2015年國賽B題
出租車是市民出行的重要交通工具之一,“打車難”是人們關注的一個社會熱點問題。隨著“互聯網+”時代的到來,有多家公司依托移動互聯網建立了打車軟件服務平臺,實現了乘客與出租車司機之間的信息互通,同時推出了多種出租車的補貼方案。
請你們搜集相關數據,建立數學模型研究如下問題:
(1) 試建立合理的指標,并分析不同時空出租車資源的“供求匹配”程度。
(2) 分析各公司的出租車補貼方案是否對“緩解打車難”有幫助?
(3) 如果要創建一個新的打車軟件服務平臺,你們將設計什么樣的補貼方案,并論證其合理性。
問題分析
問題一
? 該問題要求建立合理的指標,并分析不同時空出租車資源的供求匹配"程度。本文基于“蒼穹||滴滴快的智能出行平臺”[1]中使用滴滴打車的出租車以及用戶的行為情況,建立了供求匹配情況下的出租車模型,并用以評價上海市的出租車資源"供求匹配"程度。
? 衡量出租車運營情況的最直觀數據就是出租車的位置分布,衡量出租車需求程度的最直觀數據是打車人數即請求單數的分布,而直接和打車軟件用戶體驗相關聯的數據則是乘客打車時間,這里我們用接單時間來衡量。由于空駛率K可以對應出租車供應量,而乘客等待時間可以對應出租車需求量,故兩者的函數關系可以作為衡量供應量的指標。通過對以上三個基本數據進行分析,我們得出可以用空駛率K和乘客等待時間T作為衡量供求情況的具體指標。通過考察城區和郊區全天24小時的K變化規律,我們得出空間(城郊)和時間(全天)兩個維度的供求關系分布情況。
? 這部分我們分為三個部分進行探討:
? 首先,我們想確定在某個時間段內,研究上海市出租車粗略的空間分配情況。我們對某工作日和節假日進行抽樣,使用插值的方法在Matlab中分別繪制出了這一天低峰10:00、高峰17:00時段,全上海市的采樣點地理位置(經度x, 緯度y)與出租車分布、乘客需求量分布、以及等待時間的三維圖像,為進一步討論打下了基礎。
? 接下來,我們想討論時間對于出租車分配調度的影響。由于數據量過大,且不同數據指標取樣點的空間位置不是嚴格對應的,我們利用集簇的思想,選擇了20個具有代表性的商圈以及城郊,并根據具體位置選擇合適的半徑,囊括其周邊的采樣數據點,并算出平均等待時間,作為某一具體時刻,具體地點的供求分配程度的量度。我們選擇出具有代表性的商圈與城郊,考察他們在工作日、非工作日的情況,并作出了其周邊一天內平均空載率Kave與真實時間t的二維圖像。
? 最后,我們引入了供求滿意度函數f,建立了出租車供需關系平衡的數學模型,并綜合第二部分中的數據,利用曲線擬合工具得到了上海市區的供需平衡模型,并將其利用于評價上海市出租車資源“供求匹配”程度 。
問題二
? 該問題要求分析各公司的出租車補貼方案是否對緩解打車難"有幫助。為了更客觀的研究整個出租車模型,我們想要建立一種合適的模擬過程方案,可以體現出在用打車軟件的情況下,有無補貼以及補貼力度不同時出租車盈利、行為模式的不同。
? 此時為了在大量的數據中選取合適的研究對象,我們查閱資料后發現,可以應用智能城市過往研究方法網格化我們的地圖,并進行近似處理。"打車難"具體可以表現為出租車總空駛路程:即空駛路程越長,說明司機浪費在搜尋乘客的路途上越長;反之,則說明乘客打車難受到了緩解。
? 在第一問的基礎上,我們注意到此時的重點是考察補貼方案不同時,出租車盈利、行為模式有何不同。我們認識到補貼是雙向的,既有用戶的紅包獎勵,還有對司機的獎勵或者燃油補助。所以,我們在思考后決定,將這兩個方面用參數的形式體現在我們建立的模型中。并且,我們還提出了多種可能合適的數學模型進行研究,用以分析補貼對于"緩解打車難"的幫助情況。
總結
以上是生活随笔為你收集整理的【数学建模】—优秀论文(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 几种常见的树:排序二叉树、平衡二叉树、红
- 下一篇: 富士通发布最新LIFEBOOK笔记本电脑