最優解編程
㈠ 怎麼用matlab求最優解
x0=[5,5,2]
題主給出的線性規劃模型可以用fmincon函數來
求其最優解,其方法:
1、首先建立目標函數,objectivef(x),其內容
y=x(1)*x(2)+2*(x(2)*x(3)+x(1)*x(3));
2、然後建立約束函數,constrainf(x),其內容
%約束函數
c=[];
%非約束函數
ceq=x(1)*x(2)*x(3)-100;
3、最後建立運行代碼
x0=[5,5,2]
A=[];b=[];Aeq=[];beq=[];VLB=[5,0,0];VUB=[inf,inf,inf];
[x,fval,exitflag]=fmincon(@(x)objectivef(x),x0,A,b,Aeq,beq,VLB,VUB,@(x)constrainf(x))
A=x(1)*x(2)*x(3);
str=['x1x2x3=100 ',num2str(A)];
fprintf('%s ',str);
4、根據上述 內容編程,執行可以得到
x1=5.848;x2= 5.848;x3=2.924
min S=102.6
㈡ matlab求最優解
你給出的代碼沒有按照題意來書寫,是有問題的。
首先,應建立最優函數方程,即
max 14A+15B+23C+40D
st. 10A+12B+18C+26D≤1000
5≤A≤50
5≤B≤50
5≤C≤50
5≤D≤50
A,B,C,D≥0
然後,用fmincon非線性 規劃最優解函數,求得A,B,C,D
按此思路編程後運行可得
A=5,B=5,C=5,D=30,籌集資金1460元
㈢ 編程序求最優解 另外加高分!!!!
你這種問題應該用lingo進行線性規劃求解最方便。
基本格式如下
min(max):z..... 目標函數
s.t.{....}限制條件
當然這種題目也可以用C語言來解決,只不過要麻煩得多,而且你給的題目意思不夠清楚,我沒辦法幫你編程。需要的話,你把完整的題目發到我的郵箱:[email protected] 不過我這周得參加建模比賽,至少要到下周才有空做。
㈣ lingo中如何設置求全局最優解
1、題目:求minz=2*x1+3*x2+x3;s.t.[x1 + 4*x2+2*x3>=8 ;3*x1 + 2*x2 >=6 ;xj >= 0 , j=1,2,3, ]。
㈤ matlab求解線性規劃最優解怎麼弄
題主給出線性規劃問題,可以用fmincom函數求得最優解。
求解思路:1、創建自定義目標函數,myfun(x),即f=10*a*h2、創建自定義約束條件函數,mycon(x),即
(1)不等式條件
0.5≤b/a≤2;
0.5≤c/(10-b)≤2;
0.5≤(a-c)/(10-b)≤2;
0.5≤(c+10-b)/(2*h)≤2;
0.5≤(a-c+10-b)/(2*h)≤2;
0.5≤(a+b)/(2*h)≤2;
(2)等式條件
(a*b*(h-2))=200;
(10*b*c*(h-4))=35;
((10-b)*a*c*(h-4))=105;
3、初定x的初值,即x0=rand(1,4)
4、確定x的上限值,即lb值,lb=zeros(1,4);
5、確定x的下限值,即ub值,ub=ones(1,4)*20;
6、使用fmincon函數,求其a、b、c、V值
[x,fval,exitflag] = fmincon(@(x) myfun(x),x0,A,b,Aeq,beq,lb,ub,@(k) mycon(k));
a=x(1);b=x(2);c=x(3);h=x(4);
7、驗證各等式條件
按上述要求編程,運行後可得到如下結果
㈥ 運籌學中,可行解、基本解、基本可行解和最優解的關系
可行解是滿足約束條件的解,基本解對應基向量的非基變數為零,基解不一定為可行解,可行解也不一定為基解,既是可行解又是基本解的解是基本可行解,最優解是基本可行解中使目標函數達到最優的解。
在線性規劃問題中,滿足非負約束的基本解稱為基本可行解或基本可行解。如果線性規劃問題存在可行解,則必須存在一個基本可行解。
可行解是基本可行解的充要條件如下:非零分量對應的系數矩陣的列向量是線性無關的。基本可行解對應可行域中的極點,是有限的。如果存在一個有界最優解,至少有一個基本可行解是最優解。
(6)最優解編程擴展閱讀:
1、基本可行解(basic feasible solution)亦稱可行點或允許解,是線性規劃的重要概念。在線性規劃問題中,滿足非負約束條件的基本解,稱基本可行解,簡稱基可行解。
線性規劃問題如果有可行解,則必有基可行解,可行解是基可行解的充分必要條件為:它的非零分量所對應的系數矩陣列向量是線性無關的。
基本可行解與可行域中的極點相對應,為有限個。若存在有界最優解,則至少有一個基本可行解為最優解。
2、可行解就是滿足所有約束條件的決策變數的一組取值,若不滿足約束條件,則稱為不可行解。
3、基解是滿足資源約束的解,不一定是非負的。它的幾何意義就是滿足資源約束的部分,但是因為可能是負數,所以實際意義不大。
㈦ 下面這道題,求數學建模問題的最優解,用matlab怎麼編程
用fmincon函數
你看看help
fmincon
主要是建立兩個m文件,一個myfun放你的f(x),注意,這里要放-f(x),因為你要求最大值,fmincon是求最小值的
另一個mycon放非線性約束條件,這倆,(x11+x12+x13)y11*1.4+(x22-x12+x23)y22*1.65<=7.5
(x11+x12+x13)(y11*1.4+6.1)+(x22-x12+x23)(y22*1.65+7.35)<=76.5
把線性約束條件寫成矩陣A,B
直接調用
X=fmincon(@myfun,X0,A,B,[],[],LB,UB,@mycon)
LB,UB是自變數的上下限
X0為初值,一般需要多嘗試幾個初值
㈧ vb編程求方程最優解結果差很多
把程序改寫如下,原因是
If g1 = x1 ^ 2 - x2 <= 0 And g2 = x1 + x2 - 2 <= 0 Then中出現g1 = x1 ^ 2 - x2這樣的賦值語句,應提出來放在前面,執行結果還是不正確,你可以考慮一下演算法方面是否有問題問題,也可以把原題目發出來供大家參考,以便幫你解決問題
Private Sub Command1_Click()
x01 = 3: x02 = 3: t0 = 0.1: c = 0.0001: k = 10
f0 = 5
fl = 5
m0: t = t0
J = 1
m1: Randomize
e1 = Int(3 * Rnd - 1)
e2 = Int(3 * Rnd - 1)
X1 = x01 + t * e1
X2 = x02 + t * e2
g1 = X1 ^ 2 - X2
g2 = X1 + X2 - 2
If g1 <= 0 And g2 <= 0 Then
f = X1 ^ 2 + X2 ^ 2 - 4 * X1 - 2 * X2 + 5
If f < fl Then
fl = f
d1 = e1
d2 = e2
xl1 = X1
xl2 = X2
End If
End If
If J > k Then
X1 = xl1
X2 = xl2
m2: t = 1.3 * t
X1 = X1 + t * d1
X2 = X2 + t * d2
g1 = X1 ^ 2 - X2
g2 = X1 + X2 - 2
If g1 <= 0 And g2 <= 0 Then
f = X1 ^ 2 + X2 ^ 2 - 4 * X1 - 2 * X2 + 5
If f < fl Then
fl = f
GoTo m2
End If
End If
Else
J = J + 1
GoTo m1
End If
If Abs((f0 - f) / f0) < c Then
Print X1, X2
Print f
Else
fl = f
f0 = f
x01 = X1
x02 = X2
GoTo m0
End If
End Sub
㈨ matlab線性規劃求最優解,其中有lb和ub約束上下限,可是現在要求x(1)取0或大於234,x(2)取0或大於651
首先就是解x(1)>234和x(2)>651,分別考慮為0的情況,x(1)=0,x(2)>651;x(1)=234,x(2)=0以及x(1)=0,x(2)=0,這樣問題就解決了。
f=[-7,-12];
A=[9 4;4 5;3 10];
b=[300;200;300];
lb=zeros(2,1);% 生成一個2行1列的全0矩陣,很顯示,上面例子中的x,y的最小值為0
[x,fval]=linprog
優勢特點
高效的數值計算及符號計算功能,能使用戶從繁雜的數學運算分析中解脫出來;
具有完備的圖形處理功能,實現計算結果和編程的可視化;
友好的用戶界面及接近數學表達式的自然化語言,使學者易於學習和掌握;
功能豐富的應用工具箱(如信號處理工具箱、通信工具箱等) ,為用戶提供了大量方便實用的處理工具。