0

これは私のコードです

 14 def sum(output):
 15     result = 0
 16     for x, w in zip(output[0], output[1]):
 17         result+=w*np.exp(-((((b-a)/2.0)*x)+((a+b)/2.0))**2)
 18         pprint(w*exp(-((((b-a)/2.0)*x)+((a+b)/2.0))**2))
 19     return ((b-a)/2.0)*result

このコードでは、関数を呼び出すと、sum端末での出力が次のように出力されます。

0.548543700179284
0.6
0.692267362730138
0.0
0.252818105473090
0.6

しかしもし

 14 def sum(output):
 15     result = 0
 16     for x, w in zip(output[0], output[1]):
 17         result+=w*np.exp(-((((b-a)/2.0)*x)+((a+b)/2.0))**2)
 18     return ((b-a)/2.0)*result
 19
 20 pprint(w*np.exp(-((((b-a)/2.0)*x)+((a+b)/2.0))**2))

それは美しい方程式を出力します(つまり、pprint()はうまくいきます!)。

最初のコードが 2 番目のコードのように美しい方程式を出力できないのはなぜですか?

4

1 に答える 1

1

これ以上のコンテキストがないと言いにくいですが、おそらく、wとが関数の内側と外側のx両方で定義されているためです。sum()

また、2 つの行は同じではないことに注意してください。

pprint(w*exp(-((((b-a)/2.0)*x)+((a+b)/2.0))**2))
pprint(w*np.exp(-((((b-a)/2.0)*x)+((a+b)/2.0))**2))
于 2014-04-01T12:39:04.700 に答える