matlab求解非線性約束方程,求教 如何用matlab解帶約束的非線性方程組

2021-08-29 08:24:58 字數 1941 閱讀 5684

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產生一套...