0
我想实现一个Python程序,它可以计算出这个积分 蟒蛇积分计算,而无需使用for循环
我知道如何使用For循环,使它,它会是这个样子
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;
没有环路我想应该是这样的:
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 ...是错误的d我不知道如何解决它。有什么建议么 ?
编辑:
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;
有一个小窍门:矢量化他们 ,但我不知道如何使用它
噢,抱歉,但我不确定在我的代码中如何使用它。我的函数应该计算数值积分的积分公式。你能告诉我如何使用这个差异函数。 –
b = f(x + h * c) dif = np.diff(b); 然后用这个? –
你能告诉我,我的编辑是你给我看的吗? –