Как получить значение функции, соответствующее определенным координатам, фактически не заменяя значения в коде?

#python #python-3.x #function #numpy

Вопрос:

У меня есть массив значений x и y и функция f(x,y). Я хочу получить значение f(x1,y1), соответствующее (x1,y1). Как мы можем его получить?

 khmax = np.arange(0,0.5,0.001) Ncmax = np.arange(0,0.5,0.001) [X, Y] = np.meshgrid(Ncmax,khmax)  sum_real = 0 sum_imag = 0 for l in range (0,N): # C_jl * P_lj  sum_imag = sum_imag   (matrix_C[j_node-1][l])*(np.sin(Y*(x_j(l 1)-x_j(j_node)) / hmax))  sum_real = sum_real   (matrix_C[j_node-1][l])*(np.cos(Y*(x_j(l 1)-x_j(j_node)) / hmax)) Aj_real = (X * sum_real) Aj_imag = (X * sum_imag) G_imag = -Aj_imag   (2 * (Aj_real) * (Aj_imag)) / 2 - ((3 * ((Aj_real)**2) * (Aj_imag)) -((Aj_imag)**3))   ((4*(Aj_real)*(Aj_imag))*((Aj_real)**2 - (Aj_imag)**2))/24 G_real = 1 - (Aj_real)   (((Aj_real)**2 - (Aj_imag)**2)/2) - ((((Aj_real)**3 - 3*(Aj_real)*((Aj_imag)**2)))/6)   ((((((Aj_real)**2 - (Aj_imag)**2 )**2- 4*((Aj_real)**2)*((Aj_imag)**2))))/ 24)  mod_G = (((G_real)**2)   ((G_imag)**2))**(0.5)  

В этом коде mod_G является функцией (khmax, Ncmax). Я хочу получить значение mod_G,соответствующее (khmax, Ncmax) предположим(0.1,0.1). Я не хочу напрямую вводить значение (khmax, Ncmax) в функцию(т. Е. не заменять khmax на 0,1 и Ncmax на 0,1). Как я могу получить mod_G, не делая этого?

Комментарии:

1. Вам нужно найти информацию о том, как создать функцию в python

Ответ №1:

Не могли бы вы попробовать определить его как реальную функцию python, т. Е. Использовать def ключевое слово, а затем вызвать его с двумя параметрами? Таким образом, вы могли бы просто легко назвать это как mod_G(0.1,0.1) , не меняя ничего другого.