我正在编写一个程序,它求解区间 0:9 内的函数,其中步长为 0.005。该程序需要 1800 次计算,并需要一种方法来查找所使用的函数和 x 参数的最大值。
为了计算函数 1800 次 (9/0.005)、找到它的最大值并输出用于计算最大值的相关参数值,推荐使用的方法和循环是什么?
我的想法是应该生成 2 个列表,一个用于范围/间隔(1800 个项目),另一个用于计算值(也是 1800 个)。然后使用列表索引或其他方法在“计算数组”中找到 max 并在另一个数组中找到相关的 x 参数。
from operator import itemgetter
import math
myfile = open("result.txt", "w")
data = []
step=0.005
rng=9
lim=rng/step
print(lim)
xs=[x * step for x in range(rng)]
lim_int=int(lim)
print(xs)
for i in range(lim_int):
num=itemgetter(i)(xs)
x=math.sin(num)* math.exp(-num/100)
print(i, x)
data.append(x)
for i in range(rng):
text = str(i)
text2 = str(data[i])
print(text, text2)
myfile.write(text + ' ' + text2 + '\n')
i=1
while i < rng:
i=i+1
num2=itemgetter(i)(xs)
v=math.sin(num2)* math.exp(-num2/100)
if v==max(data):
arg=num2
break
print('largest function value', max(data))
print('function argument value used', arg)
myfile.close()
繁花如伊
相关分类