数学中国

 找回密码
 注册
搜索
热搜: 活动 交友 discuz
查看: 287|回复: 11

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

[复制链接]
发表于 2021-1-5 14:47 | 显示全部楼层 |阅读模式
本帖最后由 天山草@ 于 2021-1-11 13:21 编辑

解一般一元四次方程的方法:



上面这个方法取自前苏联大学用数学手册,1965 年第一版。

下面这个是根据上述方法用 mathematica 编程求一元四次方程的数字解。
:其实可用 NSolve[ax^4+bx^3+cx^2+dx+e==0, x] 直接求出方程的数字解)



下面是一元四次方程的公式解:



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
 楼主| 发表于 2021-1-5 20:49 | 显示全部楼层
本帖最后由 天山草@ 于 2021-1-7 13:18 编辑



以上这个公式解适用于任何实数系数和复数系数的一般一元四次方程。

用多组不同的方程系数进行公式验证,均未发现错误。

请各位先生自行检查验证,是否会有错误发生。







本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-1-7 13:26 | 显示全部楼层
已经用下列各组系数(包括实数和复数)进行过验证,结果均正确。

b = 11; c = 46; d = 96; e = 120;(* 结果正确,两对虚 *)
b = 11; c = -46; d = 9.6; e = 120;  (* 结果正确,二实二虚 *)
b = -11; c = -4.6; d = 0.9766; e = -23;  (* 结果正确,二实二虚 *)
b = -1.231; c = -14.6; d = 20.9766; e = -2.7563;  (* 结果正确,四个实根 *)
b = 11; c = 46; d = 96; e = 10;(* 结果正确,两实两虚 *)
b = -1.1; c = 4.6; d = 96; e = 10;(* 结果正确,两实两虚 *)
b = -1.1; c = 1 - I 4.6; d = Sqrt[9.6]; e = 10;(* 结果正确,两对虚 *)
b = -1.1 I; c = 1 - I 4.6; d = Sqrt[9.6] + 2 I; e = 1;(* 结果正确,两对虚 *)
b = 5 + 1.1 I; c = Sqrt[3] - I 4.6; d = Sqrt[9.6] + 2 I; e = 1 - I Sqrt[7.1];(* 结果正确,两对虚 *)
回复 支持 反对

使用道具 举报

发表于 2021-1-8 08:16 | 显示全部楼层
实用数学手册(第二版)

这里有关四次方程的解似乎都假定原方程为实系数4次方程。需要验证对一般4次方程的适用性

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

点评

复系数行不行? 最好还是给出四个根的解析公式。成品饭菜拿来就能吃,半成品饭菜还得自己回锅折腾。  发表于 2021-1-8 19:53
回复 支持 反对

使用道具 举报

发表于 2021-1-8 11:56 | 显示全部楼层
elim 发表于 2021-1-8 00:16
实用数学手册(第二版)

这里有关四次方程的解似乎都假定原方程为实系数4次方程。需要验证对一般4次方程 ...

对了,我新买的数学手册就是这个版本的。
回复 支持 反对

使用道具 举报

发表于 2021-1-8 12:02 | 显示全部楼层
天山草@老师老师您好!您还能登录数学研发论坛吗?请您帮忙问一下高手如下程序哪里错了?是我在网上抄录的vb程序。

Private Sub Command1_Click()
Dim xr() As Double, a As String
a = Trim(Text1)
ReDim xr(0 To Len(a) - 1)
For i1 = 0 To Len(a) - 1
xr(i1) = Mid(a, i1 + 1, 1)
  Next
Dim l As Long, le As Long, le1 As Long, n As Long, r As Long, p As Long, q As Long, m As Byte
Dim wr As Double, w1 As Double, wlr As Double, wl1 As Double, tr As Double, t1 As Double
Dim pi As Double, t As Double
Dim xi()
n = Len(a) '求数组大小,其值必须是2的幂
m = 0
l = 2
pi = 3.14159265358979
Do
l = l + l
m = m + 1
Loop Until l > n
n = l / 2
ReDim xi(n - 1)

l = 1
Do
  le = 2 ^ l
  le1 = le / 2
  wr = 1
  wi = 0
  t = pi / le1
  w1r = Cos(t)
  w1i = -Sin(t)
  r = 0
Do
  p = r
  Do
   q = p + le1
   
   tr = xr(q) * wr
   ti = xr(q) * wi
   
   xr(q) = xr(p) - tr
   xi(q) = xi(p) - ti
   xr(p) = xr(p) + tr
   xi(p) = xi(p) + ti
   p = p + le
Loop Until p > n - 1

wr = w1r
wi = w1i
r = r + 1
Loop Until r > le1 - 1
l = l + 1
Loop Until l > m

For i = 0 To n - 1 '仅输出模
   
   Text2 = Text2 & "  " & xr(i) & "+" & xi(i) & "i"
   Next
End Sub

Private Sub Command2_Click()
Text1 = ""
Text2 = ""
End Sub


输入:Text1 =80607000,结果:
21+0i  12.9497474683058+-10.9497474683058i  6.94974746830584+-4.94974746830583i  12.9497474683058+1.05025253169417i
  7+0i  3.05025253169417+-1.05025253169417i  -2.94974746830584+4.94974746830583i  3.05025253169415+10.9497474683058i
与正确值比较:12.9+10.9i, 2+7i, 3.1-1.1i, 7, 3.1+1.1i, 2-7i, 12.9-10.9i, 21也是不对。
回复 支持 反对

使用道具 举报

发表于 2021-1-10 21:31 | 显示全部楼层
elim老师!就是这本数学手册中的第628页的快速傅立叶变换,我看不懂,尤其是第630页这句话:
对于N=2^r的FFT算法,就是把一个N*N矩阵,分解为r个矩阵(其中每一个矩阵为N*N),使被分解的每一个矩阵具有复数乘法和复数加法次数最少的特性。这个矩阵如何分解的?
您有空能讲一下吗?请有空再弄吧!
这一点最重要,买这本书就是为了学习这一点,书中讲的太少了,仅仅一两页内容,弄不懂。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-1-11 20:12 | 显示全部楼层
上面这个求根公式,一开始并没有想到它也能适用于复数系数。后来用复系数试了试,居然全都正确。

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

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

使用道具 举报

发表于 2021-1-11 23:54 | 显示全部楼层
应该论证这个对实系数讲的公式对一般系数成立.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-1-12 13:30 | 显示全部楼层
网上有下面这个公式,方程可以是实系数,也可以是复系数。经验证没有发现什么错误。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|数学中国 ( 京ICP备05040119号 )

GMT+8, 2021-1-23 09:53 , Processed in 0.072266 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表