Day12:一元N次方程的根(略窥群论一二)

注:本来只是单纯的一元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)

猜你喜欢

转载自blog.csdn.net/A994850014/article/details/96142368