Python中多项式的积分
我们如何用python编写一个函数,返回两点(Python中多项式的积分,python,polynomials,polynomial-math,calculus,Python,Polynomials,Polynomial Math,Calculus,我们如何用python编写一个函数,返回两点(X_1和X_2)之间多项式的定积分 该函数接受3个参数: 多项式系数的列表(即,对于多项式f(x)=5x^4−2x+1,此列表变为A=[5,0,0,−2,1]) 实数X_1 实数X_2 给出了多项式的定积分公式,如 下面是我对该函数的尝试,但是输出返回0.2 def take_积分(A,X_1,X_2): 积分=0 对于范围内的i(len(A)): 积分=A*(X_2**(i+1)-X_1**(i+1))/(i+1) 返回积分 打印(取_积分(
X_1
和X_2
)之间多项式的定积分
该函数接受3个参数:
- 多项式系数的列表(即,对于多项式
,此列表变为f(x)=5x^4−2x+1
)A=[5,0,0,−2,1]
- 实数
X_1
- 实数
X_2
0.2
def take_积分(A,X_1,X_2):
积分=0
对于范围内的i(len(A)):
积分=A*(X_2**(i+1)-X_1**(i+1))/(i+1)
返回积分
打印(取_积分([1,2,1],0,3))
该功能的预期结果应为:
打印(取_积分([1,2,1],0,3))
21
打印(取_积分([5,0,0,-2,1],0,1))
1
在函数中,忽略X_1和X_2,并将它们都设置为0。因此,结果总是0,这里有几个点:
- 将
与之后的一大堆内容相乘会有一个严重的问题a
是一个列表,其余部分给出一个浮点数。计算机不一定知道该怎么做。想象一下,如果我告诉你用一组蜡笔乘以4。你可以猜到我想要什么,但最终,这并没有什么意义。您希望将列表的内容相乘,而不是列表本身A
- 根据你给出的计算多项式定积分的公式,我很确定应该有一个和,你把所有的项加在一起。这就是多项式的定义,对吗?目前,您正在计算每个术语并删除前一个术语。因此,您需要将它们相加
- 你的尝试也有点…“翻转”了指数者。由于系数列表
是按幂降序排序的(A
是最高幂的系数),因此在示例输入中执行A[0]
whenX_1**(i+1)
,其中i=0
将最高幂与最低指数相乘,而不是所需的A=[1,2,1]
。因此,您希望从左到右遍历列表,但是当您提升3
时,您的X
需要减少。谢天谢地,i
在解决这个问题上很方便len(A)
- 如果您执行
,您将根据公式得到len(A)-i
。这是正确的,因为i+1
将给出多项式中大于最高幂的一,而len(A)
从i
开始,小于0
的长度,因此根据公式给出A
i+1
- 如果您执行
def take_integral(A, X_1, X_2):
integral = 0
for i in range(len(A)):
integral += A[i]*(X_2**((len(A))-i) - X_1**((len(A))-i))/((len(A))-i)
return integral
print(take_integral([1, 2, 1], 0, 3))
21
print(take_integral([5, 0, 0, -2, 1], 0, 1))
1
谢谢你。我拿走了
X_1=0
和X_2=0
,现在函数输出0.2,一切正常?哇,感谢您的详细回复!这就把事情弄清楚了。没问题!很高兴我能帮忙。