2.5 鲜花

牛顿迭代法

省流:看se图:

推歌:周杰伦-《发如雪》
狼牙月 伊人憔悴
我举杯 饮尽了风雪
是谁打翻前世柜 惹尘埃是非
缘字诀 几番轮回
你锁眉 哭红颜唤不回
纵然青史已经成灰 我爱不灭
繁华如三千东流水
我只取一瓢爱了解
只恋你化身的蝶
你发如雪 凄美了离别
我焚香感动了谁
邀明月 让回忆皎洁
爱在月光下完美
你发如雪 纷飞了眼泪
我等待苍老了谁
红尘醉 微醺的岁月
我用无悔 刻永世爱你的碑
你发如雪 凄美了离别
我焚香感动了谁
邀明月 让回忆皎洁
爱在月光下完美
你发如雪 纷飞了眼泪
我等待苍老了谁
红尘醉 微醺的岁月

前言:牛顿

一问三不知,牛顿咋了?

贺的某个巨佬的。

  牛顿是近代科学的先驱,智商290,在多个领域都有非凡的成就。

  他在1687年发表的论文《自然定律》里,对万有引力和三大运动定律进行了描述。这些描述奠定了此后三个世纪里物理世界的科学观点,并成为了现代工程学的基础。他通过论证开普勒行星运动定律与他的引力理论间的一致性,展示了地面物体与天体的运动都遵循着相同的自然定律;为太阳中心说提供了强有力的理论支持,并推动了科学革命。

  在力学上,牛顿阐明了动量和角动量守恒的原理,提出牛顿运动定律[1] 。在光学上,他发明了反射望远镜,并基于对三棱镜将白光发散成可见光谱的观察,发展出了颜色理论。他还系统地表述了冷却定律,并研究了音速。

  在数学上,牛顿与戈特弗里德·威廉·莱布尼茨分享了发展出微积分学的荣誉。他也证明了广义二项式定理,提出了“牛顿法”以趋近函数的零点,并为幂级数的研究做出了贡献。

  在经济学上,牛顿提出金本位制度。

  在天文上,牛顿1672年创制了反射望远镜。他还用万有引力原理说明潮汐的各种现象,指出潮汐的大小不但同月球的位相有关,而且同太阳的方位有关。牛顿预言地球不是正球体。

  在哲学上,牛顿的哲学思想基本属于自发的唯物主义,他承认时间、空间的客观存在。如同历史上一切伟大人物一样,牛顿虽然对人类作出了巨大的贡献,但他也不能不受时代的限制。例如,他把时间、空间看作是同运动着的物质相脱离的东西,提出了所谓绝对时间和绝对空间的概念;他对那些暂时无法解释的自然现象归结为上帝的安排,提出一切行星都是在某种外来的“第一推动力”作用下才开始运动的说法。《自然哲学的数学原理》牛顿最重要的著作,1687年出版。

然后贺的百度百科:

  • 宗教信仰
    牛顿在1670年写了很多处理圣经的文字解释的宗教小册子。亨利·摩尔的宇宙信仰和拒绝笛卡儿二元论影响了牛顿的宗教观念。在他发给约翰·洛克的一个从未发表的手稿中,他争议了三位一体的存在性。

  • 科学与神学
    牛顿活了80岁,但他40年用于科学研究,另外40年他居然沉迷于神学。他用许多“科学现象”来证明上帝的存在,甚至在研究地球有多少岁时,他居然用《圣经》推算出6000年。这样鲜明的对比,很难让人们把这些事与这个科学巨人联系起来。

  • 唯一的遗憾
    牛顿一生科学贡献卓越,他是近代科学的鼻祖,他开拓了向科学进军的新纪元,但却因羞于向女孩表白而白白失去结婚的机会,然后终生未婚也未育,便没有他的后人。

