题目描述

有形如:ax^3+bx^2+cx^1+dx^0=0ax3+bx2+cx1+dx0=0 这样的一个一元三次方程。给出该方程中各项的系数(a,b,c,da,b,c,d均为实数),并约定该方程存在三个不同实根(根的范围在-100−100至100100之间),且根与根之差的绝对值\ge 1≥1。要求由小到大依次在同一行输出这三个实根(根与根之间留有空格),并精确到小数点后22位。

提示:记方程f(x)=0f(x)=0,若存在22个数x_1x1​和x_2x2​,且x_1<x_2x1​<x2​,f(x_1) \times f(x_2)<0f(x1​)×f(x2​)<0,则在(x_1,x_2)(x1​,x2​)之间一定有一个根。

输入输出格式

输入格式:

一行,3个实数A,B,C,D。

输入格式:

一行,3个实根,并精确到小数点后22位。

#include<stdio.h>
#include<iostream>
#include<math.h>
using namespace std;double a, b, c, d;double fun(double x)
{double res = x*(x * (a * x + b) + c) + d;return res;}double daofun(double x)//导数
{double res = 3*a*x*x + 2 * b * x + c;return res;
}double solve(double x)//牛顿迭代
{double x0;double x1 = x;do{x0 = x1;x1 = x0 - fun(x0)/daofun(x0);}while(fabs(x1 - x0) >= 1e-6);return x1;}int  main()
{cin>>a>>b>>c>>d;for(int i = -100; i <= 100; i++){double left = i;double right = i + 1;//lef和right选择长度为1的区间if(fun (left ) == 0){printf("%.2f ", left);}else if(fun(left ) * fun( right) < 0){double jie = solve(right);//迭代的初始点从右端开始printf("%.2f ", jie);}}//system("pause");
}

牛顿迭代法解一元三次方程相关推荐

  1. python迭代法求解方程_第一部分:趣味算法入门;第六题牛顿迭代法求一元三次方程的根...

    100个不同类型的python语言趣味编程题 在求解的过程中培养编程兴趣,拓展编程思维,提高编程能力. 第一部分:趣味算法入门:第六题SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键 ...

  2. 迭代法求一元三次方程

    迭代法求一元三次方程 简介:本文讲解如何使用迭代法来解,一元三次方程. 题目: 设计精度函数: #include<iostream> #include<cmath> using ...

  3. C++实现牛顿迭代法求一元二次方程

    牛顿迭代法定义如下(来自百度百科): 用牛顿迭代法小试牛刀用来求解一元二次方程的根(工程下载地址[注:不好意思,下载题目写成了二元一次方程,见谅.],release下的应用程序可以直接运行),代码如下 ...

  4. 问题三十七:C++怎么解一元四次方程?(2)——怎么解一元三次方程

    37.2 怎么解一元三次方程? 用"盛金公式"求解: ----------------------------------------------main.cpp -------- ...

  5. 盛金公式解一元三次方程_一元三次方程解法(卡尔丹公式法盛金公式法)

    卡尔丹公式法 特殊型一元三次方程 X^3+pX+q=0 (p.q∈R) 判别式Δ=(q/2)2+(p/3)3 卡尔丹公式 X1=(Y1)(1/3)+(Y2)(1/3) X2= (Y1)(1/3)ω+( ...

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

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

  7. 解一元三次方程方程问题细节探讨

    解一元三次方程 虽然我是一个新手,按"规矩"应该要经常在博客里面把自己的错误都写出来做个总结,但是我比较保守,总是觉得博客是一个社交平台,一些相对不太成熟的东西还是写个word文档 ...

  8. matlab 一元方程程序,用牛顿方法解一元非线性方程的根(Matlab实现)

    题目:用牛顿法求方程x-cos(x)=0的实根(精确到1E-6). (1)要求用函数调用. (2)进一步研究和弦截法作比较. 算法分析: (1)       此题是利用牛顿方法解一元非线性方程的根.( ...

  9. 盛金公式解一元三次方程_【国际数学竞赛】高次方程求根

    对于一元二次方程 ,我们由求根公式可得: . 对于一元三次方程 ,我们有 卡尔丹公式法和盛金公式法.不过公式比较冗长.不易计算,但我们还是有方法计算的,那么如果是一元四次.一元五次甚至更高呢? 遇到高 ...

最新文章

  1. 用C语言解“超速判断”题
  2. Linux里设置环境变量的方法(export PATH)
  3. 美团外卖商家端视频探索之旅
  4. 路由器启动后如何定位IOS?
  5. 了解systemctl和chkconfig的服务管理工具
  6. mysql调优的一些方面
  7. c .net ajax,Asp.net mvc 2中使用Ajax的三种方式
  8. LSA类型讲解——LSA-1【1类LSA——Router LSA】详解
  9. 中国风喜庆传统新年元旦海报PSD分层模板
  10. DBNull与Null的区别
  11. Windows上用VSCode链接矩池云的时候遇到的坑
  12. 语音信号处理基础(五)——语音分帧与加窗
  13. Mobileye上演IPO生死时速
  14. ODOO12 自定义销售报价单样式
  15. 华盛酒店系统客户端连不上服务器,华盛酒店管理系统-客房管理系统-房务手册.pdf...
  16. 施耐德控制器维修伺服驱动器维修C400A8
  17. LEADTOOLS 文档 SDK,创建以下任何对象
  18. NOIP2016 暑期培训 D6
  19. 如何一条命令查询笔记本电池损耗情况-生成报告
  20. 重装win10系统 远程控制TeamViewer——深度学习菜鸡入门(2)

热门文章

  1. 红蓝对抗-红蓝对抗经验总结
  2. idea查看类层次结构图
  3. Go Micro 初探
  4. 去哪儿2017校园招聘 开发工程师(第一批次)- 题解
  5. 数据预处理——数据清洗
  6. 面试自我介绍注意哪些
  7. java cpu分配_容器中的Java:资源分配准则
  8. Numpy攻略系列:repeat函数
  9. Python Nan与NaT
  10. DBLINK使用的思考