注:本来只是单纯的一元N次方程根求解问题,结果我忽然对为什么一元五次以上方程没有求根公式产生好奇,结果就用了两个下午十分粗略的了解了一下阿贝尔定理的证明。
附录:1. 为何从一元五次方程开始就没有由有限次加、减、乘、除、开方运算构成的求根公式了?
https://www.zhihu.com/question/29316970
2. 一元多次方程通解(2-4次)
https://baijiahao.baidu.com/s?id=1617762902460982278&wfr=spider&for=pc
Day12:一元N次方程的根(略窥群论一二)
一. 问题背景:
求解任意一元N次方程的根。
二. 解决思路:
解析解:
求根公式(通解):
对于4次以下可参考附录利用通解进行求解。结果精确,但公式复杂且求解过程繁琐。
数值解:
1. 牛顿法:https://zh.wikipedia.org/wiki/%E7%89%9B%E9%A1%BF%E6%B3%95
2. Frobenius矩阵:
三. 算法实现:
def roots(*coeffs): #*coeffs传递任意数量实参
matrix = np.eye(len(coeffs) - 1, k=1) #生成对角矩阵。右上第一条对角线全1
matrix[:,0] = np.array(coeffs[1:]) / -coeffs[0]
return np.linalg.eigvals(matrix) #np.linalg.eigvals()求矩阵特征值
a = roots(1,1,1,1,1,1)
print(a)