计算方法有关牛顿迭代和简单迭代法的问题
求c++的代码,提前感谢各位的帮忙,感激不尽
#include<stdio.h>
#include<math.h>
int main( )
{
float m,n,x1=0.5,t;
while(1)
{
m=2*x1*x1+2*x1+1-pow(2.71,2*x1);
n=4*x1+2-2*pow(2.71,2*x1);
t=x1;
x1=x1-m/n;
if(fabs(x1-t)<pow(10,-4))
{
printf(" %f.",x1);
break;
}
}
return 0;
}
#define _USE_MATH_DEFINES //引入自然常数 M_E
#include<iostream>
#include<cmath>
using namespace std;
double fd(double x)
{
double fx = 2*x*x+2*x+1-pow(M_E,2*x);
double dx = 4*x + 2 - 2*pow(M_E,2*x);
return fx / dx;
}
double newton(double x0, double e)
{
double f = x0;
double x = x0 - fd(x0);
while (fabs(x - f) > e)
{
f = x;
x -= fd(x);
}
return f;
}
int main()
{
double x0 = 0.5, e = 1.0e-4;
cout << newton(x0, e) << endl;
return 0;
}
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
double x1 = 0, x2;
double fx1, fx2;
x2 = 0.5;
while (fabs(x1 - x2) >= 1e-4)
{
x1 = x2;
fx1 = 2 * x1*x1 + 2 * x1 + 1 - exp(2*x1); //f(xn)
fx2 = 4 * x1 - 2-2*exp(2*x1); //f(xn)'
x2 = x1 - fx1 / fx2;
}
printf("value:%lf", x2);
system("pause");
return 0;
}