美文网首页
11-04:多项式表达

11-04:多项式表达

作者: zengw20 | 来源:发表于2020-11-04 20:17 被阅读0次

P_n(x)=a_0+a_1x+...+a_{n-1}x^{n-1}+a_nx^n

class Poly(object):
    def __init__(self,An,x):
        '''
        @author:zengwei
        parameter:多项式的系数,默认从低次项到高次项;list类型
        input:输入用于计算多项式值的x
        '''
        self.parameter = An
        #self.__parameter = An  # 用于设置parameter为私有变量,配合set_parameter方法修改parameter
        self.input = x
    
    def set_parameter(self):
        pass
    
    def directPoly(self):
        '''用循环的方法写多项式'''
        result = 0
        for k in range(len(self.parameter)):
            result = result + self.input**k*self.parameter[k]
        return result
    
    def diff_directPoly(self):
        '''directPoly()函数对应的多项式求导'''
        result = 0
        for k in range(1,len(self.parameter)):
            result = result + self.input**(k-1)*self.parameter[k]
        return result
    
    def QinJiushao(self):
        '''用递推的方法写秦九韶多项式写法'''
        N = len(self.parameter) - 1
        Input = self.input
        def Iterate(Input,k):
            if k == N:
                return self.parameter[k]
            return self.parameter[k]+ Iterate(Input,k+1)*Input
        
        return Iterate(self.input,0)
    
    def _QinJiushao(self):
        '''用递推的方法写秦九韶多项式写法之二'''
        from functools import reduce 
        result = reduce(lambda a,b: a*self.input + b, self.parameter[::-1])
        return result
    
    def numpyPoly(self):
        '''用numpy内置函数写多项式'''
        import numpy as np
        P = np.poly1d(self.parameter[::-1])  # 从高次项到低次项
        return P(self.input)
    
    def BackwardPoly(self):
        '''将parameter做为多项式的根,反推多项式;循环写法'''
        result = 1
        for k in range(len(self.parameter)):
            result = result*(self.input - self.parameter[k])
        return result
    
    def _BackwardPoly(self):
        '''将parameter做为多项式的根,反推多项式;用np.prod()函数'''
        import numpy as np
        return np.prod(self.input - np.array(self.parameter))
    
    def diff_BackwardPoly(self):
        '''对应_BackwardPoly()函数,求其在x处的导数'''
        import numpy as np
        temp = self.input - np.array(self.parameter)
        P_ = np.prod(temp)
        result = 0
        for k in range(len(self.parameter)):
            result = result + P_/temp[k]
        return result
    
    def numpyBackwardPoly():
        '''将parameter做为多项式的根,反推多项式;用numpy内部函数'''
        import numpy as np
        P = np.poly1d(self.parameter,True)
        return P(self.input)

P_n(x)=[[(a_nx+a_{n-1})x+a_{n-2}]x+...+a_1]x+a_0
b_n=a_n;b_{n-1}=a_{n-1}+b_nx

相关文章

  • 11-04:多项式表达

  • MATLAB多项式

    9 多项式的表达式及其操作 9.1 多项式的表达式和创建 1.多项式的表达式 MATLAB用一个行向量来表示多项式...

  • scipy

    SciPy求函数的积分 单积分 双重积分 多项式函数 poly1d 表达式 举例多项式 多项式的系数可以表示为数组...

  • Java 数组 编程练习题

    1、 多项式加法 题目内容: 一个多项式可以表达为x的各次幂与系数乘积的和,比如: 现在,你的程序要读入两个多项式...

  • 8.多项式加法

    题目内容:一个多项式可以表达为x的各次幂与系数乘积的和,比如: 输入格式:总共要输入两个多项式,每个多项式的输入格...

  • 高等代数理论基础3:一元多项式

    一元多项式 定义:形式表达式称为系数在数域P上的一元多项式 其中 项与系数 多项式中 定义:称为i次项,称为i次项...

  • 机器学习A-Z~多项式回归

    之前的文章中已经学习过多元线性回归,现在来讲讲多项式回归。首先说说多项式线性回归,表达式可以表示为:这个表达式和多...

  • 数据结构与算法(C#实现)002--线性表的应用之多项式相加

    一、多项式的表示   一元多项式的数学表达式为:$f(x) = a_0 + a_1x + \cdot\cdot\c...

  • 常规方法

    拟合方法 多项式拟合 f=fittype('表达式','independent','x','coefficient...

  • ECC算法

    ECC算法基于一条椭圆曲线。曲线是一个多项式的图形表达。多项式就有常量。那么常量就是曲线的部分参数。 随便在曲线上...

网友评论

      本文标题:11-04:多项式表达

      本文链接:https://www.haomeiwen.com/subject/gkcnvktx.html