0

ゴール

私は解決のMatlabと9つの未知数を有する9非線形方程式のシステムを解決したいです。9つの式9つの未知数MATLABの非線形システム - 多項式の比で結合された未知の

すべて9つの未知数をpolynomsの比として結合されている(myfunはつぎ下部参照)

fsolveは

x02=[5000,5000,5000,0.4,0.4,0.4,0.4,0.4,0.4]; 
ctrl2=[9894+1i*0.118,9894+1i*0.118,9894+1i*0.118,0.5,0.5,0.5,0.5,0.5,0.5]; 
f2 = @(x) myfun(x,Peff); 

options2 = optimoptions('fsolve','Algorithm','trust-region-dogleg','Display','iter-detailed'... 
    ,'MaxFunEvals', 100000, 'MaxIter', 100000,'TolX',1e-12,'TolFun',1e-12,... 
    'Jacobian','on'); 
[x2,F2,exitflag2,output2] = fsolve(f2,x02,options2); 

関数myfunはつぎ、fsolveは対応するヤコビアン

function [F,J] = myfun(x, p) 
に供給するために方程式のシステムを返します

% System of equation

F(1) = -(x(1) - x(1)*x(8)*x(9))/(x(4)*x(5) + x(6)*x(7) + x(8)*x(9) + x(4)*x(8)*x(7) + x(6)*x(5)*x(9) - 1) - p(1,1); 
F(2) = -(x(2)*x(4) + x(2)*x(6)*x(9))/(x(4)*x(5) + x(6)*x(7) + x(8)*x(9) + x(4)*x(8)*x(7) + x(6)*x(5)*x(9) - 1) - p(1,2); 
F(3) = -(x(3)*x(6) + x(3)*x(4)*x(8))/(x(4)*x(5) + x(6)*x(7) + x(8)*x(9) + x(4)*x(8)*x(7) + x(6)*x(5)*x(9) - 1) - p(1,3); 
F(4) = -(x(1)*x(5) + x(1)*x(8)*x(7))/(x(4)*x(5) + x(6)*x(7) + x(8)*x(9) + x(4)*x(8)*x(7) + x(6)*x(5)*x(9) - 1) - p(2,1); 
F(5) = -(x(2) - x(2)*x(6)*x(7))/(x(4)*x(5) + x(6)*x(7) + x(8)*x(9) + x(4)*x(8)*x(7) + x(6)*x(5)*x(9) - 1) - p(2,2); 
F(6) = -(x(3)*x(8) + x(3)*x(6)*x(5))/(x(4)*x(5) + x(6)*x(7) + x(8)*x(9) + x(4)*x(8)*x(7) + x(6)*x(5)*x(9) - 1) - p(2,3); 
F(7) = -(x(1)*x(7) + x(1)*x(5)*x(9))/(x(4)*x(5) + x(6)*x(7) + x(8)*x(9) + x(4)*x(8)*x(7) + x(6)*x(5)*x(9) - 1) - p(3,1); 
F(8) = -(x(2)*x(9) + x(2)*x(4)*x(7))/(x(4)*x(5) + x(6)*x(7) + x(8)*x(9) + x(4)*x(8)*x(7) + x(6)*x(5)*x(9) - 1) - p(3,2); 
F(9) = -(x(3) - x(3)*x(4)*x(5))/(x(4)*x(5) + x(6)*x(7) + x(8)*x(9) + x(4)*x(8)*x(7) + x(6)*x(5)*x(9) - 1) - p(3,3); 

%% Jacobian

I compute the Jacobian myself but will spare you the detail, as it is considerably long 

end 

結果

          Norm of  First-order Trust-region 
