牛顿迭代法学习

  牛顿迭代法(Newton's method)又称为牛顿-拉夫逊(拉弗森)方法(Newton-Raphson method),它是牛顿在17世纪提出的一种在实数域和复数域上近似求解方程的方法。接触到这个算法是因为昨天在LeetCode上遇见一道题:实现sqrt(),即开平方根。

 牛顿迭代法的数学原理请看知乎如何通俗易懂地讲解牛顿迭代法求开方? - 马同学的回答 - 知乎

先上java代码:

public static int mySqrt(int x)//牛顿迭代法 
	{
		long r = x;
		while(r * r > x)
		{
			r = (r + x / r) / 2;
		}
		return (int)r;
	}

下面的解释基
我可能越描越黑,看不懂的直接移步知乎看原回答就行了。

a

求X的算术平方根即求曲线F(t)=t² - x= 0 时 t的值。

(1)我们首先把t=x代入循环,曲线F(x)上对应的点是(x,t² - x),切线的斜率为2t。

(2)我们把这一步迭代根的逼近距离设为d。则2t = (t² - x )/d;即d = (t² - x) / 2t

(3)新的根为t - d;即(t + x/ t) / 2.

while中的条件怎么来的呢?根据上边的我们已经知道t = (t + x / t) / 2.由基本不等式可得t + x / t >= 2 √x;即t >= √x;

 




学习人工智能,机器学习都离不开数学基础和编程知识。无论你是数据科学的初学者还是已经从事人工智能开发的有经验人员,这门课都适合于你。为什么这么说?首先人工智能和机器学习本质上就是算法,而算法就是数学及统计学以及编程的结合。当前市场上有许多开源的软件包如SKLEARN确实可以帮助没经验的或缺乏数学或算法基础的人实现机器学习模型及预测,但这些工具无法使你真正懂得算法的本质或来源,或者无法使你在不同场合下灵活运用及改进算法。记住,在实际工作中找到适合应用场景的解决方案是最难但是最重要的。但这离不开数学基础和算法理解。比如,线性回归是一类普遍的机器学习算法,所有的机器学习软件都有现成的方法实现模型,但如果在训练数据中加入几条新数据,那么新建立的模型和原来的模型有和联系或不同?再比如,为什么深度神经网络中的Sigmoid函数一般只用到输出层?神经网络的向后传播理论如何与泰勒展开和复合函数的偏导数联系在一起?人工智能中推荐系统和文字向量如何与矩阵的奇异分解以及特征向量联系?模型中对标签进行数据变换如何影响预测值?所有这些问题的答案,你都可以从本课中找到线索。本课系统地讲述了有关人工智能,机器学习背后的数学知识。特别指出,微积分和代数知识是本课的核心。统计学基础被安排在另外的课程中。除此之外,我在每一章节或主要知识点后都安排了各类程序以解释和回顾所学到的东西。最后要提到的是,这不是一门工程项目实践课。但我会另外专门安排有关人工智能,机器学习的实践课程
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值