Forgot password?
 Register account
View 1809|Reply 6

[函数] 实系数及复系数一元四次方程的公式解

[Copy link]

126

Threads

430

Posts

3152

Credits

Credits
3152

Show all posts

TSC999 Posted 2021-1-8 11:15 |Read mode
Last edited by TSC999 2021-1-8 11:25对于实数系数或复数系数的一元四次方程,有以下公式解(证明过程暂时略去)。
令:
实系数及复系数一元四次方程的公式解.png

上面这个图片中的公式,经选择各种不同的系数(包括复数系数),试算了几十次,均未发现有错误。

下页给出公式在 mathematica 中使用的代码。

126

Threads

430

Posts

3152

Credits

Credits
3152

Show all posts

 Author| TSC999 Posted 2021-1-8 11:30
  1. (* 一元四次方程 x^4+bx^3+cx^2+dx+e=0 的公式解 *)
  2. Clear["Global`*"];
  3. b = 11; c = 46; d = 96; e = 120;(* 结果正确,两对虚 *)
  4. b = 11; c = -46; d = 9.6; e = 120;  (* 结果正确,二实二虚 *)
  5. b = -11; c = -4.6; d = 0.9766; e = -23;  (* 结果正确,二实二虚 *)
  6. b = -1.231; c = -14.6; d = 20.9766; e = -2.7563;  (* 结果正确,四个实根 *)
  7. b = 11; c = 46; d = 96; e = 10;(* 结果正确,两实两虚 *)
  8. b = -1.1; c = 4.6; d = 96; e = 10;(* 结果正确,两实两虚 *)
  9. b = -1.1; c = 1 - I 4.6; d = Sqrt[9.6]; e = 10;(* 结果正确,两对虚 *)
  10. b = -1.1 I; c = 1 - I 4.6; d = Sqrt[9.6] + 2 I; e = 1;(* 结果正确,两对虚 *)
  11. b = 5 + 1.1 I; c = Sqrt[3] - I 4.6; d = Sqrt[9.6] + 2 I; e =
  12. 1 - I Sqrt[7.1];(* 结果正确,两对虚 *)
  13. b = -Sqrt[7]; c = 3; d = -Sqrt[7]; e = 1;(* 结果正确,两实两虚 *)
  14. u = 1728 b^2 e - 576 b c d + 128 c^3 - 4608 c e + 1728 d^2;    v =
  15. 48 b d - 16 c^2 - 192 e;
  16. p = Power[Sqrt[u^2 + 4 v^3] + u, (3)^-1];  q = Sqrt[(
  17. 6 p b^2 + Power[4, (3)^-1] p^2 - 16 c p - 2 Power[2, (3)^-1] v)/p];  
  18. A = Sqrt[1/
  19.    6 (6 b^2 - 16 c - (2 Power[2, (3)^-1] v)/p + Power[4, (3)^-1] p)];  
  20. m1 = 24 Sqrt[6] p b^2 + 8 Power[2, (6)^-1] Sqrt[3] p^2 -
  21.   64 Sqrt[6] c p - 8 Power[32, (6)^-1] Sqrt[3] v;  m2 = 24 p q b;
  22. n1 = 2 Power[2, (6)^-1] Sqrt[3] b p^2 + 8 Sqrt[6] b c p -
  23.   48 Sqrt[6] d p - 2 Power[32, (6)^-1] Sqrt[3] b v;  n2 =
  24. Power[4, (3)^-1] q p^2 + 8 c q p - 2 Power[2, (3)^-1] v q;
  25. x1 = (-(m1 + m2) + Sqrt[(m1 + m2)^2 - 192 p q (n1 + n2)])/(
  26. 96 p q); x2 = (-(m1 + m2) - Sqrt[(m1 + m2)^2 - 192 p q (n1 + n2)])/(
  27. 96 p q);
  28. x3 = ((m1 - m2) + Sqrt[(m1 - m2)^2 - 192 p q (-n1 + n2)])/(
  29. 96 p q); x4 = ((m1 - m2) - Sqrt[(m1 - m2)^2 - 192 p q (-n1 + n2)])/(
  30. 96 p q);
  31. Print["x1 = ", N[x1], ",  x2 = ", N[x2], ",  x3 = ", N[x3],
  32.   ",  x4 = ", N[x4]];
  33. NSolve[x^4 + b x^3 + c x^2 + d x + e == 0, x]
Copy the Code

126

Threads

430

Posts

3152

Credits

Credits
3152

Show all posts

 Author| TSC999 Posted 2021-1-8 11:35
上面这个程序中的最后一行,是用 NSolve 指令给出一元四次方程的标准数字解答,以便与程序给出的答案进行对照。两者应该相同。如果不一样,就是程序中有错误了。

方程采用不同的系数进行多轮计算,均没有发现有什么错误。

25

Threads

1011

Posts

110K

Credits

Credits
12665

Show all posts

战巡 Posted 2021-1-8 23:38
回复 2# TSC999

这是干嘛?重复发明轮子?

四次方程通解,参考费拉里公式.......
当然还不止这一种解法,还有用别的方法推的

126

Threads

430

Posts

3152

Credits

Credits
3152

Show all posts

 Author| TSC999 Posted 2021-1-9 11:02
回复 4# 战巡

上面这个结果正是使用了费拉里公式,这个公式只是给出了方法,但是没有给出最终的四个根的公式。网上查了许多给出四个根的公式,不是有错就是不尽人意(例如需要分别判定种种情况),还不一定能用于复数系数。

126

Threads

430

Posts

3152

Credits

Credits
3152

Show all posts

 Author| TSC999 Posted 2021-1-11 15:10
上面这个求根公式,一开始并没有想到它也能适用于复数系数。后来用复系数试了试,居然全都正确。

在实际问题中,如果只是想求出四次方程的数字解,而手头又有 mathematica 软件时,可以使用 $ NSolve[a x^4+b x^3+c x^2+d x+e= =0, x] $ 这条指令求解。

如果您没有 mathematica 软件,才有必要考虑使用本公式求出数字解。数学手册中给出的公式,全是先解一个三次方程,再解两个二次方程的办法,比较麻烦。

126

Threads

430

Posts

3152

Credits

Credits
3152

Show all posts

 Author| TSC999 Posted 2021-1-12 12:54
网上有下面这个一元四次方程的求根公式,经验证,同样也是适用于实系数和复系数的四次方程:
网上搜到的公式.png

Mobile version|Discuz Math Forum

2025-5-31 11:13 GMT+8

Powered by Discuz!

× Quick Reply To Top Edit