1. c语言编程:牛顿迭代法求方程的根
程序流程分析:
① 赋值x0=1.5,即迭代初值;
② 用初值x0代入方程中计算此时的f(x0)及f’(x0),程序中用变量f描述方程的值,用fd描述方程求导之后的值;
③ 计算增量d=f/fd;
④ 计算下一个x,x=x0-d;
⑤ 把新产生的x替换x0,为下一次迭代做好准备;
⑥ 若d绝对值大于1e-3,则重复②③④⑤步。
源程序代码:
#include <math.h>
main()
{
float x,x0,d,f,fd;
x0=0;
do {
f=2*x0*x0*x0-4*x0*x0+3*x0-6;
fd=6*x0*x0-8*x0+3;
d=f/fd;
x=x0-d;
x0=x;
}while(fabs(d)>1e-3);
printf("x=%f\n",x);
}
2. C语言从键盘输入求方程根.
%1f写错了——float型时用%f,double型时用%lf。是LF的小写,你写成1f了。写成%1f后被解释为只接收一个数字的浮点型,即0~9,所以即便是float型,输入两位以上数字就要出错。
3. 求助:用C语言编程解一元四次方程的根
这个得用循环叠代,把右边的0换成y,画成方程曲线,先假设解是a,把a代入方程求出一个y值来,然后求出这个点处的切线,记录切线与x轴的交点,设交点为b,把b代入方程,再求出y值来,再求切线,与x轴交点,再求y值及切线,如此循环,最后求得一个近似解 ,精确度可以自己控制在一个范围 。
以上是编程思想,具体实现得靠你自己来编了,说白了就是逐次逼近法,应该是研究生阶段学的东西吧,像这种方程及超越方程只能求得近似解,保持误差在一定范围内就行了。
4. C语言中求方程的根怎样实现
如图:
5. c语言编程,求方程的根,在线等,急
使用二分法求解f(x)=x^3-x-1=0在区间(1,2)上的解
(2011-05-12 22:32:32)
转载▼
标签:
二分法
区间
函数
方程
求解
计算方法
杂谈
分类: C
//使用二分法求解f(x)=x^3-x-1=0在区间(1,2)上的解
#include<iostream.h>
#include<math.h>
const double eps=0.000001; //对于精度的控制
//为方便的代码的书写,故编写此函数,以此求得此函数值
double f(double x)
{
return pow(x,3)-x-1; //当函数发生改变时,修改此处即可
}
//解的具体实现的函数
void solequ(double min,double max,double eps)
{
double temp;
if(f(min)*f(max)<0)//判断方程在此区间是否有解
{ //有解的情况的求解过程
while(f(max)!=0)
{
temp=(min+max)/2;
if(f(temp)*f(min)<0)
{
max=temp;
if(fabs(f(max)-f(min))<eps)
break;
}
else
{
min=temp;
if(fabs(f(max)-f(min))<eps)
break;
}
}
cout<<"方程的解为: "<<temp<<endl;
}
else //无解的处理
cout<<"此方程在此区间上无解"<<endl;
}
//主函数入口
int main()
{
double min,max,temp;
cout<<"请输入积分下限: ";
cin>>min;
cout<<"请输入积分上限: ";
cin>>max;
if(min>max) //对于用户输入次序相反的处理
{
temp=max;
max=min;
min=temp;
}
solequ(min,max,eps);
return 0;
}
你参考下这个程序,二分法
6. 用C语言编写一程序求解一元二次方程的根。
#include<stdio.h>
#include<math.h>
void m(float a,float b,float c)
{
double x1,x2;
x1=(-b+sqrt(b*b-4*a*c))/(2*a);
x2=(-b-sqrt(b*b-4*a*c))/(2*a);
printf("方程的根是%.2lf和%.2lf",x1,x2);
}
void n(float a,float b,float c)
{
double x;
x=(-b)/(2*a);
printf("方程的根为%.2lf",x);
}
void f(float a,float b,float c)
{
printf("方程无实数根\n");
}
main()
{
float a,b,c;
printf("请输入a,b,c的值\n");
scanf("%f%f%f",&a,&b,&c);
if(b*b-4*a*c>0)
m(a,b,c);
if(b*b-4*a*c==0)
n(a,b,c);
if(b*b-4*a*c<0)
f(a,b,c);
}
7. 如何用C语言编写一程序求解一元二次方程的根
C语言编写一程序求解一元二次方程的根:
#include<stdio.h>
#include<math.h>
void m(float a,float b,float c)
{
double x1,x2;
x1=(-b+sqrt(b*b-4*a*c))/(2*a);
x2=(-b-sqrt(b*b-4*a*c))/(2*a);
printf("方程的根是%.2lf和%.2lf",x1,x2);
}
void n(float a,float b,float c)
{
double x;
x=(-b)/(2*a);
printf("方程的根为%.2lf",x);
}
void f(float a,float b,float c)
{
printf("方程无实数根 ");
}
main()
{
float a,b,c;
printf("请输入a,b,c的值 ");
scanf("%f%f%f",&a,&b,&c);
if(b*b-4*a*c>0)
m(a,b,c);
if(b*b-4*a*c==0)
n(a,b,c);
if(b*b-4*a*c<0)
f(a,b,c);
}
8. 用C语言编程怎么求一个数的根号
#include<stdio.h>
#include<math.h>
intmain()
{
floata=5,b;
b=sqrt(a);
printf("a的平方根为:%f ",b);
return0;
}