主要内容

。

制约をもつ非线路システム

不合因をもつ方程程式法

FSOLVE.は,范囲もて,制约,を一切てできん,范囲も含めて。

。

このこの法を说明するため,次の方程式のをを考えてみうう。

F 1 X = X 1 + 1 1 0. - X 1 1 + X 2 2 1 + X 2 2 + X 2 F 2 X = X 2 + 2 2 0. - X 2 1 + X 1 2 1 + X 1 2 + X 1

ここで, X これらの方程式には次次ののののののののののの4つの解がます。

X = - 1 - 2 X = 1 0. - 2 X = - 1 2 0. X = 1 0. 2 0.

制约を満たす解は X = 1 0. 2 0. の1つだけです。

この例の最后に记载されているFBND.补助关节, F X を数码的に计算ます。

异なる开启点の使使用

一般, N 変数の N 次方程式系でではははしてていますつまりためための近傍にこのこのはありませませ満たすこのためませませを満たすののためための制约を満たすののためののをを満たすののののののののののののののののののははつのののははつのつつつつののつつつののつX0.を生成し,それぞれそれぞれX0.からFSOLVE.の実行を开启することです。

この例では,の解を求めるため,平台0,标准偏差100で正式分布する10个ののののますます。

RNG.默认重复性的%n = 10;%尝试10个随机起点pts = 100 * randn(n,2);%初始点是PTS中的行soln = zeros(n,2);%分配解决方案opts = Optimoptions('fsolve''展示''离开');为了k = 1:n soln(k,:) = fsolve(@ fbnd,pts(k,:),选择);%找到解决方案金宝搏官方网站结尾

制约制约を満たす解解を列挙しし

IDX = soln(:,1)> = 0&soln(:,2)> = 0;disp(soln(idx,:))
10.0000 20.0000 10:0000 20.0000 10:0000 20.0000 10:0000 20.0000 10:0000 20.0000

异なるアルゴリズムの使用

FSOLVE.は次の3つのアルゴリズムをもっています。その各々で异なる解が见つかります。

この例では,x0 = [1,9]をを用して各アルゴリズム返す返す解を调べます。

x0 = [1,9];opts = Optimoptions(@fsolve,'展示''离开'......'算法''信任区 - 嘟冰');X1 = FSOLVE(@ FBND,X0,OPTS)
x1 =1×2-1.0000 -2.0000
opts.algorithm =“信任区域”;X2 = FSOLVE(@ FBND,X0,OPTS)
x2 =1×2-1.0000 20.0000
opts.algorithm ='levenberg-marquardt';X3 = FSOLVE(@ FBND,X0,OPTS)
x3 =1×20.9523 8.9941

ここ同じ初点点に対しがましましたたませませませませませませませませませませませませませませませませませませませませませませませませませませませませませませませませませませませませませすべてすべてんませませませませませませませませませませませませませませませませませませませませませませませませませませませませませませませませませませませませませませませませませませませませませませませませませませませませませませませませませませませませませませませませませませましましましでましたたたアルゴリズムましましましましましましましましましましましましましましたましましましましましに対しに対しに対しに対しに対しに対しに対しに対しはははここははははははででででに対しに対しに対しに対しに対し解まし见つかりましましましましましましましましましましましましましましましましましましましましましましましましましましましましましましましましましましましましましましましましましましましましましましましましましましましましましましましましましましましましましましましたましましましアルゴリズムアルゴリズムアルゴリズムましましましましましましましましましましましましたたに対しに対しに対しに対しに対しははに対し무点X3は,解でさえなく,局所的な停留点にすぎん。

范囲を指定したlsqnonlin.の使用

lsqnonlin.は,ベクトル关​​圈 F X このため,方程式この,方程ます。 F X = 0. のの解を求めようと试み试み试みまた,lsqnonlin.は范囲の制约をますます。

lsqnonlin.用来にに例を化しして求め求め。

lb = [0,0];RNG.默认x0 = 100 * randn(2,1);[x,res] = lsqnonlin(@ fbnd,x0,lb)
发现本地最低限度。优化完成,因为梯度的大小小于最优耐受性的值。
X =2×110.0000 20.0000
RES = 2.4783E-25

この结合は,lsqnonlin.がが制约を満たす満たす解收束しましましlsqnonlin.を全局优化工具箱の多层的ソルバーと并并し,多重の初期点を自动的に调べることができことができことができ。详细详细,MultiStart使用LSQCurvefit或LSQNONLIN(全局优化工具箱)を参照してください。

粉刺の制约としての方程式と不锈钢の

次のように,问题问题を再定式式し粉刺を使用できます。

  • すべてのXに対して0に评価される@(x)0などなどの数目的关节をします。

  • 粉刺FSOLVE.目的关键词を非形形等式制约として设定します

  • 通讯の粉刺构文で他の制约を指定します。

この例の最后にあるFminconstr.补助をのますます。

lb = [0,0];%下限约束RNG.默认%可重复的初始点x0 = 100 * randn(2,1);选择= Optimoptions(@Fmincon,'算法''内点''展示''离开');x = fmincon(@(x)0,x0,[],[],[],[],LB,[],@ Fminconstr,Opts)
X =2×110.0000 20.0000

この结合は,粉刺が开始点から问题を解きます。

补助关节

次のコードは,补助关圈FBND.を作物成し。

功能f = fbnd(x)f(1)=(x(1)+1)*(10-x(1))*(1 + x(2)^ 2)/(1 + x(2)^ 2 +x(2));F(2)=(x(2)+2)*(20-x(2))*(1 + x(1)^ 2)/(1 + x(1)^ 2 + x(1));结尾

次のコードは,补助关圈Fminconstr.を作物成し。

功能[c,ceq] = fminconstr(x)c = [];%没有非线性不平等CEQ = FBND(x);%FSOLVE目标是Fmincon非线性平等约束结尾

参考

||

关键词トピック