Я решаю задачу с использованием связанных нелинейных уравнений с числом переменных, превышающим 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));