Python实现多项式计算的四种方法
2017-12-30 22:21
1016 查看
问题描述
分别实现多项式求值的四种运算,若针对不同规模的输入值a,各算法的运行时间,问题规模n分别取10,50,100,150,200,300,400,500,10000,20000,50000,100000时绘制四种算法运行时间的比较图。解题方法
需要用四种不同的方法实现对多项式的求值,这里采用的是直接代入以及三种不同的递归算法。三种不同的递归思想分别为:1)Pn(x)=Pn−1(x)+anxn
2)P=a0,Q=1,Q=Qx,P=P+aiQ
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() Sum_time1.append(time_end - time_start) temp = float('Inf') time_start = time.time() for i in range(0, ele, 1): temp = temp + a[i] * x**i time_end = time.time() Sum_time2.append(time_end - time_start) # 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() Sum_time3.append(time_end - time_start) #temp = int() time_start = time.time() for i in range(0, ele, 1): temp = temp * x + a[ele - i - 1] time_end = time.time() Sum_time4.append(time_end - time_start) print(Sum_time1) print(Sum_time2) print(Sum_time3) print(Sum_time4)
相关文章推荐
- python实现计算倒数的方法
- python实现计算资源图标crc值的方法
- python实现的四种抽样方法
- python计算文件的行数和读取某一行内容的实现方法
- python计算文件的行数和读取某一行内容的实现方法
- python实现计算倒数的方法
- Python 26进制计算实现方法
- 罗马数字的计算方法和利用python实现其转换(1)
- 【转载】python计算文件的行数和读取某一行内容的实现方法
- Python 实现字符串反转的四种方法
- 推荐系统中的相似度计算方法总结及实现代码(python)
- python计算文件的行数和读取某一行内容的实现方法
- Python下载网络文本数据到本地内存的四种实现方法示例
- python 实现单例模式的四种方法
- 余弦方法计算相似度算法--Python实现 Java实现
- python 中自己写方法 计算向量长度 / 实现向量归一化
- python简单实现计算过期时间的方法
- 数值计算方法python实现
- python简单实现计算过期时间的方法
- python计算文件的行数和读取某一行内容的实现方法