求某个数开几次方根(二分法、数值分析、运筹学、牛顿法和拟牛顿法)

文章目录

  • 二分法
    • 判断二分法步数(基于精确度)
  • 数值分析的角度
  • 牛顿法
  • 拟牛顿法

先说面试题:如何求5开3次方根。(用算法的角度、数值分析的角度、运筹学的角度给出解法)

今天面试了一家公司,面试官很厉害,随机出题,考得我头都大了,还是自己太菜了,以前学的东西不会学以致用,都忘了,面试的时候很丢人,以后还是要继续学习啊,虽然马上要毕业了,但本专业的知识是立足之本,专业知识都不牢,别人怎么相信你在其他地方做的好?立下flag,以后每天要回顾一个专业知识点!

二分法

  • 最简单的方法,先确定区间,再不断细分求解
  • [1,2]–>[1.5,2]–>[1.5,1.75]–>…
  • 继续提问:我想要精确到 1 0 − 3 10^{-3} 103,需要几步
  • 只要区间长度< 1 0 − 3 10^{-3} 103,区间内任一解能满足要求
  • 如何判断需要几步能达到精确度的要求呢?

判断二分法步数(基于精确度)

  • 设区间为 [ a , b ] [a,b] [a,b],要求的精度为 ϵ \epsilon ϵ
  • 二分一次,区间长度为: b − a 2 \frac{b-a}{2} 2ba
  • 二分法两次,区间长度为: b − a 2 2 \frac{b-a}{2^2} 22ba
  • 所以二分法n次,区间长度为: b − a 2 n \frac{b-a}{2^n} 2nba
  • b − a 2 n < ϵ \frac{b-a}{2^n}<\epsilon 2nba<ϵ,记 L = b − a L=b-a L=ba
  • 解得 n > log ⁡ 2 ( L ϵ ) = log ⁡ 2 ( L ⋅ 1 0 m ) = m log ⁡ 2 ( 10 L ) n>\log_2(\frac L{\epsilon})=\log_2(L\cdot 10^m)=m\log_2 (10L) n>log2(ϵL)=log2(L10m)=mlog2(10L)
  • 在面试官的问题中, L = 1 , m = 3 L=1,m=3 L=1,m=3,大概需要11步

数值分析的角度

逼近

  • 不动点迭代
  • 牛顿法
  • 割线法
  • Brent法

牛顿法

拟牛顿法

你可能感兴趣的:(秋招经验复盘,算法,数学)