Module Shengjin_mod

Implicit None

contains

Function Cubic_equation(Co) Result (X)

!盛金公式求解一元三次方程

!默认浮点为8字节,以保证精度

Integer , Parameter :: P = Selected_Real_Kind(12)

Real (Kind=P), Parameter :: Eps = 1.0_P

Real (Kind=P), Intent (In) :: Co(4)

Real (Kind=P) :: A, B, C, D, A0, B0, C0, D0, Y1, Y2

Complex (Kind=P) :: X(3)

A = Co(1)

B = Co(2)

C = Co(3)

D = Co(4)

X = Huge(A)/100.0_P

!非三次方程

If (Abs(A) < Eps) Return

A0 = B*B - 3.0_P*A*C

B0 = B*C - 9.0_P*A*D

C0 = C*C - 3.0_P*B*D

D0 = B0*B0 - 4.0_P*A0*C0

If (Abs(A0) < Eps .And. Abs(B0) < Eps) Then

!三重实根

X(1:3) = -B/(3.0_P*A)

Else

If (D0 > 0.0_P) Then

Y1 = (A0*B+1.5_P*A*(-B0+Sqrt(D0)))

If (Y1 < 0.0_P) Then

Y1 = -Abs(Y1)**(1.0_P/3.0_P)

Else

Y1 = Y1**(1.0_P/3.0_P)

End If

Y2 = (A0*B+1.5_P*A*(-B0-Sqrt(D0)))

If (Y2 < 0.0_P) Then

Y2 = -Abs(Y2)**(1.0_P/3.0_P)

Else

Y2 = Y2**(1.0_P/3.0_P)

End If

!一个实根,一对共轭复根

X(1) = -(B+Y1+Y2)/(3.0_P*A)

X(2) = Cmplx(-2.0_P*B+Y1+Y2, Sqrt(3.0_P)*(Y1-Y2))/(6.0_P*A)

X(3) = Conjg(X(2))

Else If (D0 < 0.0_P) Then

Y1 = (2.0_P*A0*B-3.0_P*A*B0)/(2.0_P*A0**1.5_P)

Y2 = Acos(Y1)/3.0_P

!三个不同实根

X(1) = (-B-2.0_P*Sqrt(A0)*Cos(Y2))/(3.0_P*A)

X(2) = (-B+Sqrt(A0)*(Cos(Y2)+Sqrt(3.0_P)*Sin(Y2)))/(3.0_P*A)

X(3) = (-B+Sqrt(A0)*(Cos(Y2)-Sqrt(3.0_P)*Sin(Y2)))/(3.0_P*A)

Else

!三个实根,其中两个相等

X(1) = B0/A0 - B/A

X(2:3) = -0.5_P*B0/A0

End If

End If

End Function Cubic_equation

End Module Shengjin_mod

Program www_fcode_cn

Use Shengjin_mod

Implicit None

Real (Kind=8) :: A(4), Emax

Complex (Kind=8) :: X(3), E(3)

A = (/ 3568.D0, 458.D0, 47.D0, -20.D0 /)

X = Cubic_equation(A)

E = A(1)*X*X*X + A(2)*X*X + A(3)*X + A(4)

Emax = Maxval(Abs(E))

Write (*, '(6f15.7)') Real(X(1)), Aimag(X(1)), Real(X(2)), Aimag(X(2)), Real(X(3)), Aimag(X(3))

! 0.1250000 0.0000000 -0.1266816 0.1696904 -0.1266816 -0.1696904

Write (*, *) '最大误差:', Emax

! 4.733964436118326E-008

Read (*, *)

End Program www_fcode_cn

