Суммирование тригонометрических функций в Python - PullRequest
0 голосов
/ 02 мая 2018

Можете ли вы сделать суммирование функции триггера в 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)

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

1 Ответ

0 голосов
/ 02 мая 2018

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

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

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

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

...