编程高手进,求解C语言编程题!!!!!!

来源:百度知道 编辑:UC知道 时间:2024/06/13 03:23:46
编写一个子程序NewTon(float x0,float eps,float x1).它的功能是用牛顿迭代法求 f(x)=x的3次方-2x的平方+4x+1在x=0附近的一个实根。牛顿迭代公式为:Xn+1=Xn-f(Xn)/f'(Xn) 迭代收敛判据为:|f(Xn+1)|<eps(eps为指定的迭代精度,例如1e-6)。若迭代成功,则返回非零值;否则返回0.

最好能给出每一步的说明!!!谢谢
怎么没人回答啊

这个程序中的函数与你要求的不同,你试着改改

/*该程序所求的是x=exp(-x)在 0.5附近的根*/
#include <stdio.h>
#include <math.h>

double fun(double x0)
{
double x1;
x1=x0-(x0-exp(-x0))/(1+x0);
return x1;
}

double fun1(double x0)
{
double x1;
x1=exp(x0)+x0*exp(x0);
return x1;
}

void main(void)
{
double x0,x1,temp,t=0.00001;
int i=0 ,flag=0;
printf("该程序所求的是x=exp(-x)在 0.5附近的值\n");
printf("请输入初始值0.5:\n");
scanf("%lf",&x0);
if(fun1(x0)<t)
printf("该函数不满足此种叠代法则,程序运行失败。\n");
else
{
do
{
i++;
x1=fun(x0);
temp=x0;
x0=x1;

if(i==50)
{
flag=1;
break;
}
}while(fabs(x1-temp)>t);
if(flag==1)
printf("叠