某叶C语言学习上重大的一步——一元三次方程求解

限时加码!20+主流AI编程工具免费用 购周边加赠Coding Plan Lite,Claude Code、Cursor等即刻畅享,学习进阶更高效! 阅读详情

 目前某叶编的最难的程序了......感觉算是跨越吧,之前最难的是一元二次方程求解,虽然是最“难”的,只是因为最长,但是写起来还是很轻松的

 不过一元三次方程可一点都不轻松,很累,因为没学过一元三次方程解法,所以需要百度,不过在C语言学习的书上找到了解法,要用牛顿迭代法求......

  百度娘处充电,勉勉强强算是能看懂牛顿迭代法了,可能根本没看懂,不过至少知道怎么算了

  解法思路:

  先把求与X轴交点坐标公式放着免得忘记了

  x= x1f(x2)-x2f(x1)/f(x2)-f(x1)

  之后比较x1的y1值和x2的y2值,如果两个为异号,那么两个x之间一定有方程的根

  如果同号,那么继续输入直到异号为止

  这个时候用求交点坐标公式求出交点坐标x,它的y值同样代入求出

  再次比较y与y1值,如果异号那么x与x1之间必有方程根

  如果同号那么x与x2之间必有方程根

 循环以上直到y的绝对值小于一个非常小的数,也就近似为0的时候,输出x值既为方程根......

 理好了解法思路就不怕了,因为这个程序的关键就是我没学过解法,现在解法清楚了就开始编了

  写了很多的函数,对我来说很复杂,所以注释比较多,省的以后自己都看不懂了......

 

  书上给的例子方程式x^3-5x^2+16x-80=0给出的一个解x=5,图2反应出来了......

 

#include <stdio.h>
#include <math.h>
#include <conio.h>
float a,b,c,d; //定义外部变量,使全局可以调用
float f(float x) //x函数
{
      floaty;
      y=a*x*x*x+b*x*x+c*x+d;
      returny;
}

float xpoint(float x1,float x2) //求弦与x轴交点坐标
{
      floaty;
      y=(x1*f(x2)-x2*f(x1))/(f(x2)-f(x1));
      returny;
}

float root(float x1,float x2) //求根函数
{
      floatx,y,y1;
      y1=f(x1);//y1为x1纵坐标
      do
      {
            x=xpoint(x1,x2); //求x1与x2之间弦与x轴交点赋值于x
            y=f(x); //代入方程中求得y
            if(y*y1>0) //判断y与y1是否同号
            {
                  x1=x;
                  y1=y;
   
C语言笔记 | 一元三次方程 在 1545 年,意大利学者卡丹所写的《关于代数的大法》中,提出了一元三次方程的求根公式。人们将其称为卡丹公式。对于标准型的一元三次方程 ax+bx+cx+d=0 (其中 a、b、c、d 属于实数且 a 不等于 0),可以通过变量代换将其转化为 x³+px+q=0 的形式,从而求出其根。 阅读详情

相关推荐

C语言学习—给学习C语言初学者的建议

C语言是一门“古老”而又很有前途的计算机编程语言。 近十年来,它在编程语言排行榜(TIOBE)稳居前三。因此,C语言绝对是值得初学者学习的一门语言。笔者从事C语言教学十多年的经验来看,有以下一些建议可供C语言初学者参考与借鉴。 (1)保持好奇心 这是一个现实的问题,如果你是非计算机专业的大学生,大部分人对C语言是恐惧的,因为(挂科率高)你懂得……。而如果你是小学生或初中生,倒也不用担

cxy_love666的博客 1万+

C++求解一元三次方程代码

自己测的没问题,在CSCD博客上下载来自己用,发现有问题,自己修改后没问题了。

C语言试题二十之利用以下的简单迭代方法求方程cos(x)-x=0的一个实根。

1、 题目 编写函数function,功能是:根据以下公式求p的值,结果由函数值带回。M与n为两个正整数,且要求m>n。 p=m!/n!(m-n)! 2 、温馨提示 C试题汇总里可用于计算机二级C语言笔试、机试、研究生复试中C程序设计科目、帮助C语言学者打好程序基础、C语言基础,锻炼您的逻辑思维和解决问题的能力,帮助你成为C语言笔试、机试解题高手,帮助你拿到C语言工作的offer,每一个题目都附带源代码和运行结果,...

码莎拉蒂 4798

一元三次方程(VC++)

一元三次方程(VC++)(cubic_equation.rar)

Linux多文件编译.h或c文件

1.在home中建立test文件,在test中建立myinclude,src文件。myinclude下建立myhead.cpp,myhead.h文件。src中建立main.cpp文件。如下图所示: 2.源代码如下: main.cpp: #include &lt;iostream&gt; #include &lt;myhead.h&gt; using namespace std; int...

computer science 4382

【C语言】分治法——一元三次方程求解

利用分治法进行一元三次方程求解

weixin_71027076的博客 977

一元三次方程求解c++实现

typedef double Number; class CubicRealPolynomial { public: static Number computeDiscriminant(Number a, Number b, Number c, Number d); static std::vector computeRealRoots(Number a, Number

GPU全栈博主 6012

C语言学习手记-一元二次函数解法

#include #include #include void main() { printf("                       欢迎使用一元二次方法求根程式!\n\n"); double a,b,c,dt,sqrtdt,x1,x2; printf("请输入a的值(X平方的系数):"); scanf("%lf",&a); printf("请输入b值(X的系数)

Sarkozy Blog 3136

郝斌老师 c语言学习笔记

c语言学习笔记,适合新入门的人深入的研究

weixin_45708609的博客 7675

C语言:二分法求方程

C语言学习记录之二分法求方程根 #include <stdio.h> #include <math.h> int main() { double x0, x1, x2, f0, f1, f2; do { printf("请输入两个点:"); scanf("%lf,%lf", &x1, &x2); f1 = ((2 * x1 - 4) * x1 + 3) * x1 - 6; f2 = ((2 * x2 - 4) * x2 + 3) * x2 - 6;

qinnt的博客 1万+

方程式ax2bxc0的根c语言,2019-03-09 C语言学习12-求ax^2+bx+c=0方程的根

1.求ax^2+bx+c=0方程的根。a,b,c由键盘输入,设b^2-4ac>0.设计思想:此想法是考虑a!=0且有两个不等的方程跟(因为题目中告诉了设b^2-4ac>0)。具体思想如下图片:代码:#include #include int main(){double a,b,c,disc,x1,x2,p,q;scanf("%lf%lf%lf",&a,&b,&amp...

weixin_32427105的博客 5100

一元二次、三次方程解 (C语言

本人做的一点小玩意。初学C、C++者可用于练手。易懂

c语言_源代码如何让解一元三次方程

根的c 语言程序[4]. # include <math.h> main() {float a,b,c,d; float xo x1,x2,f0 f1,f2; printf("请输入方程系数 a,b,c,d;"); scanf("%f,%f,%f,%f",&a,&b,&c,&d"); do {printf("请输入变量的有效范围 x1,x2:"); }while(f1*f2>0); do {x0=(x1+x2)/2; f0=a*x0*x0*x0+b*x0*x0+c*x0+d; if( else {x1=x0;f1=f0;} }while(fabs(f0)>=1e-5); loop:printf("方程的根 x=%f\n",x0); }

C# 解一元三次方程

C#完整的解一元三次方程,盛金公式法。直接生成dll文件,直接调用即可。

基于springboot的c语言学习辅导网站的设计与实现

通过基于Spring Boot和Vue.js的C语言学习辅导网站的设计与实现,为C语言学习者提供了一个集学习、实践、交流于一体的一站式平台。的C语言学习辅导网站的设计与实现,为C语言学习者提供了一个集学习、实践、交流于一体的一站式平台。综上所述,基于Spring Boot的C语言学习辅导网站的设计与实现具有显著的技术特点和优势,能够为C语言学习者提供全面、高效的学习支持。1.管理员:拥有系统的全面管理权限,包括管理轮播图、管理员、学生、教师、试卷、试题、章节信息、教学视频和系统公告等。

weixin 346127357的博客 934

C语言学习-Day_01

学习C语言的第一天!

坏坏-5的博客 934

C语言学习

disc 不是保留字,也不是标准函数,是自定义标识符。 disc 可以是 discrete 离散,可以是 disk 盘 片, 可以是 discard 在程序中disc代表b*b-4ac,realpart代表实部,imagpart代表虚部 #include<stdio.h> #include<math.h> int main() { double a,b,c,disc,x1,x2,realpart,imagpart; scanf("%if,%if,%if",&a,&a

weixin_68139304的博客 3729

c语言学习第一天-开发环境搭建

搭建开发环境 因为我电脑是win10系统所以采用 DEV-C++ 这个软件来编写我们的C语言程序 搭建步骤 下载软件,去DEV-C++官网下载,去官网下载的话,要登录谷歌账号或者是Facebook账号,如果没有的话,就去我的百度云盘下载,云盘链接,提取码:bxop 软件下载完之后,直接双击打开,安装过程很简单,一直下一步就可以。 使用Dev-C++ 这个过程,我会用一个一元二次方式求解(ax^...

水里的鱼 532
下一篇: C语言竞赛题&nbsp;-&nbsp;将数表示成质因子成…
寒潭落叶
博客等级 码龄15年 8粉丝 16原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值