牛顿迭代法连载三蒟蒻萌新推导

在某一天,我坐在教室想着开根号,是不是可以可以通过一些技巧算出来呢?(那时候不知道牛顿迭代法)经过几个月计算,我知道了牛顿迭代法,也考上了想要的大学。下面是推导过程。
首先从1-2开始,以0.1为变化点。牛顿迭代法连载三蒟蒻萌新推导_第1张图片
我发现平方前差是1,平方和差是3,两个一除得到平方前/平方和是三分之一。得到了下面这个图
在这里插入图片描述
可能大家会说这个是错误的,其实在接近答案。
于是我得到了一个计算的公式,取根号2为例
在这里插入图片描述发现很接近了,那么我们是不是可以扩展为任意数字呢?完全可以
根号a,我们要取一个接近他的值作为计算的因子,上面的根号2,1是因子。
在这里插入图片描述
那么下面我们算一个试一试,算根号789。
首先计算x(后面可以自己任意输入,这里用我自己的公式慢死了)

在这里插入图片描述
带入公式计算
在这里插入图片描述
这个选的重新代入需要计算四五次就得到了,我用代码计算了,如图所示:

#include 
main()
{
     
	int i; 
	double a,x;
	scanf("%lf",&a); 
	x=0.766666666666*a*pow(0.1,1.5)+0.24*pow(10,1.5);
	for(i=1;i<=6;i++)
	{
     
		x=(a-x*x)/(pow(x+1,2)-x*x)+x;
		printf("第%d次的结果是:%.10lf\n",i,(a-x*x)/(pow(x+1,2)-x*x)+x);
	}

牛顿迭代法连载三蒟蒻萌新推导_第2张图片
在这里插入图片描述
这个公式的分数是2x+1,我不小心把1删除了,发现计算速度变快了。经过大佬的指点,我知道了这就是f(x)=x^2->f(x)’=2x
公式变成了在这里插入图片描述
我感觉这么大一块放在这里太站位置了,加了个-号
在这里插入图片描述
终于我们得到了牛顿迭代法。

在这里插入图片描述

你可能感兴趣的:(算法,算法,抽象代数)