Как наилучшим образом подобрать рациональное приближение функции к функции Теодорсена, используя функцию lsqcurvefit в Matlab?
Я использую рациональную функцию (полиномиальное соотношение) для приближения функции Теодорсена. У меня возникают проблемы при угадывании правильных (наиболее оптимальных) параметров начального угадывания с использованием функции lsqcurvefit в Matlab. Есть ли способ узнать, каковы будут наилучшие начальные параметры угадывания, чтобы получить наилучший результат?
Мой код следующий:
k = logspace(-10,1,300);
% Exact Theodorsen's Function C(k) in terms of Bessel Function
Ck= @(k)(besselh(1,2,k))./(besselh(1,2,k)+1i*besselh(0,2,k));
% Ckget function used to extract real and imaginary numbers and stacks the result
Ckget= @(k)[real(Ck(k)); imag(Ck(k))];
% Define 3rd order approximation function
x0= [.1,.1,.1,1,.1,.1,.1,.1]; % Create initial guess
U = 200;
b = 3;
s = 1i*k*(U/b);
Ck2 = @(x,k)((x(1)*s.^3 + x(2)*s.^2 + x(3)*s + x(4))./(x(5)*s.^3 + x(6)*s.^2 + x(7)*s + x(8)));
Ck2get= @(x,k)[real(Ck2(x,k)); imag(Ck2(x,k))]; %extract real & imaginary values
% Use curve fit function for best fit approximation
x2= lsqcurvefit(Ck2get,x0,k,Ckget(k))