大佬教程收集整理的这篇文章主要介绍了将 FiniteSet 对象转换为 python 列表,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在寻找一种方法来轻松操作 SymPy 包中的 solveset
方法给出的结果。特别是,我有一个函数 omega(x,n,p,gAMMa)
,我想在保持 gAMMa
作为符号变量的同时计算它的根:
def omega(x,gAMMa):
#do stuff
gAMMa,x=var('gAMMa x')
roots=solveset(omega_complete(x,30,1,gAMMa),X)
omega
返回 x
和 gAMMa
的非线性组合,因此同一库中的其他方法(例如 linsolve
或 solve
)不起作用.目前,我在调用 FiniteSet
后遇到了 solveset
类型的输出:结果打印在 LaTeX 中,看起来像 this。
简单的转换 List(roots)
给出了错误 TypeError: dID not evaluate to a bool: None
。我在 this answer 中使用 roots.args[0],roots.args[1]
找到的替代方法也不是我想要的。有人可以帮忙吗?
完整代码(注意实际上是两个函数,omega_complete
和 omega_cycle
,它们的定义类似):
import numpy as np
import cmath as cm
from sympy import *
def target(n,p):
w=[]
for j in range(n):
if j==p:
w.append(1)
else: w.append(0)
return np.array(w)
###---complete---####
def change_basis_complete(N):
matrix=np.zeros((N,N),dtype=compleX)
for n in range(0,N):
for m in range(0,N):
matrix[n,m]=(1/cm.sqrt(N))*cm.exp(2*np.pi*1j*(n+1)*(m+1)/N)
return matrix
def new_target_complete(N,p):
return np.dot(change_basis_complete(N),target(N,p))
def omega_complete(x,N,gAMMa):
w=new_target_complete(N,p)
old_spectrum=np.zeros(N)
for i in range(N-1):
old_spectrum[i]=N
old_spectrum[N-1]=0
sigma=0
for i in range(N):
sigma+=(abs(w[i])**2)/(gAMMa*old_spectrum[i]-X)
return 1-sigma
###---cycle---####
def change_basis_cycle(N):
matrix=np.zeros((N,m]=(1/cm.sqrt(N))*cm.exp(-2*np.pi*1j*(n+1)*(m+1)/N)
return matrix
def new_target_cycle(N,p):
return np.dot(change_basis_cycle(N),p))
def omega_cycle(x,gAMMa):
w=new_target_cycle(N,p)
old_spectrum=np.zeros(N)
for n in range(N):
old_spectrum[n]=2-2*cm.cos((2*cm.pi*n)/N)
sigma=0
for i in range(N):
sigma+=(abs(w[i])**2)/(gAMMa*old_spectrum[i]-X)
return 1-sigma
SymPy issues 很想知道您正在尝试解决的方程式,以便可以重现:list(finite_set_object)
没有理由不给您一个参数列表。但如果 list(finite_set_object.args)
有效...嗯。
关于 ConditionSet 或 solveset
返回的任何其他对象,您必须阅读它们的含义以了解您可以用它们做什么。通常,ConditionSet 会像 ConditionSet(Eq(eq,0),domain)
一样返回,表示“未找到 eq = 0 的解决方案”,因此无法将其转换为解决方案列表。
以上是大佬教程为你收集整理的将 FiniteSet 对象转换为 python 列表全部内容,希望文章能够帮你解决将 FiniteSet 对象转换为 python 列表所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。