1樓:匿名使用者
用fmincon函式就可以解決,以下是fmincon的說明,你照葫蘆畫就可以了。
這個函式的基本形式為
x = fmincon(fun,x0,a,b,aeq,beq,lb,ub,nonlcon,options)
其中fun為你要求最小值的函式,可以單寫一個檔案設定函式,如以上給的例子中。
1.如果fun中有n個變數,如x y z, 或者是x1, x2,x3, 什麼的,自己排個順序,在fun中統一都是用x(1),x(2)....x(n) 表示的。
2. x0, 表示初始的猜測值,大小要與變數數目相同
3. a b 為線性不等約束,a*x <= b, a應為n*n階矩陣,學過線性代數應不難寫出a和b
4 aeq beq為線性相等約束,aeq*x = beq。 aeq beq同上可求
5 lb ub為變數的上下邊界, 正負無窮用 -inf和inf表示, lb ub應為n階陣列
6 nonlcon 為非線性約束,可分為兩部分,非線性不等約束 c,非線性相等約束,ceq
可按下面的例子設定
function [c,ce] = nonlcon1(x)
c = -x(1)+x(2)^2-4;
ce = ; % no nonlinear equality constraints
7, 最後是options, 可以用optimset函式設定,見上例
2樓:匿名使用者
這個題目做出來了嗎?
求教 如何用matlab解帶約束的非線性方程組
3樓:終身追求
可以用最優化的方法來求解,非線性方程組可以作為等式約束,未知量之間的大小關係可以作為不等式約束
然後用最小二乘方法求最優解 可以查下fmincon 函式!
4樓:匿名使用者
可以用智慧演算法進行求解,遺傳演算法比較成熟!
matlab非線性約束條件function [c,ce] = nonlcon1(x)
5樓:匿名使用者
有以下bai幾種方式:
1、用全域性du變數,不建
zhi議;
2、傳遞附加引數:把非dao
線性約束條件定版義成函式
function [c,ce] = nonlcon1(x,a)
並且調權用fmincon的時候用:
fmincon(fun,x,a,b,aeq,beq,lb,ub,@nonlcon1,options,a)
其中,附加引數a在options後面,options以及前面的引數都不能缺,如果不需要,可以用空陣列([ ]
)佔位。
3、使用巢狀函式,也就是說把約束條件作為主函式的巢狀函式,大致結構如下:
function main
a = 1;
fmincon(fun,x,a,b,aeq,beq,lb,ub,@nonlcon1)
function [c,ce] = nonlcon1(x)
c(1)=a(1)*x(1)+a(2)*cos(x(2));
...endend
如何用matlab求解非線性約束優化問題
6樓:姜哥還是老的辣
你好,建議搜尋 fmincon函式的相關使用方法。
7樓:匿名使用者
窗含西嶺千秋雪,門泊東吳萬里船.
matlab解帶不等式約束的非線性方程組。
8樓:匿名使用者
你參考一下這個, 我也是看到這個才會的
求Matlab大神給解下面這個非線性方程組的方法
可以用fsolve直接求出。計算方法如下 1 p x 1 q x 2 例如資料x隨機給出 x round 100 rand 10,1 n length x f x sum x.x 1 log x sum x.x 1 1 x 1 sum log x n x 2 sum x.x 1 n 1 x 1 op...
用matlab進行非線性擬合nlinfit函式
黎仙書雲英 bylyqmath clc clear all close all x 47 8 7 12 7 167 4 28 8 28 12 28 16 28 4 60 8 60 z 34,5,12,34,27,49,40,45,23,67 fun beta,x beta 1 x 1 beta 2 ...
matlab中nlinfit非線性擬合求引數
袁怡圃 補充回答 資料不好 建立函式檔案 function y myfun beta,x y 2.350176 beta 1 1 1 beta 2 1 1 x 1 1 beta 2 beta 2 2.x 1 1 beta 2 1 beta 2 x 1 1 beta 2 0.5 x 2 執行 x 0....