Как получить массив в качестве вывода, используя scipy.leastsq? - PullRequest
0 голосов
/ 14 апреля 2020

Мне действительно нужна помощь по коду. я пытаюсь перевести код Matlab в python. я использовал lsqonlin (matlab) и получил массив в качестве вывода, я попробовал то же самое с scipy.leastsq, но вывод был одним значением, что я должен использовать, чтобы получить массив? Вот код в Matlab:

fun= @(phi) sin(2*phi)/(2*phi)-gamma;
 InitialGuess = pi/12;
 %[phi_1(ir),~,~]=fsolve(fun,InitialGuess,optimset('Display','off'));
 lb=0;ub=2.25;
 [phi_1(ii,jj),~,~]=lsqnonlin(fun,InitialGuess,lb,ub,optimset('Display','off'));

после исправления, вывод представляет собой массив с одним значением, в то время как мне нужны различные значения для построения графика. код ниже:

from math import pi 
from scipy.optimize import least_squares
def  f(phi):
    y= np.sin(2*phi)/(2*phi) - gamma
    return y

x0 = pi/12
phi1 = least_squares(f,x0)
print(phi1)

и вот вывод:

active_mask: array([0.+0.j])
        cost: (-3.249913819664981e-06+5.139025241135326e-07j)
         fun: array([0.00020095+0.00255738j])
        grad: array([-0.00013185-0.00167795j])
         jac: array([[-0.65612047]])
     message: '`xtol` termination condition is satisfied.'
        nfev: 15
        njev: 5
  optimality: 0.0016831233538848116
      status: 3
     success: True
           x: array([1.54956525+0.06919657j])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...