复合五点高斯公式计算(Python实现)
生活随笔
收集整理的這篇文章主要介紹了
复合五点高斯公式计算(Python实现)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
被積函數
y=11+x2y=11+x2
x∈[?1,1]x∈[?1,1]
算法分析
這里使用分段的方式,這里的節點做了變換之后記得對于結果記得要做類似的變換,來確保這個數值沒有問題。
注意到,這里本來想用跟之前的節點數目更少的方法來做分析的時候,發現解方程,算不出對應的系數Ai值。
會陷入開頓當中,或者是報錯。
所以,這里就直接找了對應的數據做伸縮變換。直接求解。
代碼
import numpy as np from sympy import *def t(begin, end):xs = np.array([-0.9061798, -0.5384693, 0, 0.5384693, 0.9061798]) * (end - begin) / 2 + (begin + end) / 2if point == 5:temp = [0.2369269, 0.4786287, 0.5688889, 0.4786287, 0.2369269]T = 0for i in range(point):T += (Y.subs(x, xs[i]) * temp[i])return T * (end - begin) / 2return 0def loss(begin=-1, end=1):T = sum([t(xl[i], xl[i + 1]) for i in range(n)])I = integrate(Y, (x, begin, end))print('%.18f' % (I - T).evalf())if __name__ == '__main__':x = symbols('x')point = 5n = 4xl = np.linspace(-1, 1, n + 1)Y = 1 / (1 + x ** 2)loss()總結
以上是生活随笔為你收集整理的复合五点高斯公式计算(Python实现)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Sympy含pi等表达式转浮点数形式
- 下一篇: 复合高斯积分(节点数小于等于3的版本Py