当前位置: 移动技术网 > IT编程>脚本编程>Python > Python实现复合五点高斯公式计算(代码实例)

Python实现复合五点高斯公式计算(代码实例)

2018年09月21日  | 移动技术网IT编程  | 我要评论

韩国惊现楼歪歪,南漂网事女董事长,貂皮大衣天价

被积函数

算法分析

这里使用分段的方式,这里的节点做了变换之后记得对于结果记得要做类似的变换,来确保这个数值没有问题。

注意到,这里本来想用跟之前的节点数目更少的方法来做分析的时候,发现解方程,算不出对应的系数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) / 2
    if point == 5:
        temp = [0.2369269, 0.4786287, 0.5688889, 0.4786287, 0.2369269]
        t = 0
        for i in range(point):
            t += (y.subs(x, xs[i]) * temp[i])
        return t * (end - begin) / 2
    return 0


def 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 = 5
    n = 4
    xl = np.linspace(-1, 1, n + 1)
    y = 1 / (1 + x ** 2)
    loss()

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网