如何使用python中的for循环从可用数据生成函数

2024-09-28 22:23:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个参数函数如下:

cr = xxx;
ci = xxx;
pr = xxx;
pi = xxx;
d = xxx;
H = (cr+I ci)/(s-(pr+I pi)) + (cr-I ci)/(s-(pr-I pi)) + d;

可以看出分子和分母是复共轭形式。 现在我有两个关于极点和剩余物的列表,如下所示:

poles: -1.95307e+09 + -7.78828e+09j, -1.95307e+09 + 7.78828e+09j, -2.68057e+08 + -5.9168e+09j, -2.68057e+08 + 5.9168e+09j, ....



residues: 1.88115e+07 + -4.32942e+07j, 1.88115e+07 + 4.32942e+07j, -251105 + 3.24774e+06j, -251105 + -3.24774e+06j, 2.95035e+06 + -2.80015e+06j, ...

d = 1.1

极点或留数中相邻的每两个元素都是复共轭形式。你知道吗

我必须使用极点中的前两个元素和剩余列表中的前两个元素来生成第一个函数。然后我要用我的极点和剩余列表中的下两对来构造第二个函数,以此类推。你知道吗

我想得到每个极点和剩余对的函数,然后对每个函数做一些计算,比如计算每个函数的零点。 谢谢你的帮助


Tags: 函数ci元素列表参数pipr分子
1条回答
网友
1楼 · 发布于 2024-09-28 22:23:05

我们当然不需要复杂的共轭,我们可以自己计算。那就是

d=…  # shared
def mkH(c,p):
  return lambda s: c/(s-p)+c.conjugate()/(s-p.conjugate())+d

funcs=map(mkH,residues,poles)

factory函数避免了standard issue让所有lambda捕获相同的变量。最后一行当然可以是列表理解或显式for(如果需要)。你知道吗

相关问题 更多 >