前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >数值微分|多项式的导数计算

数值微分|多项式的导数计算

作者头像
fem178
发布2020-08-13 15:53:24
1.2K0
发布2020-08-13 15:53:24
举报

在数值积分推导辛普森公式时就是将函数插值成为多项式形式,原因在于多项式的简洁。任何初等函数都可以用泰勒公式展开成多项式的形式,然后在多项式的基础上作求导运算。也可以用别的插值方法,比如拉格朗日插值,样条插值,埃尔米特插值等等。

代码语言:javascript
复制
##python定义多项式就是将多项式系数保存在一个列表中
p = a[n]
for i in range(1,n+1):                           
    p = a[n-i] + p*x

代码语言:javascript
复制
"""
p = a[0] + a[1]*x + a[2]*xˆ2 +...+ a[n]*xˆn
计算多项式p的一阶导数dp以及二阶导数ddp

"""

class Polynomials:
    def __init__(self, a):
        self.a = a

    
    # 计算多项式的一阶导数dp以及二阶导数ddp
    def evalPolynomials(self,x):
        n = len(self.a) - 1
        p = self.a[n]
        dp = 0.0 
        ddp = 0.0

        for i in range(1,n+1):
            ddp = ddp*x + 2.0*dp
            dp = dp*x + p
            p = p*x + self.a[n-i]

        return p,dp,ddp

### 创建多项式对象px = 1 + x + 2xˆ2 + 3xˆ3 + 4xˆ4
px = Polynomials([1,1,2,3,4])

## px在x=1处的一阶导数与二阶导数
[p0,p1,p2] = px.evalPolynomials(1)

print(p0,p1,p2)
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-08-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数值分析与有限元编程 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档