import math def fun229(x): #定义方程 fun229=x*math.exp(x)-1 return fun229 #用抛物线法 #设用表7—10的前三个值 x0=0.5 x1=0.6 x2=0.56532 #作为计算值 # print("计算三个方程计算分别结果{},{},{}".format(fun229(x0),fun229(x1),fun229(x2))) # fun229[x1,x0] fun229[x2,x1] #求一阶均差 def YJJC(a1,a0): fun_1=(fun229(a1)-fun229(a0))/(a1-a0) # print(fun_1) return fun_1 #求二阶均差 def ERJC(a2,a1,a0): fun_2=(YJJC(a2,a0)-YJJC(a2,a1))/(a0-a1) return fun_2 #求w的值 w=f[x2,x1]+f[x2,x1,x0](x2-x1)=2.75732 def w(): w=YJJC(x2,x1)+ERJC(x2,x1,x0)*(x2-x1) return w #最后带入公式 def x3(): #math.sqrt()会报错出现数据类型不兼容错误,所以用的math.pow() fun1=x2-2*fun229(x2)/(w()+math.pow(w()**2-4*fun229(x2)*ERJC(x2,x1,x0), 0.5)) return fun1
if __name__ == '__main__': # 调用解一阶均差 print("""求解f[x1,x0]得 {}""".format(YJJC(x1, x0))) print("""求解f[x2,x1]得 {}""".format(YJJC(x2, x1))) #调用二阶均差 print("""求解f[x2,x1,x0]结果为: {}""".format(ERJC(x2,x1,x0))) #调用w print("""w的最后值为 {}""".format(w())) print("""最后结果为 {}""".format(x3()))
运行结果: