Какой метод / решатель я должен использовать для системы связанных нелинейных уравнений, включающих n (> 100) переменных? - PullRequest
0 голосов
/ 26 января 2019

Я решаю задачу с использованием связанных нелинейных уравнений с числом переменных, превышающим 100.

Я использовал Fsolve / lsqnonlin (MATLAB) для задачи, она хорошо работала для меньшего числа переменных (около 20). Однако с увеличением числа переменных оно не сходится к решению.

function y2 = chec(p,n,ges,res) 
%n is the number of variables
% res is 1xn matrix with complex numbers
% ges is just a constant.
gaus=exp(-((-(n/2-0.5):(n/2-0.5)).^2)/9000);
S=gaus.*exp(1i*p);
M=S'*S;
y2=zeros(n,1);
for k = 2:n
   cv = sum(diag(M,k-1))-res(k);
   if(k<n)
       y2(2*(k-lm)+1)=real(cv);
       y2(2*(k-lm)+2)=imag(cv);
   elseif(k==n)
       y2(2*(k-lm)+1)=imag(log(sum(diag(M,k-1)))-log(aucrr(k)));
       y2(2*(k-lm)+2)=p(n)-ges;
   end
end
%%% function ends here %%%
[z,fval] = fsolve(@(x) chec(x,n,ges,res),rand(1,n));
...