求解一元三次方程的C语言程序
发布时间:2025-05-17 12:41:46 发布人:远客网络
一、求解一元三次方程的C语言程序
可以使用二分法,弦截法,牛顿法,以前写的,希望对LZ有帮助。
用弦截法求方程F(x)=X^3-5X^2+16X-80=0的根。
(1)取两个不同的点x1,x2,如果f(x1)和f(x2)符号相反,则(x1,x2)区间内必有一个根。如果f(x1)和f(x2)同符号,则应改变x1,x2,直到f(x1)和f(x2)异号为止。注意x1和x2的值不应差太大,以保证(x1,x2)区间内只有一根。
(2)连接(x1,f(x1))和(x2,f(x2))两点,此线交x轴于x,x的坐标可以用下式求出:x=(x1*f(x2)-x2*f(x1))/f(x2)-f(x1),
(3)若f(x)和f(x1)同符号,则根必在(x,x2)内,此时将x作为新的x1;如果f(x)和f(x2)同符号,则表示根在(x1,x),此时将x作为新的x2。
(4)重复步骤(2)和(3),知道|f(x)|<e,e是一个很小的数,例如10^-6;
float xpoint(float x1,float x2)
{//求(x1,f(x1)和(x2,f(x2))连线与x轴的交点
y=(x1*f(x2)-x2*f(x1))/(f(x2)-f(x1));
printf("input x1,x2:\n");
printf("a root of equation is%8.4f\n",x);
牛顿迭代法又称牛顿切线法,它采用以下方法求根:先任意设定一个与真实的根接近的值x0作为第一个近似根,由x0求出f(x0),过(x0,f(x0))点做f(x)的切线,交x轴于x1,把它作为第二次近似根,再由x1求出f(x1),再过(x1,f(x1))点做f(x)的切线,交x轴于x2,再求出f(x2),再作切线……如此继续下去,直到足够接近真正的x为止。
其中f'(X0)是函数在X0处的斜率,也就是在X0处的导数。
float f(float a,float b,float c,float d,float x)
float f1(float a,float b,float c,float x)
float root(float a,float b,float c,float d)
x1=x0-f(a,b,c,d,x0)/f1(a,b,c,x0);
printf("input four float numbers:\n");
scanf("%f%f%f%f",&a,&b,&c,&d);
printf("%.1fX^3+%.1fX^2+%.1fX+%.1f=0 its root near x=1.5 is:%.4f\n",a,b,c,d,x);
二、用c语言编程求线性方程组的解
给,下面的代码已经编译运行确认,肯定好用了,试试吧:)
printf("\n用gauss列主元消元法解线性方程组");
printf("\n1.解方程组请按enter.");
printf("\n2.退出程式请按esc.");
printf("\n现在输入系数矩阵a和向量b:");
printf("\n请输入a%d1--a%d%d系数和向量b%d:
/*实现将每一行中的系数和向量一次性输入,数之间用空格格开,输完后回车确定*/
/*判断方程是否为线性方程,即是否合法*/
printf("\n此方程组不合法!");message();
a[i][j]=a[i][j]-a[k][j]*a[i][k]/a[k][k];
printf("\nx%d=%f",i,x[i]);
default:{printf("\n不合法的输入!");message();}
三、c语言求一元二次方程
#include<stdio.h>#include<math.h> int main(){ double a, b, c, delta, x1, x2, realPart, imaginaryPart; printf("请输入一元二次方程的三个系数:\n"); scanf("%lf%lf%lf",&a,&b,&c); delta= b* b- 4* a* c; if(delta> 0){ x1=(-b+ sqrt(delta))/(2* a).
x2=(-b- sqrt(delta))/(2* a); printf("方程的两个实根为:%.2lf和%.2lf\n", x1, x2);} else if(delta== 0){ x1= x2=-b/(2* a); printf("方程的唯一实根为:%.2lf\n", x1);}.
else{ realPart=-b/(2* a); imaginaryPart= sqrt(-delta)/(2* a); printf("方程的两个虚根为:%.2lf+%.2lfi和%.2lf-%.2lfi\n", realPart, imaginaryPart, realPart, imaginaryPart);} return 0;}.
C语言是一种通用的、过程式的计算机编程语言,由美国计算机科学家Dennis Ritchie于1972年在贝尔实验室开发。它被广泛用于系统/应用软件、游戏开发、嵌入式系统、操作系统等众多领域。
C语言是一种编译型语言,编译器会将其编译成高效的机器码,使得程序的运行速度非常快。在很多情况下,使用C语言编写的程序要比使用其他高级语言的程序运行得更快,因为C语言更接近硬件,可以更好地利用计算机资源。
C语言的语法相对简单,易于学习,特别是对于初学者来说很容易上手。它的语法规则较少,表达能力强,可以用更少的代码实现更多的功能。这使得编写C程序更加简单快捷,也方便了程序的阅读和维护。
C语言提供了指针、数组、结构体等多种数据结构和运算符,使用这些特性可以编写出更加灵活和高效的程序。例如,指针可以用来直接操作内存,数组可以用来存储一组相同类型的数据,结构体可以用来定义复杂的数据结构等。这些特性使得C语言在处理复杂数据结构和算法时非常高效。
C语言的代码通常可以在不同的操作系统和平台上运行,具有很好的可移植性。这是因为C语言是一种跨平台的语言,其标准库和语法规则在各个平台上都是一致的。这使得C程序在不同的操作系统和硬件平台上都可以运行,为程序员提供了更大的灵活性。