0
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 つの多項式の代わりに n 個の多項式がある場合、Fn のループをどのように記述できるかということです。n 多項式の微分を取得するループを作成するにはどうすればよいでしょうか。異なる名前の多項式を簡単に使用できます。たとえば、F1 は最初の多項式を表し、F2 は 2 番目の多項式を表します。私はこのようにsthを試しましたが、うまくいきません

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

1 に答える 1

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)]

これで、多項式を、などではなく 、などF1と呼ぶことができます。ただし、オリジナルを使用しない場合は、それらを上書きして、おそらくリストを使用する必要があります。F2F[1]F[2]F12F22F32F[(1,2)]F[(2,2)]F[(3,2)]

これは、numpy の 3x インポートを次のように変更することを前提としています。

import numpy as np
于 2013-03-10T20:11:21.317 に答える