繁体   English   中英

编写一个循环来表示n个多项式数组中的每个多项式

[英]write a loop to represent each polynomial from an array for n polynomials

import csv
import numpy
from sympy import *
import numpy as np
from numpy import *
import json

reader=csv.reader(open("/Users/61/Desktop/pythonlearning/generator1.csv","rU"),delimiter=',')
a=list(reader)
result=numpy.array(a)
print a 

b = []
for n in range(3):
    b.append(a[n+1][0:3])
print b
e = np.array(b)
f = e.astype(np.float)
print f

x = Symbol("x")
y = Symbol("y")

coeffs = f
F1 = numpy.poly1d(f[0])
F12 = np.polyder(F1)
print F12
F2 = numpy.poly1d(f[1])
F22 = np.polyder(F2)
print F22
F3 = numpy.poly1d(f[2])
F32 = np.polyder(F3) 
print F32

这是我的编码,f是这样的数字数组: [[ 9.68000000e-04 6.95000000e+00 7.49550000e+02] [ 7.38000000e-04 7.05100000e+00 1.28500000e+03] [ 1.04000000e-03 6.53100000e+00 1.53100000e+03]] 基本上,我想分配f的值以形成多项式,然后对多项式求微分。 像这样的结果0.001936 x + 6.95 0.001476 x + 7.051 0.00208 x + 6.531我的问题是,如果我有3个多项式而不是3个多项式,那么如何为Fn写一个循环。 我怎么能写一个循环来获得n个多项式的微分,并能轻松地使用具有不同名称的多项式。 例如,F1代表第一个多项式,F2代表第二个多项式,依此类推。 我试过这样的东西,但是不起作用

i = 1
if i < 3:
    F(i)=numpy.poly1d(f[i-1])
else:
    i = i+1

您需要使用循环来处理可变数量的多项式,并使用数据结构来存储它们。 尝试使用字典,使用for循环进行迭代。

numberPolynomials = 3
F = {}
for n in range(1, numberPolynomials+1):
    F[n] = np.poly1d(f[n-1])
    F[(n, 2)] = np.polyder(F[n])
    print F[(n, 2)]

现在您可以将多项式不是F1F2等,而是F[1]F[2]等。对于您所说的F12F22F32F32 F[(1,2)]F[(2,2)]F[(3,2)] 但是,如果您不打算使用原件,则应覆盖原件,并可能仅使用列表。

假设您将numpy的3x导入更改为:

import numpy as np

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM