一、二分法

1.二分法概念:二分法,又称分半法,是一种方程式根的近似值求法。对于区间[m,n]上连续不断且f(m)*f(n)<0的函数y=f(x),通过不断地把函数f(x)的零点所在的区间一分为二,使区间的两个端点逐步逼近零点,进而得到零点近似值的方法叫做二分法(bisection)。

2.二分法思路:

(1)求已知函数f(x)=0的根,先找一个区间[m,n],使得f(m)*f(n)<0,即f(m)与f(n)异号,根据介值定理,这个区间内一定包含着方程式的根。

(2)求该区间的中点i=(m+n)/2,并找出f(i)的值。

(3)若f(i)与f(m)同号,即f(m)*f(i)>0,则取新的区间[i,n],否则取[m,i]。

(4)重复第二步和第三步,直到得到理想的精确度为止。

3.以下为二分法解题的代码(用codeblocks可运行)

#include<stdio.h>
#include<math.h>
int main()
{double m,n;double i,sum;double eps=1e-6;//eps是精度控制,此处为10^-6,表示无限小double a,b,c,d;double f1,f2;printf("请输入一元三次方程标准形式a*x^3+b*x^2+c*x+d的系数a b c d:\n");scanf("%lf%lf%lf%lf",&a,&b,&c,&d);printf("请输入取值区间:\n");scanf("%lf%lf",&m,&n);//注意abcdmn都是%lf而不是%df1=a*pow(m,3)+b*pow(m,2)+c*m+d;//pow(x,y)=x^y,幂函数f2=a*pow(n,3)+b*pow(n,2)+c*n+d;//判断f1*f2<0是主要代码if(f1*f2<0){while(fabs(m-n)>eps){i=(m+n)/2;sum=a*pow(i,3)+b*pow(i,2)+c*i+d;if(fabs(sum)<eps)//如果函数f(i)的绝对值|sum|小于无限小{printf("方程的一个近似解为x*=%lf\n",i);break;}else if(f1*sum<0){n=i;}else if(f2*sum<0){m=i;}}}//如果刚好区间取值为方程解else if(f1*f2==0){if(f1==0){ printf("方程的一个解为x*=%lf\n",m);}if(f2==0){ printf("方程的一个解为x*=%lf\n",n);}}else{ printf("方程在该区间内无解!\n");}return 0;
}

4.运行结果如下:

参考文章:

https://jingyan.baidu.com/article/597a06438def54312a524376.html

https://blog.csdn.net/Xue_fabulous/article/details/105125596

二、公式法

参见小小小罗成的文章https://blog.csdn.net/weixin_44889344/article/details/108700037

c语言求解一元三次方程(二分法和公式法)相关推荐

  1. 基于C语言使用卡尔丹公式法求解一元三次方程

    求根公式的推导 这里直接引用网络上的一般公式 ,如下图. 在C语言中的实现 #include<stdio.h> #include<math.h> #include<com ...

  2. C# 盛金公式 求解一元三次方程

    class dd2{private static readonly double dsr3 = Math.Sqrt(3);// <summary>/// 盛金公式求解一元三次方程,ax^3 ...

  3. 弦截法c语言程序,用弦截法求解一元三次方程的根(利用c语言实现)

    用弦截法求解一元三次方程的根(利用c语言实现)0 特别v2013.09.24浏览296次分享举报 #include #include float f(x) { float a,b,c,d; float ...

  4. 求解一元三次方程(c语言)

    求解一元三次方程 描述 格式 样例 题解及注释 描述 格式 样例 题解及注释 是数学的最小二分法 #include <stdio.h> #include <math.h> #i ...

  5. C语言笔记 | 一元三次方程

    文章目录 0x00 前言 0x01 问题分析 0x02 代码设计 0x03 完整代码 0x04 运行效果 0x05 参考文献 0x06 总结 0x00 前言 在 1545 年,意大利学者卡丹所写的&l ...

  6. c语言公式法求解一元三次方程

    #include<stdio.h> #include<math.h> int main() {float a,b,c,d,x1,x2,x3,p,q,i,w,s1,s2,s3,X ...

  7. 用盛金公式求解一元三次方程

    解一元三次方程一般用盛金公式求解,算法高效且求出来的解精确.     百度百科关于盛金公式有如下解释: 盛金公式 Shengjin's Formulas 一元三次方程aX^3+bX^2+cX+d=0, ...

  8. 盛金公式 C++(求解一元三次方程的求根公式)

    有形如:a x^3 + b x^2 + c x + d = ax3+bx2+cx+d=0 这样的一个一元三次方程. 给出该方程中各项的系数(a,b,c,da,b,c,d 均为实数),并约定该方程存在三 ...

  9. 求解一元三次方程的一个实数解

    求解已知一元三次方程的一个实数解 上机内容:C++ 上机目的: 编程序求解方程2x3-5*x2+3x-6=0的1个实数根,要求精确到0.00001 已知f(x)=2x3-5*x2+3x-6 在> ...

最新文章

  1. richeditctrl 选中ole图片 拖拽 空白_高质量的图片素材,碾压度娘几条街......
  2. 安卓手机充电慢_3.0适用苹果安卓手机充电器头
  3. 为tornado自定义session
  4. requestLayout() improperly called by 出现后的解决方法
  5. clientX、offsetX、screenX、pageX的区别
  6. 中望3D 2021 插入基准面 - 三点法
  7. android用户界面组件都是放置在,Android开发工程师第十章 节 用户界面高级组件.ppt...
  8. 采集工具助力企业拓客,让你的业务快速扩张
  9. 魔兽世界称全球玩家达1150万
  10. Oracle数据库练习题及答案大全(包含数据库脚本)
  11. java背单词页面_简易Web背单词软件 #01# 当前功能
  12. 两个字符串中最长公共单词 C语言
  13. python中从键盘输入五个单词输出以元音字母开头的单词_Python程序设计入门——第五周作业...
  14. 在CentOS7下的OpenCV环境搭建与基于C++的人脸辨认(Face Recognition)参考指南
  15. 大神手把手教源码阅读的方法、误区以及三种境界
  16. Cont. TF-IDF (BigData Data Mining)
  17. 测试笔记之测试用例模板
  18. 2022年信息与通信工程保研夏令营(清华/上交/自所/复旦/浙大/科大/哈深/北理/西交)
  19. matlab 聚类分析 画出聚类树,plot单独画出pheatmap返回的聚类结果(聚类树)
  20. UnicodeDecodeError: 'utf-8' codec can't decode byte 0x80 in position 3131: invalid start byte解决办法

热门文章

  1. 卑鄙与高尚,理想与现实
  2. SSM必备基本知识总结!
  3. ANR发生的原理是什么, 怎么排查
  4. java中cookie的有效时间设置
  5. 成都物韵电子商务有限公司推广网店需要注意什么?
  6. 前端Vue简单编写一个幸运大转盘抽奖游戏
  7. 商城店铺入驻系统_商家入驻开设店铺功能逻辑与流程设计
  8. httpc服务器错误类型大全
  9. 服务器断电后找不到磁盘,服务器断电数据丢失恢复原理和恢复过程
  10. windows cmd 添加路由命令