实数、虚数域牛顿法(Newton's Method)

这个东西牛顿好像发现了但是没发表,就是一个用来寻找函数零点的高效方法,几次迭代可以得到一个很精确的根。

具体的就是先把函数泰勒展开一下:(\(f_t\)\(t\) 阶导)

\[f(x) = \sum_{t = 0}^{\infty}\frac{f_t(x_0)(x - x_0)^t}{t!} \]

然后大笔一挥,直接放弃次数大于 \(2\) 的东西进行迭代。上一个近似值是 \(x_i\),新一个是 \(x_{i + 1}\) 吧。

由于是零点,所以:

\[0 = f(x_i) + (x_{i + 1} - x_i)f'(x_i) \]

变换一下,得:

\[x_{i + 1} = x_i - \frac{f(x_i)}{f'(x_i)} \]

其实我之前是拒绝使用牛顿迭代法的,后来我试用了了一下,哇,精度确实高,还送 VIP(不知道咋改了),忙的时候还可以离线挂机,现在每天带着小夹子做多项式,哇,好精确,蛮有用的。

然后以平方根举例,现打个代码:

CODE
inline double sqrt(double y) {
	double x = y, y0 = y; 
	for (int tot = 0; tot < 5; ++ tot) 
		x = x - (x * x - y) / (x * 2), y = x * x - y0; 
	return x; 
}

什么还有雷神之锤3里的sqrt,网上很多人介绍,我也没有研究明白qwq,但是好像效率比 C++ 自带的快几倍。

upd:刚才试了一下,纯胡扯,还是建议用 builtin_sqrt。欺骗我感情(>_<)>)

CODE
int sqrt(double x) {
    if (x == 0) return 0; 
    float result = x; 
    float xhalf = 0.5f * result; 
    int i = *(int* ) & result; 
    i = 0x5f375a86- (i >> 1); // what the fuck?
    result = *(float* ) & i; 
    result = result * (1.5f - xhalf * result * result); // Newton step repeating increases accuracy
    result = result * (1.5f - xhalf * result * result); 
    return 1.0f / result; 
}

多项式牛顿迭代

多项式无非就是换了自变量,具体题面就是:

\[G(F(x)) \equiv 0 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \left(\text{mod} \ x^n\right) \]

给我 \(G\),求 \(F\)

沿用多项式求逆等的思想,于是,设:

\[G(F_0(x)) \equiv 0 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \left(\text{mod} \ x^\frac{n}{2}\right) \]

\(G\) 泰勒展开一下。

\[G(F(x)) = \sum_{i = 0}^\infty \frac{G_i \times (F(x) - F_0(x))^i}{i!} \]

然后探究一些小性质:

\[F(x) \equiv F_0(x) \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \left(\text{mod} \ x^\frac{n}{2}\right) \]

所以这两个东西前 \(\frac{n}{2}\) 位是相同的。

所以 \((F(x) - F_0(x))^2\) 的最高非零位至少是第 \(n\) 位。那老子留着它还有啥子意义?

所以:

\[G(F(x)) \equiv G(F_0(x)) + (F(x) - F_0(x))G'(F_0(x)) \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \left(\text{mod} \ x^n\right) \]

\[0 \equiv G(F_0(x)) + (F(x) - F_0(x))G'(F_0(x)) \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \left(\text{mod} \ x^n\right) \]

即:

\[F(x) \equiv F_0(x) - \frac{G(F_0(x))}{G'(F_0(x))} \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \left(\text{mod} \ x^n\right) \]

(和实数域上的没啥区别。)

作者:hangry

出处:https://www.cnblogs.com/hangry/p/18699702

版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。

posted @   HANGRY_Sol&Cekas  阅读(93)  评论(12编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
历史上的今天:
2024-02-05 集训大记
2024-02-05 蚯蚓排队(码)
2024-02-05 初等数论
点击右上角即可分享
微信分享提示
more_horiz
keyboard_arrow_up light_mode palette
选择主题