Iteration Func-count  f(x)   step   optimality radius 
    0   1  2.45042e+19      1.39e+14    1 
    1   2  2.45042e+19    1  1.39e+14    1 
    2   3  2.45031e+19   0.25  4.77e+15   0.25 
    3   4  2.45031e+19   0.625  4.77e+15   0.625 
    4   5  2.45031e+19  0.15625  4.77e+15   0.156 
    5   6  2.44992e+19  0.0390625  6.8e+16   0.0391 
    6   7  2.44992e+19  0.0976562  6.8e+16   0.0977 
    7   8  2.44992e+19  0.0244141  6.8e+16   0.0244 
    8   9  2.4495e+19  0.00610352  2.03e+17   0.0061 
    9   10  2.4495e+19  0.0152588  2.03e+17   0.0153 
    10   11  2.4486e+19  0.0038147  7.67e+17   0.00381 
    11   12  2.4486e+19  0.00953674  7.67e+17   0.00954 
    12   13  2.44592e+19  0.00238419  4.62e+18   0.00238 
    13   14  2.44592e+19  0.00596046  4.62e+18   0.00596 
    14   15  2.40048e+19  0.00149012  5.62e+20   0.00149 
    15   16  2.40048e+19  0.00372529  5.62e+20   0.00373 
    16   17  2.40048e+19 0.000931323  5.62e+20  0.000931 
    17   18  2.40048e+19 0.000232831  5.62e+20  0.000233 
    18   19  2.36832e+19 5.82077e-05  1.52e+21  5.82e-05 
    19   20  2.36832e+19 0.000145519  1.52e+21  0.000146 
    20   21  2.3131e+19 3.63798e-05  4.24e+21  3.64e-05 
    21   22  2.3131e+19 9.09495e-05  4.24e+21  9.09e-05 
    22   23  2.21355e+19 2.27374e-05  1.26e+22  2.27e-05 
    23   24  2.21355e+19 5.68434e-05  1.26e+22  5.68e-05 
    24   25  2.01772e+19 1.42109e-05  4.2e+22  1.42e-05 
    25   26  2.01772e+19 3.55271e-05  4.2e+22  3.55e-05 
    26   27  1.5592e+19 8.88178e-06  1.76e+23  8.88e-06 
    27   28  1.5592e+19 2.22045e-05  1.76e+23  2.22e-05 
    28   29  1.17854e+18 5.55112e-06  7.24e+23  5.55e-06 
    29   30  3.43734e+16 1.38778e-05  1.9e+23  1.39e-05 
    30   31  1.23843e+15 3.46945e-05  4.04e+22  3.47e-05 
    31   32  1.23843e+15 8.67362e-05  4.04e+22  8.67e-05 
    32   33  7.49991e+13  2.1684e-05  4.25e+21  2.17e-05 
    33   34  7.49991e+13 5.42101e-05  4.25e+21  5.42e-05 
    34   35  3.19073e+13 1.35525e-05  3.46e+21  1.36e-05 
    35   36  3.19073e+13 3.38813e-05  3.46e+21  3.39e-05 
    36   37  3.19073e+13 8.47033e-06  3.46e+21  8.47e-06 
    37   38  3.19073e+13 2.11758e-06  3.46e+21  2.12e-06 
    38   39  3.19073e+13 5.29396e-07  3.46e+21  5.29e-07 
    39   40  3.19073e+13 1.32349e-07  3.46e+21  1.32e-07 
    40   41  3.19073e+13 3.30872e-08  3.46e+21  3.31e-08 
    41   42  3.19073e+13 8.27181e-09  3.46e+21  8.27e-09 
    42   43  3.19073e+13 2.06795e-09  3.46e+21  2.07e-09 
    43   44  3.19073e+13 5.16988e-10  3.46e+21  5.17e-10 
    44   45  3.16764e+13 1.29247e-10   3e+21  1.29e-10 
    45   46  3.16764e+13 1.29247e-10   3e+21  1.29e-10 
    46   47  3.16764e+13 3.23117e-11   3e+21  3.23e-11 
    47   48  3.16764e+13 8.07794e-12   3e+21  8.08e-12 
    48   49  3.16764e+13 2.01948e-12   3e+21  2.02e-12 
    49   50  3.16764e+13 5.04871e-13   3e+21  5.05e-13 
    50   51  3.16764e+13 1.26218e-13   3e+21  1.26e-13 
    51   52  3.16764e+13 3.15544e-14   3e+21  3.16e-14 
    52   53  3.16764e+13 7.88861e-15   3e+21  7.89e-15 
    53   54  3.16764e+13 1.97215e-15   3e+21  1.97e-15 
    54   55  3.16764e+13 4.93038e-16   3e+21  4.93e-16 

