1. 程式人生 > >數學建模三 單變數優化和求解 牛頓迭代法

數學建模三 單變數優化和求解 牛頓迭代法

#include<iostream>
#include<cmath>
using namespace std;
double f(double x);
double f1(double x);
double f2(double x);
int main()
{
	double x0, x1,e;
	e = 0.0001;                          //終止門限
	x0 = 15;                            //起始點
	while (1)
	{
		x1 = x0 - (f1(x0) / f2(x0));
		if (fabs(x1 - x0) < e)
		{
			cout<< x1<< ' ' << f(x1) <<endl;
			break;
		}
		x0 = x1;
	}
	return 0;
}
double f(double x)
{
	return (pow(x, 4) - 5 * pow(x, 3) + 4 * pow(x, 2) - 6 * x + 60+sin(x) );
}
double f1(double x)
{
	return (4*pow(x, 3) - 15 * pow(x, 2) + 8*x - 6+cos(x) );
}double f2(double x)
{
	return (12 * pow(x, 2) - 30 * x + 8-sin(x));
}