ysr 发表于 2022-8-17 09:07

解一个关于x的4次方程

方程如下,请问如何解,并验证结果是否正确:

x^4+2x^3+3x^2+4x+5=0.

Ysu2008 发表于 2022-8-17 11:19

Maxima 输出:

\(x_1=-\frac{\sqrt{\frac{4}{\sqrt{\frac{{{\left( 10 \% i-5\right) }^{\frac{2}{3}}}-{{\left( 10 \% i-5\right) }^{\frac{1}{3}}}+5}{{{\left( 10 \% i-5\right) }^{\frac{1}{3}}}}}}-{{\left( 10 \% i-5\right) }^{\frac{1}{3}}}-\frac{5}{{{\left( 10 \% i-5\right) }^{\frac{1}{3}}}}-2}}{2}-\frac{\sqrt{\frac{{{\left( 10 \% i-5\right) }^{\frac{2}{3}}}-{{\left( 10 \% i-5\right) }^{\frac{1}{3}}}+5}{{{\left( 10 \% i-5\right) }^{\frac{1}{3}}}}}}{2}-\frac{1}{2}\)

\(x_2=\frac{\sqrt{\frac{4}{\sqrt{\frac{{{\left( 10 \% i-5\right) }^{\frac{2}{3}}}-{{\left( 10 \% i-5\right) }^{\frac{1}{3}}}+5}{{{\left( 10 \% i-5\right) }^{\frac{1}{3}}}}}}-{{\left( 10 \% i-5\right) }^{\frac{1}{3}}}-\frac{5}{{{\left( 10 \% i-5\right) }^{\frac{1}{3}}}}-2}}{2}-\frac{\sqrt{\frac{{{\left( 10 \% i-5\right) }^{\frac{2}{3}}}-{{\left( 10 \% i-5\right) }^{\frac{1}{3}}}+5}{{{\left( 10 \% i-5\right) }^{\frac{1}{3}}}}}}{2}-\frac{1}{2}\)

\(x_3=-\frac{\sqrt{-\frac{4}{\sqrt{\frac{{{\left( 10 \% i-5\right) }^{\frac{2}{3}}}-{{\left( 10 \% i-5\right) }^{\frac{1}{3}}}+5}{{{\left( 10 \% i-5\right) }^{\frac{1}{3}}}}}}-{{\left( 10 \% i-5\right) }^{\frac{1}{3}}}-\frac{5}{{{\left( 10 \% i-5\right) }^{\frac{1}{3}}}}-2}}{2}+\frac{\sqrt{\frac{{{\left( 10 \% i-5\right) }^{\frac{2}{3}}}-{{\left( 10 \% i-5\right) }^{\frac{1}{3}}}+5}{{{\left( 10 \% i-5\right) }^{\frac{1}{3}}}}}}{2}-\frac{1}{2}\)

\(x_4=\frac{\sqrt{-\frac{4}{\sqrt{\frac{{{\left( 10 \% i-5\right) }^{\frac{2}{3}}}-{{\left( 10 \% i-5\right) }^{\frac{1}{3}}}+5}{{{\left( 10 \% i-5\right) }^{\frac{1}{3}}}}}}-{{\left( 10 \% i-5\right) }^{\frac{1}{3}}}-\frac{5}{{{\left( 10 \% i-5\right) }^{\frac{1}{3}}}}-2}}{2}+\frac{\sqrt{\frac{{{\left( 10 \% i-5\right) }^{\frac{2}{3}}}-{{\left( 10 \% i-5\right) }^{\frac{1}{3}}}+5}{{{\left( 10 \% i-5\right) }^{\frac{1}{3}}}}}}{2}-\frac{1}{2}\)

ysr 发表于 2022-8-17 11:26

本帖最后由 ysr 于 2022-8-17 07:29 编辑

Ysu2008 发表于 2022-8-17 03:19
Maxima 输出:

