Суммирование функций Trig в Python

100
10

Можете ли вы выполнить суммирование функции триггера в python? Например, сумма cos (2x) по двум итерациям. Спасибо!

def function_name(phi1, phi2, distance):
"""
phi_1 - List of first angles [radians]
phi_2 - List of second angles [radians]
distance - List of all distances

Note: All inputs must be the same length
Note: All inputs must be NumPy arrays!
"""

phi_1=[0.698132, 0.872665]
phi_2=[0.872665, 0.698132]
distance

sig_phi = 1

#Setup exponent array and get squared distance

exponents= np.ones_like(distance) * 2
dist_sq= np.power(distance,exponents)

mat1=[[np.sum(np.divide((1+np.cos(2*phi1)),(2*dist_sq))),-1.0 * np.sum(np.divide((np.sin(2*phi1)),(2*dist_sq)))], [np.sum(np.divide(1-np.cos(2*phi1)),(2*dist_sq)),-1.0 * np.sum(np.divide((np.sin(2*phi1)),(2*dist_sq)))]]
mat1 *= 1/sig2_phi**2

mat2=[[np.sum(np.divide((1+np.cos(2*phi2)),(2*dist_sq))),-1.0 * np.sum(np.divide((np.sin(2*phi2)),(2*dist_sq)))], [np.sum(np.divide(1-np.cos(2*phi2)),(2*dist_sq)),-1.0 * np.sum(np.divide((np.sin(2*phi2)),(2*dist_sq)))]]
mat2 *= 1/sig2_phi**2

return mat1,mat2
print (mat1, mat2, distance)

Я хочу сохранить расстояние как variable-, чтобы я мог видеть, какое расстояние максимизирует детерминант матрицы. Я не получаю никаких результатов, когда запускаю код в своем терминале. Кто-нибудь знает, что я должен делать?

спросил(а) 2021-01-19T13:42:59+03:00 6 месяцев, 2 недели назад
1
Решение
126

Я не уверен, что полностью понимаю этот вопрос, но, конечно, каждая отдельная часть довольно проста в Python. Используя функцию sum() с тригонометрическими функциями, представленными в math модуле, вместе в понимании списка, это должно быть относительно просто выполнить. Например, вы даете,

from math import *
iters = [1, 2]
summation = sum(cos(2*x) for x in iters)

должен сделать трюк.

Кроме того, я бы рекомендовал более подробно рассказать о ваших вопросах в будущем. Он не согласен задавать вопросы без каких-либо доказательств того, что уже пытался решить проблему.

ответил(а) 2021-01-19T13:42:59+03:00 6 месяцев, 2 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема