0
のために使用しなくても、私はそれがループのために使用して作成する方法を知っているし、それがこののpython積分計算ループ
import numpy as np;
def numint(f,alpha,beta,N,b,c):
s = np.size(b);
x = np.linspace(alpha,beta,N);
h = x[1]-x[0];
result = 0;
result1 = 0;
for j in range(1,N+1):
for i in range(1,s+1):
result1+=b[i]*f(x[j-1]+h*c[i]);
result+=h*result1;
result1 = 0;
return result;
ようになります。この整数

を計算することができますPythonプログラムを、実装したいですループなし
は、私はそれがこのようなものであるべきだと思う:
def numint(f,alpha,beta,N,b,c):
s = np.size(b);
x = np.linspace(alpha,beta,N);
h = np.ones(N,dtype=int)*(x[1] - x[0]);
result = 0;
result = np.sum(h[1:N+1] * np.sum(b*(f(x[0:N]+h[0]*c))));
return result;
しかし、結果の第二部= np.sum ...間違っANです私はそれを修正する方法を知らない。助言がありますか ?
EDIT:先端として
def numint(f,alpha,beta,N,b,c):
s = np.size(b);
x = np.linspace(alpha,beta,N);
h = np.ones(N,dtype=int)*(x[1] - x[0]);
functionResult = f(x+h*c);
dif = np.diff(functionResult);
result = 0;
result = np.sum(h[1:N+1] * np.sum(b*dif.sum()));
return result;
:それら ベクトル化するが、私はそれ
申し訳ありませんが、私はどのように正確に私のコードでこれを使用するか分からない。私の関数は、数値積分のための直交方程式を計算する必要があります。このdiff関数の使い方を教えてください。 –
b = f(x + h * c) dif = np.diff(b); これを使用しますか? –
あなたの編集内容が私に見せた内容であるかどうか教えていただけますか? –