本文主要是介绍一个递推通项公式研究,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
递推关系为a(n) =pa(n−1) +qa(n−2) ,本项=前一项*2+前前项,具体如
1,1,3,7,17,41,99,239,……
一般的递推关系可以用以下方法
得两个解:
用第3项、第4项组两个方程:
解方程的结果
解方程的链接:https://mathdf.com/equ/cn/
Excel验证,有误差,是复杂的计算导致精度丢失:
python验证
import math def calculate_y(n): sqrt2 = math.sqrt(2) # 计算公式的各个部分 part1_numerator = 3 part1_denominator = 7 * 2 * sqrt2 - 20 part2_numerator = (1 - sqrt2)**3 * (3 * sqrt2 - 4) part3 = (1 + sqrt2)**3 # 计算整个表达式的值 first_term = ((1 + sqrt2)**n) * (part1_numerator - part2_numerator / part1_denominator) / part3 second_term = ((1 - sqrt2)**n) * (3 * sqrt2 - 4) / part1_denominator y = first_term + second_term return y # 获取用户输入
n = float(input("请输入n的值: ")) # 计算并打印y的值
y = calculate_y(n)
print(f"当n={n}时,y的值为: {y}")
结果,还行。
表达式
这篇关于一个递推通项公式研究的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!