盛金公式解一元三次方程_盛金公式解一元三次方程相关推荐

  1. 求与下面谓词公式等值的前束范式_求下列公式的前束范式

    构造下面推理的证明: 在自然推理系统 P 中构造下面推理的证明: 前提: → 前提:p→(q→r), p∧q →)∧ 结论: 结论: ┐r→s → 6.求公式的前束范式 ...... (6) G(6) ...

  2. 人大金仓数据库sql语句_人大金仓数据库总结(SQL和JDBC)

    人大金仓作为一款国产数据库,使用的人数和相关资料都比较少. 最近使用人大金仓数据库,做了个简单的SQL和java jdbc的测试,希望能够供大家参考. 1.SQL语句 创建表: CREATE TABL ...

  3. java 金庸群侠传_《金庸群侠传》MOD发展史(官方版本 转自铁血丹心论坛)

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 三.MOD初期 在事件修改器和场景编辑器被制作出来之后,修改档的制作被引向了新的方向.(此后包括事件修改的"修改档"即可称之为&quo ...

  4. python牛顿法解非线性方程组_用牛顿迭代法解非线性方程组

    题目: 用牛顿迭代法解非线性方程组 有两个非线性方程,未知数是x1,x2: (15x1+10x2)/[(40-30x1-10x2)^2×(15-15x1)]=5e-4; (15x1+10x2)/[(4 ...

  5. 蚂蚁金服风控部怎么样_蚂蚁金服面试——风控策略

    蚂蚁金服-风控策略专员/专家-安全管理部,第一次电话面试. 部门介绍 安全管理部下的风控团队,工作内容: 1 文本监控 2 用户行为监控 项目介绍 同义词挖掘项目的过程和思路. 是否有修改Word2V ...

  6. 安卓zip解压软件_【工具】解压神器,鸽鸽们别再用广告王了!

    点击上方蓝字 咯噔君 ▲  关注 天下绅士是一家一身正气我你他 今日正文适用系统安卓 1 ZArchiver Pro(安卓) 咯噔君有时候分享一些压缩文件 经常分享完之后,都会有鸽鸽们都会跑来问 这个 ...

  7. 公式编号 制表位_制表符(公式居中,标号居右)

    制表符 就是和表格差不多,不过和表格比起来没那么好看,但比表格设置起来更直观,主要是因为制表位,它是以制表符的直线为准线,比如居中制表位,在这个制表位里面的文字是以居中制表符的那个中线为准线,以这条准 ...

  8. JAVA探险解谜游戏_【盘点】解谜冒险必玩游戏

    [盘点]解谜冒险必玩游戏 2020-10-23 17:23:39 9点赞 6收藏 0评论 <遗留之人>(steam) <遗留之人(Those Who Remain)>是一款心理 ...

  9. 香农公式说明了什么_香农公式和奈奎斯特准则在通信中的意义是什么?

    奈氏准则 1924年,奈奎斯特(Nyquist)就推导出在理想低通信道下的最高码元传输速率的公式: 理想低通信道下的最高码元传输速率=2W Baud 其中W是理想低通信道的带宽,单位为赫兹:Baud是 ...

最新文章

  1. linux用户空间 限制吗,在Linux中限制用户空间
  2. iOS日常工作之常用宏定义大全
  3. wukong引擎源码分析之索引——part 3 文档评分 无非就是将docid对应的fields信息存储起来,为搜索结果rank评分用...
  4. python 查看PIL包下的 Image.py 模块时 import _builtin__显示 python version 3.6 does not have module __builtin__
  5. SCI论文的时态、主动语句和被动语句总结
  6. CentoS8 Mysql8 数据目录迁移
  7. Sql自动更新不同IP的数据库数据。(link Server)
  8. OpenGL的glScissor示例程序
  9. 代码注释掉还能执行_日志消息是可执行代码和注释
  10. 【转】ABP源码分析二十三:Authorization
  11. ORM(手写简单ORM)
  12. BZOJ 4826: [Hnoi2017]影魔 单调栈 主席树
  13. Depix从像素化屏幕快照中恢复密码
  14. 五种百度云盘下载速度慢解决方法
  15. roundcube webmail登陆失败怎么回事_智慧团建登陆官网入口手机
  16. 火狐浏览器启动参数_火狐浏览器启动参数介绍
  17. solidworks装配教程:快速给装配体添加新零件
  18. php mysql购物网站_php实现一个简单的购物网站
  19. 驾考计算机播报原理,科目三电子路考流程详解 考驾照的都看看!
  20. open函数里的newline

热门文章

  1. 费马小定理看了等于没看证明
  2. cleintHeight、offsetHeight、scrollHeight、cleintTop、offsetTop、scrollTop、getClientRects、getBoundingClien
  3. 去哪儿2018春季校园招聘软件开发工程师笔试经验
  4. Latex系列(四)---论文图片排版
  5. 【功能安全】【ISO26262】整体介绍
  6. Firebase使用总结(早期)
  7. 你总问,全面发展还是术业专攻?这就是答案
  8. 为什么一个byte的存储范围是-128~127?
  9. BXA&ONEROOT,创新纪元
  10. 机械臂末端执行器汇总