MATLAB非線性約束問題,急求

2021-03-19 18:19:46 字數 4089 閱讀 1684

1樓:我行我素

你這個問題的難點在於如何表達目標函式和約束函式,必須把已知量都給出,否則,這兩個函式寫不出來。請把已知量都寫出來,或用資料檔案發過來。

matlab遺傳演算法優化問題中,非線性等式約束怎麼新增啊?

2樓:匿名使用者

建立約束條件函式,把非線性的等式約束條件新增加在[c,ceq]中。如function [c,ceq]=noncon(x)c=x(1)^2+x(2)^2-9;

ceq=;

然後,再用ga()函式呼叫,如

[x, fval, exitflag] =ga(o@fitfun,nvars,a,b,aeq,beq,lb,ub,noncon)

非線性約束優化 目標函式和約束函式 在matlab中出錯 求大神指點一二

3樓:匿名使用者

^原因

約束條件

c=[0.70868/(pi*(x(1)^4 - x(2)^4)/(32*x(1))) - 10, 0.8 - x(1) +x(2)];

寫錯了,改成

c=[0.70868/(pi*(x(1)^4 - x(2)^4)/(32*x(1))) - 10, 0.8 - x(1) + x(2)];

按照你原來的寫法,+x(2) 會被理解為單獨的一項,約束條件本來是兩個,被當成三個了。而第三個約束條件x(2)的值在給定區域內均大於0,所以根本找不到可行解,而不是收不收斂的問題。

在表示式中適當地加一些空格有助於閱讀,但如果加的位置不合適,可能會改變表示式的本來含義,這一點一定要小心。

結果

改正上面這一點錯誤後,優化成功:

optimization terminated: first-order optimality relative error

less than options.tolfun, and relative constraint violation less

than options.tolcon.

x =3.2000    2.4000

fval =

6.1902

exitflag =

1output =

iterations: 7

funccount: 24

constrviolation: 0

stepsize: 7.1456e-007

algorithm: 'interior-point'

firstorderopt: 2.3809e-006

cgiterations: 0

message: [1x148 char]

圖示

曲面為目標函式,透明部分為不滿足約束條件的區域,紅點為最優值。

用matlab求解一個優化問題(目標函式非線性,約束函式線性)

4樓:化學工程

程式編的非常好,只有一句:size(x) = [4,3]改為x =zeros(4,3) 即可。

%******************************===

function fff

clear;clc;

a= [1,1,1,0,0,0,0,0,0,0,0,0;

0,0,0,1,1,1,0,0,0,0,0,0;

0,0,0,0,0,0,1,1,1,0,0,0;

0,0,0,0,0,0,0,0,0,1,1,1;

-1,0,0,-1,0,0,-1,0,0,-1,0,0;

0,-1,0,0,-1,0,0,-1,0,0,-1,0;

0,0,-1,0,0,-1,0,0,-1,0,0,-1]

b=[200-1.645*10;

300-1.645*10;

400-1.645*10;

200-1.645*10;

-100-1.645*10;

-300-1.645*10;

-400-1.645*10]

x0=[0,0,0,0,0,0,0,0,0,0,0,0];

lb=[0,0,0,0,0,0,0,0,0,0,0,0];

ub=;

[x,fval,exitflag]=fmincon(@myobj,x0,a,b,,,lb,ub)

function f=myobj(x)

c = [12 21 21; 13 20 23; 15 17 27; 17 19 31];

x =zeros(4,3)

y = c.*x;

y = sum(y(:));

s = 0;

for i = 1:4

sg = sum(x(i,:));

s = s+sg.^0.6;

endf = y+200*s;

%*************************====

執行結果:

x =19.5167 69.5167 94.

5167 38.7083 88.7083 113.

7083 38.7083 88.7083 113.

7083 19.5167 69.5167 94.

5167

fval =

0exitflag =1

5樓:匿名使用者

global optimal solution found.

objective value: 112550.5

objective bound: 112550.4

infeasibilities: 0.000000

extended solver steps: 83

total solver iterations: 4753

variable value reduced cost

x1 50.65000 0.000000

x2 0.000000 7.000000

x3 132.9000 0.000000

x4 0.000000 3.438348

x5 0.000000 8.438348

x6 283.5500 0.000000

x7 65.80000 0.000000

x8 316.4500 0.000000

x9 0.000000 0.1050611e+09

x10 0.000000 2.000000

x11 0.000000 2.000000

x12 0.000000 0.1050611e+09

row slack or surplus dual price

1 112550.5 -1.000000

2 0.000000 3.000000

3 0.000000 5.438348

4 1.300000 0.000000

5 183.5500 0.000000

6 0.000000 -215.0000

7 0.000000 -217.0000

8 0.000000 -40.97349

我用matlab求解約束非線性規劃問題,但是老是出現下面

看到數字了麼,這裡的數字,代表滾動速度 這裡輸入文字 你可以試著修改,回具體需要什答麼樣子的可以根據實際來弄。這個是個最簡單的能自己滾動的 了。根本不需要js運算就能成功的。求助一個用matlab求解非線性規劃的問題,不勝感激!1.把 x,fval fmincon fun x0,a,b,aeq,be...

matlab求非線性方程問題5x53x3x

solve 5 x 5 3 x 3 x 2 11 0 ans 1.3130542889642530668937203100181 0.64872718956017354755182357313527 i 1.0201526764802407097363499549923 1.007047082940...

matlab非線性迴歸關於reglm函式

by dynamic see also contact me matlabsky gmail.2009.2.程式編好了,但是初值真的很難選,我到現在還沒有選這個一個合適的初值,你根據實際選擇一個吧,否則程式是執行不起來的 你的函式exp,初值稍微選的不好就會導致0或者 function mm clc...