Python實現多項式計算的四種方法

2021-08-14 05:40:02 字數 1538 閱讀 9111

分別實現多項式求值的四種運算,若針對不同規模的輸入值

a ,各演算法的執行時間,問題規模

n分別取10,50,100,150,200,300,400,500,10000,20000,50000,100000時繪製四種演算法執行時間的比較圖。

需要用四種不同的方法實現對多項式的求值,這裡採用的是直接代入以及三種不同的遞迴演算法。三種不同的遞迴思想分別為: 1)

pn(x

)=pn

−1(x

)+an

xn 2

)p=a

0,q=

1,q=

qx,p

=p+a

iq 3

)p′i

(x)=

p′i−

1(x)

x+an

−i

import numpy as np

import time

import math

import random

# root = np.array([1, 2, 1])

# p = np.poly1d(root)

# r = np.roots(p)

# print(r)

n = [10,50,100,150,200,300,400,500]

x = 1.2

#將多項式中x的值設為1.2

sum_time1 =

sum_time2 =

sum_time3 =

sum_time4 =

for ele in n:

a = np.random.random(ele)

p = np.poly1d(a)

time_start = time.time()

temp = np.polyval(p, x)

time_end = time.time()

temp = float('inf')

time_start = time.time()

for i in range(0, ele, 1):

temp = temp + a[i] * x**i

time_end = time.time()

# temp = int()

time_start = time.time()

q = 1

for i in range(0, ele, 1):

q = q * x

temp = temp + a[i] * q

time_end = time.time()

#temp = int()

time_start = time.time()

for i in range(0, ele, 1):

temp = temp * x + a[ele - i - 1]

time_end = time.time()

print(sum_time1)

print(sum_time2)

print(sum_time3)

print(sum_time4)

python 多項式求係數 多項式係數的計算

def evalpoly lst,x total 0 for power,coeff in enumerate lst starts at 0 by default total x power coeff return total 或者,可以使用列表,然後使用sum def evalpoly lst...

多項式計算

計算多項式的值 3x2 1 輸入 多項式係數的個數,x的值 輸出 表示式的值 include stdafx.h include iomanip.h include iostream.h define maxsize 100 此多項式是的係數是按照從a0的係數開始輸入的 當x n前的係數為0時,就輸入...

計算多項式

一元多項式的計算用鍊錶實現,本題需要注意的是 1.係數為 1的項只輸出負號,例如1 x 4 2x 8 3x 10 15x 14 4x 18 2.當所有輸入均為0時,輸出結果0 3.如果階數較多的那個多項式剩下的項的係數為0不要建立新的結點 否則會輸出0x 160x 17 include includ...