fsolve stopped because the relative norm of the current step, 1.097484e-16, is less than 
max(options.TolX^2,eps) = 2.220446e-16. However, the sum of squared function values, 
r = 3.167644e+13, exceeds sqrt(options.TolFun) = 1.000000e-06. 

Optimization Metric            Options 
relative norm(step) = 1.10e-16    max(TolX^2,eps) = 2e-16 (selected) 
r = 3.17e+13         sqrt(TolFun) = 1.0e-06 (selected) 


exitflag2 = 

    -2 


output2 = 

     iterations: 54 
     funcCount: 55 
     algorithm: 'trust-region-dogleg' 
    firstorderopt: 3.000805388686251e+21 
      message: 'No solution found.…' 

問題

初期推測

x02 = 

    1.0e+03 * 

    Columns 1 through 5 

    5.000000000000000 5.000000000000000 5.000000000000000 0.000400000000000 0.000400000000000 

    Columns 6 through 9 

    0.000400000000000 0.000400000000000 0.000400000000000 0.000400000000000 

fsolveは

×2 =

1.0e+03 * 

    Columns 1 through 2 

    5.000098340971978 - 0.000000066639557i 5.000100855522207 + 0.000000027141142i 

    Columns 3 through 4 

    5.000100887684736 + 0.000000021333305i 0.000500827051867 + 0.000000033172152i 

    Columns 5 through 6 

    0.000498312570833 - 0.000000060511167i 0.000500859436647 + 0.000000027409553i 

    Columns 7 through 8 

    0.000500831092720 + 0.000000033506374i 0.000500831171443 + 0.000000033543065i 

    Column 9 

    0.000498337065684 - 0.000000066909835i 
ソリューションがどうあるべきか

(コントロール)

によって与えられたソリューション件の

コメント

あなたが最初の推測から非常に遠くに行くことなく、かなり迅速なクラッシュを解決するため見ることができるように

私はlevnberg、信頼領域ドッグレッグ(アルゴリズムはfsolveはとlsqnonlinを、他のアルゴリズムについても同様にクラッシュ(アルゴリズムが失敗したときに何をすべきかの下でMatlabのウェブサイトからのアドバイスを以下)

を範囲TolX TolFunアルゴリズムを変更しようとしたが、それでもクラッシュ、信頼領域Reflective)あなたに

質問:あなたは、私がコントロール値に収束する アルゴリズムを構築するために何をする必要があるかを見つけ出す

助けることができますか?

あなたが経験しているが実際ソルバーと間違って何もないあなたに

答えて

0

ありがとうございます。おそらく、問題には多くのローカルミニマイザが存在し、最適化アルゴリズムはそこに停滞しています。実際にそうすることはあまりありません。ほとんどの最適化ソルバーは、勾配降下の原則に基づいているため、最小化につながりますが、必ずしもそうではありませんグローバルなもの。何人かは、ランダムな初期条件の大きなセットを生成し、初期条件ごとに最適化ソルバーを実行することです。これは、取得したソリューションの1つがグローバルミニマイザであることを保証するものではありませんが、少なくとも最初の1つの推測よりも優れているはずです。

グローバルミニマイザが本当に必要な場合は、いくつかのタイプの「グレブナベース」ソリューションメソッドを使用する必要があります。これらのタイプのソルバーは「消去理論」に基づいており、グローバルミニマイザのすべてを含む単変量多項式を生成します。しかし、これらのソルバーは通常シンボリックであり、非常にメモリが多く、基本的に有限の時間内に終了することは保証されていません。私はこれらの問題がNP困難であると疑う(私は本当に知らない)。私の経験では、あなたが見せているような一見小さな問題は解決するのに(非常に長い)時間がかかることがあります。

関連する問題