关于简单积分的递推式求值稳定算法与不稳定算法的比较

题目如下:
在这里插入图片描述这个是数值分析课程的一个实验报告,题目其实相当简单。无非就是几个循环的事情。
1.求递推式

关于简单积分的递推式求值稳定算法与不稳定算法的比较_第1张图片
2.求出n=40的值,我在这里采用割分法求n=40的值。
3.编程实现。

import numpy as np
import math
# 不稳定算法递推
ex1_I = np.zeros(40)
ex1_I[0] = math.log(1.2)
for i in range(1,40):
    ex1_I[i] = 1/(i+1) - 5 * ex1_I[i-1]
# 稳定算法递推
#1.割分法求I40
dx = 1 / 1000                   # 切割
all_x = np.linspace(0,1,1000)
y = np.power(all_x,40)
y = y / (all_x + 5)
mianji = y*dx
ex2_I = np.zeros(40)
ex2_I[39] = np.sum(mianji)
for i in range(38,-1,-1):
     ex2_I[i] = 1 / ( 5 * (i+1) ) - 1/5 * ex2_I[i+1]
 for n in  range(40):
    print('n = %d ,稳定递推 I = %f,非稳定递推 I = %f\n'%(n+1,ex2_I[n],ex1_I[n]))

你可能感兴趣的:(关于简单积分的递推式求值稳定算法与不稳定算法的比较)