你这题目怎么出错了?
害我反复验算,写了一大堆。
我用计算机进行验算,Python语言,注意因为这个幂级数是指数级递增的函数,所以当|x|>1时,函数结果会变态地大,所以将所有结果都同步取对数函数,以免数字太大,不好观察。
结果如下:
Python3代码如下,因为百度知道的编辑会自动去掉空格,而Python的语法是按空格缩进对齐来区分语句块的,所以下面代码中的空格我给替换为□,以保留缩进信息,使用前需要粘贴到记事本等文本编辑器中将□替换为空格方能正确运行。可以上Python123等网站上“在线编程”运行。
import math
def S(x):
□eps=0.001 #精度
□x2,x_2n1=x*x,x # x的平方,x^(2n+1)的临时变量(n=0时为x)
□n_fab,n=1,1
□sum=x_2n1 #先加第一项(0的阶乘不方便运算)
□while True:
□□try:□#当算到数据溢出时跳出
□□□n_fab*=n□# == n!
□□□x_2n1*=x2 # == x^(2n+1)
□□□add=x_2n1/n_fab□#第n项
□□□sum+= add□□ #前n项和
□□□n+=1□□#下一个n呗
□□□if abs(add)<eps:break
□□except:break
□return sum
print("x\t定义法\t\t我的函数\tD选项函数")
print("x\tln(S(x))\tln(x*exp(x²))\tln(2x²*exp(x²))")
for i in range(1,80):
□x=i/10
□S1=S(x) #按定义法计算的结果
□Smy=x*math.exp(x*x) # == x·exp(x²)
□Syou=(2*x*Smy)□ # == 2x²·exp(x²)
□print("%.2f\t%.3f\t\t%.3f\t\t%.3f"%(x,math.log(S1),math.log(Smy),math.log(Syou)))