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

時間 2021-08-30 11:14:16

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....