私たちが使用している場合solve
あなたの関数に、私たちはあなたの関数がゼロに等しい2つの点があることがわかります。私たちはあなたの関数をよく見るとこれらの点は(1, 1)
と(0.3203 + 1.3354i, pi)
syms x y
result = solve(-log(x)-log(y)+x+y-2, x, y);
result.x
% -wrightOmega(log(1/pi) - 2 + pi*(1 - 1i))
% 1
result.y
% pi
% 1
で、我々は値が
[x,y] = meshgrid(-10:0.01:10, -10:0.01:10);
values = -log(x)-log(y)+x+y-2;
whos values
% Name Size Bytes Class Attributes
% values 2001x2001 64064016 double complex
実際に複雑で、MATLABの古いバージョンでは、ezplot
を扱うかのように思えていることがわかりますされていますデータのみの本当コンポーネントを考慮することにより、複雑な機能。このように、これは次のプロットが
を生じる、新しいバージョンは、データの
大きを考慮し、実部と虚部の両方がゼロであるときにゼロにのみ発生します。これが真の2点の、これらのポイントの一つだけは本当で、プロットすることができています。しかしながら、
ezplot
の比較的粗いサンプリングは、単一のポイントを表示することができません。
あなたはx = y = 1
が与えられた方程式の唯一のソリューションであるため、これはこの点の位置
imagesc(abs(values), 'XData', [-10 10], 'YData', [-10 10]);
axis equal
hold on
cmat = contourc(abs(values), [0 0]);
xvalues = xx(1, cmat(1,2:end));
yvalues = yy(cmat(2,2:end), 1);
plot(xvalues, yvalues, 'r*')