切线法开根号

Legendary_dove 滑稽 2021-11-12 18:43:06 2021-11-13 14:48:55 8
#include<iostream>
#include<cmath> 
using namespace std;
double x0,x1,n;
double f_d(double x)
{
	return 2*x;  //求导 
}
double f(double x)
{
	return x*x-n;  //开a的根号等于求y=x^2+a的零点  
}
int main()
{
	cin>>n;
	x0=n/2;//起始点 
	x1=x0-f(x0)/f_d(x0); //迭代一次 
	while(abs(x0-x1)>=1e-9) 
	{
		x0=x1;
		x1=x0-f(x0)/f_d(x0);
	}
	cout<<floor(x1);
	return 0;
}
{{ vote && vote.total.up }}

共 1 条回复

ykj02 懒虫

小心被封哦~