📄 newton.cpp
字号:
// Newton.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include<stdio.h>
#include<math.h>
#include<iostream>
#define f(x) (x*x+10*cos(x))//原函数 x^2+10cosx
#define g(x) (2*x-10*sin(x))//导函数 2x-10sinx
#define MAXREPT 1e4
#define x0 1.6
#define x1 10
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
int i,k = 0;
double epsilon;
double x_k = x0,x_k1 = x1,x_k2 = x1;
cout<<"求x*x+10*cos(x)的近似根,x0=1.6"<<endl;
cout<<"请输入求解精度:";
cin>>epsilon;
cout<<"迭代开始:"<<endl;
for(i = 0;i < MAXREPT;i++)
{
cout<<"Got..."<<x_k2<<endl;
k++;
if(g(x_k) == 0)
break;
else
x_k2=x_k1-f(x_k1)/g(x_k1);
if(fabs(x_k2-x_k1)<epsilon)
{
cout<<"所得满足精度的解为:"<<endl;
cout<<"!Root="<<x_k2<<endl;
cout<<"迭代次数为:"<<k<<endl;
system("pause");
return 0;
}
x_k=x_k1;x_k1=x_k2;
}
cout<<"经过 "<<MAXREPT<<" 次迭代后,未达到所需精度要求"<<endl;system("pause");
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -