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解多元非線性方程組,求大神
首先定義函式 function f fx x f 1 3 x 1 cos x 2 x 3 0.5 f 2 x 1 2 81 x 2 0.1 2 sin x 3 1.06 f 3 exp x 1 x 2 20 x 3 10 pi 3 3 x fsolve fx,1,1,1 最後求得 x 0.5000 ...
牛頓迭代法求解非線性方程的c程式設計
數值方法書上不是有 牛頓法是牛頓在17世紀提出的一種求解方程f x 0.多數方程不存在求根公式,從而求精確根非常困難,甚至不可能,從而尋找方程的近似根就顯得特別重要。設r是f x 0的根,選取x0作為r初始近似值,過點 x0,f x0 做曲線y f x 的切線l,l的方程為y f x0 f x0 x...
如何用matlab非線性回歸分析
把y x a兩邊取bai對數,就有log y a log x 如果將log y 看成 du是log x 的函zhi數,那麼它們是dao線性的.這時回是方程的個數是10000個,而未知數答是1個 a 這可以用matlab的矩陣除法求解矛盾方程 用的是最小二乘法 下面是乙個例子,我以a 1.45產生一套...