|
|
《数学中国》ZHAOLU84编程验码:
用下面在VF下按鲍赫公式编程:
CLEAR
CLEAR ALL
use scxsk
e=1
GO 2
a=xs
GO 3
b=xs
GO 4
c=xs
m=36*a*b-8*a*a*a-108*c
r=m*m
s=4*a*a-12*b
n=sqrt(r-s*s*s)
p=(m+n)^(1/3)
q=0
IF ABS(p)<0.00000000001
q=(m-n)^(1/3)
ELSE
q=s/p
ENDIF
x=((p+q)-2*a)/6
?x
u=-((p+q)+4*a)/12
v=(SQRT(3)*(p-q))/12
?'u=',u
?'v=',v
GO 1
REPLACE sb with x
GO 2
REPLACE sb with u,xb with v
GO 3
REPLACE sb with u,xb with -v
zz=x*x*x+a*x*x+b*x+c
GO 1
REPLACE ysb with zz
g=SQRT(u*u+v*v)
t=ACOS(u/g)
scs=g*g*g*COS(3*t)
scx=g*g*g*SIN(3*t)
ecs=g*g*COS(2*t)
ecx=g*g*SIN(2*t)
ycs=g*COS(t)
ycx=g*SIN(t)
sba=scs+a*ecs+b*ycs+c
xba=scx+a*ecx+b*ycx
GO 2
REPLACE ysb with sba,yxb with xba
GO 3
REPLACE ysb with sba,yxb with xba
解方程x^3+2x^2+3x+4,输出结果如下,
XS JM SB H XB XD YSB YXB
1.0 x(1)= -1.650629191439387 0.000000000000000 0.000000000000004
2.0 x(2)= -0.174685404280306 + 1.546868887231396 i 0.000000000000004 0.000000000000001
3.0 x(3)= -0.174685404280306 - 1.546868887231396 i 0.000000000000004 -0.000000000000001
4.0
验实部误差为0.000000000000004,
验虚部误差为0.000000000000001。
确实是“本公式作为三次方程的通解公式,在应用的计算程序方面已经达到最优化了”!
|
|