一元非线性方程求根:
/*牛顿迭代法求函数跟*/
#include
#include
int main(void)
{ double x,x1,eps=1e-6,f,f1; /*误差为eps*/
x=1.0; /*x=1.0是初值*/ do{
x1=x;
f=6-x1*(5-x1*(4-3*x1)); /*f为f(x)函数*/
f1=-5+x1*(8-9*x1); /*f1为f(x)的导函数*/ x=x1-f/f1;
f=6-x*(5-x*(4-3*x));
}while(fabs(f)>=eps &&
fabs(x-x1)>=eps);
printf("x=%f",x);
}
/*二分法求函数跟*/
#include
#include
double f(double x)
{ return 6-x*(5-x*(4-3*x)); /*f(x)函数*/
}
int main(void)
{ double a,b,c,x,eps=1e-6;
do{
scanf("%lf%lf",&a,&b);
}while(f(a)*f(b)>0);
if(fabs(f(a))
x=a;
else if (fabs(f(b))
x=b;
else {
c=(b+a)/2;
while(fabs(f(c))>eps&&fabs(b-a)>eps){
if(f(a)*f(c)
b=c;
else
a=c;
c=(b+a)/2;
}
x=c;
}
printf("x=%f",x);
}
/*弦截法求函数跟*/
c=(a*f(b)-b*f(a))/ (f(b)-f(a));
while(fabs(f(c))>eps){
if(f(a)*f(c)
b=c;
else
a=c;
c=(a*f(b)-b*f(a))/ (f(b)-f(a)); }
#include
void f();
int main(void)
{ int x, loop=0;
do{
for(x=1;x
int x=2; printf("%d",x); }
printf("%d ",x); f();
loop++;
}while(loop
getch();
}
void f()
{ printf("%d",x++); }
一元非线性方程求根:
/*牛顿迭代法求函数跟*/
#include
#include
int main(void)
{ double x,x1,eps=1e-6,f,f1; /*误差为eps*/
x=1.0; /*x=1.0是初值*/ do{
x1=x;
f=6-x1*(5-x1*(4-3*x1)); /*f为f(x)函数*/
f1=-5+x1*(8-9*x1); /*f1为f(x)的导函数*/ x=x1-f/f1;
f=6-x*(5-x*(4-3*x));
}while(fabs(f)>=eps &&
fabs(x-x1)>=eps);
printf("x=%f",x);
}
/*二分法求函数跟*/
#include
#include
double f(double x)
{ return 6-x*(5-x*(4-3*x)); /*f(x)函数*/
}
int main(void)
{ double a,b,c,x,eps=1e-6;
do{
scanf("%lf%lf",&a,&b);
}while(f(a)*f(b)>0);
if(fabs(f(a))
x=a;
else if (fabs(f(b))
x=b;
else {
c=(b+a)/2;
while(fabs(f(c))>eps&&fabs(b-a)>eps){
if(f(a)*f(c)
b=c;
else
a=c;
c=(b+a)/2;
}
x=c;
}
printf("x=%f",x);
}
/*弦截法求函数跟*/
c=(a*f(b)-b*f(a))/ (f(b)-f(a));
while(fabs(f(c))>eps){
if(f(a)*f(c)
b=c;
else
a=c;
c=(a*f(b)-b*f(a))/ (f(b)-f(a)); }
#include
void f();
int main(void)
{ int x, loop=0;
do{
for(x=1;x
int x=2; printf("%d",x); }
printf("%d ",x); f();
loop++;
}while(loop
getch();
}
void f()
{ printf("%d",x++); }