0

私は物理学の授業に取り組んでおり、現在このセクションで立ち往生しています。試してみましたが、うまくいきませんでした。ここで本当に助けが必要です。

台形の法則について、質問: 方程式 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
4

2 に答える 2

2

あなたの定義fは偽物です。これはあなたが書く必要があるすべてです:

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

trap0と の浮動小数点引数を使用しaて呼び出す限り、コードの残りの部分は私には良さそうですb

>>> trap0(math.cos, 0.0, math.pi/2, 100)
0.99997943823960744

整数で呼び出したい場合、浮動小数点除算の代わりに整数除算を行うため、問題が発生する可能性がaあります。bf

>>> 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
于 2010-11-22T16:18:29.627 に答える
0
from math import *

インポートを行うときに正しくないと見なされます。これはほんの 10 分間の不思議ですが、このスタイルのインポートは名前空間を乱雑にし、モジュールまたはソースでも割り当てられている場合はローカル変数を上書きするため、眉をひそめられます。

** を pow() で使用したことを考えると、最初から数学のインポートを実際に必要としないことを意味します。ただし、python 2.x を使用している場合は、使用することをお勧めします。

from __future__ import division

スタイルの問題について不平を言っているだけですが、ガレスは関数に対して正しい答えを持っています

于 2010-11-22T16:51:21.817 に答える