我有一个复杂的数学函数,其结果是复杂的值。
函数中有两个变量:fi(0〜2pi)和theta(0〜pi / 2)。
我的目标是将计算结果转换为csv文件。 行表示不同的fi,列表示不同的theta。
这是我的代码。
import numpy as np
from math import sin, asin, cos, pi
# c3 function
def c3(ni, nt, theta):
return (-(ni / nt) * (cos(theta) / cos(asin(1.5*sin(theta)))) * 2 * ni * cos(asin(1.5*sin(theta)))) / (ni * cos(asin(1.5*sin(theta))) + nt * cos(theta))
# es function
def es(big_theta, fi, big_fi):
return lambda ni, nt, theta: (c3(ni, nt, theta) * sin(big_theta)) * sin(fi - big_fi)
res = [[(es(pi/2, fi, 0))(1, 1.5, theta) for fi in range(0, 2*pi)] for theta in range(0, pi/2)]
arr2D = np.array(res)
np.savetxt('D:/Es.csv', arr2D, delimiter=',', fmt='%f')
print(res)