Я пытаюсь решить векторное уравнение, где векторы в полярной формеMATLAB решения нелинейного алгебраическое уравнение
уравнение
100 * ехр ((пи/3) * к) + 200 * exp (x (1) j) - 300 (x (2) * j) - 315 = 0;
, как вы можете видеть, что есть два неизвестных в этом уравнении х (1) и х (2) и так как это сложное уравнение я должен быть в состоянии получить их уравнения как реальная и мнимая часть 0.
я пытался использовать fsolve но точность очень плохо, и она не становится лучше, так как я его увеличить
мой сценарий:
function F = myfun(x)
F = [real(100*exp((pi/3)*1i) + 200*exp(x(1)*1i) - 300*exp(x(2)*1i) - 315); imag(100*exp((pi/3)*1i) + 200*exp(x(1)*1i) - 300*exp(x(2)*1i) - 315)];
мой MATLAB код:
x0 = [0,0];
options = optimset(optimset('fsolve'), 'TolFun', 1.0e-25, 'TolX',1.0e-25);
[x,fval] = fsolve(@myfun,x0,options);
данный ответ для x (2) равен 2.1246, однако реальный ответ равен 2.1237, и эта разница слишком велика для меня.
любые идеи?
Заранее спасибо
я оценил 'f' при использовании' х (1) 'равны к результату из 'fsolve' и' x (2) = 2.1237', а значение функции было примерно '[-0.241, -0.149]', но оценка 'F' в решении, заданном' fsolve', дала результаты ' 1e-10 * [-. 0694,0.565] ', который является m uch, намного меньше. Почему вы думаете, что 'fsolve' ошибается, и вы правы? – David
У меня есть точное решение для уравнения, попробуйте x (1) = 0.8931116058 и x (2) 2.123746846, и вы узнаете, что я имею в виду – MChawa
. Для этих значений я получил результат '[25.724928248606034, -17.860980634387658]'. – David