\(x_1=-\frac{\sqrt{\frac{4}{\sqrt{\frac{{{\left( 10 \% i-5\right) }^{\frac{2}{3}}}-{ ...

谢谢您的精彩解答!但是这个不是数值解,答案无法验证。我用两种方法做的程序,分别给出结果请各位老师看看对不对?

如下这个是用《数学手册》的方法做的:(结果已经修改,代码也是修改过了)
输入1:a=1,b=2,c=3,d=4,e=5;输出结果1:    x1,2=-0.7790981609+ -0.7870071020i,x3,4=-0.2209018391+ -1.6929245012i

代码如下:
Private Sub Command1_Click()
Dim a, b, c, d, f, g
Dim ja, jb, jc
k = DeleteSpace(Text1.Text)
ja = DeleteSpace(Text2.Text)
jb = DeleteSpace(Text3.Text)
jc = DeleteSpace(Text4.Text)
jd = DeleteSpace(Text5.Text)
sd1 = DeleteSpace(Text15.Text)
If Abs(Val(sd1)) <= 10 Then
sd = 10 + 2
Else
If Len(sd1) > 3 And Abs(Val(sd1)) > 300 Then
sd = 300 + 2
Else
sd = Int(Abs(Val(sd1))) + 2
End If
End If

a2 = zhengliys2(Trim(ja), Val(sd))
b2 = zhengliys2(Trim(jb), Val(sd))

c2 = zhengliys2(Trim(jc), Val(sd))
D2 = zhengliys2(Trim(jd), Val(sd))
k2 = zhengliys2(Trim(k), Val(sd))
If MBJC(Trim(k2), 0) = 0 Then
Text4.Text = "a 不能为 0"
   Text5.Text = "a 为 0可能已不是1元4次方程"
Else
   
a3 = mcc2(Trim(a2), Trim(k2), Val(sd))
b3 = mcc2(Trim(b2), Trim(k2), Val(sd))
c3 = mcc2(Trim(c2), Trim(k2), Val(sd))
d3 = mcc2(Trim(D2), Trim(k2), Val(sd))
jk = 1 & String(sd, "0")
ja1 = tjfh(Trim(b3), -1)
jb1 = mpc2(mbc2(Trim(a3), Trim(c3), Val(sd)), mbc2(4 & String(sd, "0"), Trim(d3), Val(sd)))
jc1 = mpc2(mpc2(mbc2(4 & String(sd, "0"), mbc2(Trim(b3), Trim(d3), Val(sd)), Val(sd)), mbc2(Trim(c3), Trim(c3), Val(sd))), mbc2(mbc2(Trim(a3), Trim(a3), Val(sd)), Trim(d3), Val(sd)))
y = jie3cifc(Trim(ja1), Trim(jb1), Trim(jc1), Trim(jk), Val(sd))
Y1 = zhengliys2(Trim(y), Val(sd))
End If
Text6 = zhengliys2(Trim(y), Val(sd))
Text8 = y
y8 = mpc2(mbc2(Trim(Y1), Trim(a3), Val(sd)), mbc2(2 & String(sd, "0"), Trim(b3), Val(sd)))
za = 1 & String(sd, "0")
zb = mbbc2(qdfh(mpc3(mpc2(mbc2(Trim(a3), Trim(a3), Val(sd)), mbc2(4 & String(sd, "0"), Trim(b3), Val(sd))), mbc2(4 & String(sd, "0"), Trim(Y1), Val(sd)))), Val(sd))
zc = mbbc2(qdfh(mpc2(mbc2(Trim(Y1), Trim(Y1), Val(sd)), mbc2(4 & String(sd, "0"), Trim(d3), Val(sd)))), Val(sd))
zb1 = mcc2(mpc3(Trim(a3), Trim(zb)), 2 & String(sd, "0"), Val(sd))
zb2 = mcc2(mpc2(Trim(a3), Trim(zb)), 2 & String(sd, "0"), Val(sd))
zc1 = mcc2(mpc3(Trim(Y1), Trim(zc)), 2 & String(sd, "0"), Val(sd))
zc2 = mcc2(qdfh(mpc2(Trim(Y1), Trim(zc))), 2 & String(sd, "0"), Val(sd))

If mbjc2(Trim(y8), 0) > 0 Then
y3 = jie2cifc(Trim(za), Trim(zb1), Trim(zc1), Val(sd))
y4 = jie2cifc(Trim(za), Trim(zb2), Trim(zc2), Val(sd))
Else
y3 = jie2cifc(Trim(za), Trim(zb1), Trim(zc2), Val(sd))
y4 = jie2cifc(Trim(za), Trim(zb2), Trim(zc1), Val(sd))
End If
Text9 = y3
Text10 = y4
Label1.Caption = Val(Label1.Caption) + 1
Text14.Text = Text14.Text & "输入" & Label1.Caption & ":" & "a=" & k & ",b=" & ja & ",c=" & jb & ",d=" & jc _
& ",e=" & jd & ";输出结果" & Label1.Caption & ":    " & "x1,2=" & Text9.Text & ",x3,4=" & Text10.Text
End Sub

小fisher 发表于 2022-8-17 11:29

x^4+2x^3+3x^2+4x+5=(x^2+2)(x+1)^2+3=0
方程无实数解

ysr 发表于 2022-8-17 11:38

ysr 发表于 2022-8-17 03:26
谢谢您的精彩解答!但是这个不是数值解,答案无法验证。我用两种方法做的程序,分别给出结果请各位老师 ...

下面这个是另一个方法的程序结果:
输入1:a=1,b=2,c=3,d=4,e=5;输出结果1:    x1,2=-0.7790981610+ -1.3540192270,x3,4=-0.2209018390+ -1.6929245011i

代码如下:
Private Sub Command1_Click()
Dim a, b, c, d, f, g
Dim ja, jb, jc
k = DeleteSpace(Text1.Text)
ja = DeleteSpace(Text2.Text)
jb = DeleteSpace(Text3.Text)
jc = DeleteSpace(Text4.Text)
jd = DeleteSpace(Text5.Text)
sd1 = DeleteSpace(Text15.Text)
If Abs(Val(sd1)) <= 10 Then
sd = 10 + 2
Else
If Len(sd1) > 3 And Abs(Val(sd1)) > 300 Then
sd = 300 + 2
Else
sd = Int(Abs(Val(sd1))) + 2
End If
End If

a2 = zhengliys2(Trim(ja), Val(sd))
b2 = zhengliys2(Trim(jb), Val(sd))

c2 = zhengliys2(Trim(jc), Val(sd))
D2 = zhengliys2(Trim(jd), Val(sd))
k2 = zhengliys2(Trim(k), Val(sd))
If MBJC(Trim(k2), 0) = 0 Then
Text4.Text = "a 不能为 0"
   Text5.Text = "a 为 0可能已不是1元4次方程"
Else
   
a3 = mcc2(Trim(a2), Trim(k2), Val(sd))
b3 = mcc2(Trim(b2), Trim(k2), Val(sd))
c3 = mcc2(Trim(c2), Trim(k2), Val(sd))
d3 = mcc2(Trim(D2), Trim(k2), Val(sd))
jk = 8 & String(sd, "0")
ja1 = mbc2("-4" & String(sd, "0"), Trim(b3), Val(sd))
jb1 = mpc2(mbc2(2 & String(sd, "0"), mbc2(Trim(a3), Trim(c3), Val(sd)), Val(sd)), mbc2(8 & String(sd, "0"), Trim(d3), Val(sd)))
jc1 = mpc2(mbc2(Trim(d3), mpc2(mbc2(4 & String(sd, "0"), Trim(b3), Val(sd)), mbc2(Trim(a3), Trim(a3), Val(sd))), Val(sd)), mbc2(Trim(c3), Trim(c3), Val(sd)))
y = jie3cifc(Trim(ja1), Trim(jb1), Trim(jc1), Trim(jk), Val(sd))
Y1 = zhengliys2(Trim(y), Val(sd))
End If
Text6 = zhengliys2(Trim(y), Val(sd))
Text8 = y
za = 1 & String(sd, "0")
z2 = mpc2(mpc3(mbc2(8 & String(sd, "0"), Trim(Y1), Val(sd)), mbc2(Trim(a3), Trim(a3), Val(sd))), mbc2(4 & String(sd, "0"), Trim(b3), Val(sd)))
z2 = mbbc2(qdfh(Trim(z2)), Val(sd))

zb1 = mcc2(mpc3(Trim(a3), Trim(z2)), 2 & String(sd, "0"), Val(sd))
zb2 = mcc2(mpc2(Trim(a3), Trim(z2)), 2 & String(sd, "0"), Val(sd))
zc1 = mpc3(Trim(Y1), mcc2(mpc2(mbc2(Trim(a3), Trim(Y1), Val(sd)), Trim(c3)), Trim(z2), Val(sd)))
zc2 = mpc2(Trim(Y1), mcc2(mpc2(mbc2(Trim(a3), Trim(Y1), Val(sd)), Trim(c3)), Trim(z2), Val(sd)))
y3 = jie2cifc(Trim(za), Trim(zb1), Trim(zc1), Val(sd))
y4 = jie2cifc(Trim(za), Trim(zb2), Trim(zc2), Val(sd))
Text9 = y3
Text10 = y4
Label1.Caption = Val(Label1.Caption) + 1
Text14.Text = Text14.Text & "输入" & Label1.Caption & ":" & "a=" & k & ",b=" & ja & ",c=" & jb & ",d=" & jc _
& ",e=" & jd & ";输出结果" & Label1.Caption & ":    " & "x1,2=" & Text9.Text & ",x3,4=" & Text10.Text
End Sub

ysr 发表于 2022-9-1 03:35

输入1:a=1,b=2,c=3,d=4,e=3;输出结果1:    x1,2=-0.9215541049+ -1.3462240419,x3,4=-0.0784458950+ -1.4986900916i输入2:a=1,b=2,c=3,d=4,e=7;输出结果2:    x1,2=-0.7206148692+ -1.4503915063,x3,4=-0.2793851308+ -1.8197829537i输入3:a=1,b=2,c=3,d=4,e=9;输出结果3:    x1,2=-0.6876378626+ -1.5477748615,x3,4=-0.3123621373+ -1.9194684725i

我的程序给出的3个方程的解,还不一定对!!哎!!!

ysr 发表于 2022-12-18 22:17

又修改了一下程序,如下为修改后的计算结果:
输入1:a=1,b=2,c=3,d=4,e=5;输出结果1:    x1,2=-1.2878154796+ -0.8578967583i,x3,4=0.2878154796+ -1.4160930802i输入2:a=1,b=2,c=3,d=4,e=3;输出结果2:    x1,2=-1.1101820572+ -0.5503585864i,x3,4=0.1101820572+ -1.3934667963i

ysr 发表于 2022-12-18 22:18

输入1:a=1,b=11,c=46,d=96,e=120;输出结果1:    x1,2=-4.4147314911+ -1.2945834215i,x3,4=-1.0852685089+ -2.1193668017i
页: [1]
查看完整版本: 解一个关于x的4次方程