如何在python中插入输入以查找积分值?

如何在python中插入输入以查找积分值?,python,input,integral,Python,Input,Integral,我在做一门物理课程,目前我被困在这一部分。 我试过了,但没能做对。 这里真的需要帮助 关于梯形法则, 问题:方程式f(x)=x4*(1-x)44/(1+x^2)中的积分值是多少 这是我试过的代码,但我找不到答案 from math import * def f(x): f(x)=x**4*(1-x)**4/(1+x**2) return f(x) def trap0 (f,a,b,n): h= float (b-a)/n s =0.5*( f(a)+f(b))

我在做一门物理课程,目前我被困在这一部分。 我试过了,但没能做对。 这里真的需要帮助

关于梯形法则, 问题:方程式f(x)=x4*(1-x)44/(1+x^2)中的积分值是多少

这是我试过的代码,但我找不到答案

from math import *

def f(x):
    f(x)=x**4*(1-x)**4/(1+x**2)
    return f(x)

def trap0 (f,a,b,n):
    h= float (b-a)/n
    s =0.5*( f(a)+f(b))
    for i in range (1,n):
        s=s+f(a+i*h)
    return s*h

你对
f
的定义是假的。这就是你需要写的全部内容:

def f(x):
    return x**4 * (1 - x)**4 / (1 + x**2)
我觉得剩下的代码很好,只要使用
a
b
的浮点参数调用
trap0

>>> trap0(math.cos, 0.0, math.pi/2, 100)
0.99997943823960744
如果您想用整数
a
b
来调用它,那么事情可能会出错,因为
f
最终会执行整数除法而不是浮点除法:

>>> f(4.0)
1219.7647058823529
>>> f(4)
1219
最简单的修复方法是强制除法为浮点,可能如下所示:

def g(x):
    return x**4 * (1 - x)**4 / (1.0 + x**2)

>>> g(4.0) == g(4)
True
在进行导入时被认为是不正确的。假设这只是一个十分钟的奇迹,这种导入方式是不受欢迎的,因为它们会使名称空间变得混乱,并覆盖本地变量(如果它们也在模块或源中分配)

考虑到您使用**over pow()意味着您实际上不需要从数学导入开始。但是,如果您使用的是Python2.x,您可能需要使用

from __future__ import division

Gareth对函数有正确的答案,尽管我只是抱怨样式问题

是的,是用python实现的。huu但是我也做不好
from __future__ import division