我曾多次嘗試更改代碼以創建 S 所需值的陣列。
import math as math
def trap(f,a,b):
return ( f(a) f(b) ) / 2 * (b-a)
a = 0
b = 2
n_vals = [2**p for p in range (0,21)]
h_vals = [(b-a)/n for n in n_vals]
f= lambda x: math.exp(x) x**2
for n,h in zip(n_vals,h_vals):
S = 0
for k in range(n):
thisA = a k*h
thisB = a (k 1)*h
S = trap(f,thisA,thisB)
print(f"Integral for {n} partitions = {S}")
有沒有辦法產生一個讀取串列
I = [12.38905609893065, 9.91280987792437, 9.271610109481282, ...]
uj5u.com熱心網友回復:
什么是“必需”值?如果是所有這些,您可以初始化一個串列并附加到它。
import math as math
def trap(f,a,b):
return ( f(a) f(b) ) / 2 * (b-a)
a = 0
b = 2
n_vals = [2**p for p in range (0,21)]
h_vals = [(b-a)/n for n in n_vals]
f= lambda x: math.exp(x) x**2
output = []
for n,h in zip(n_vals,h_vals):
S = 0
for k in range(n):
thisA = a k*h
thisB = a (k 1)*h
S = trap(f,thisA,thisB)
print(f"Integral for {n} partitions = {S}")
output.append(S)
print(output)
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/336410.html
