zoukankan      html  css  js  c++  java
  • 牛顿迭代法

    一、导数

      

     

    导数可以理解为某点的斜率。

    泰勒公式:

    在x -> x0的情况下,可以看成是:

     这也是后面牛顿迭代法所用到的公式

    二、牛顿迭代法

     

    通过不断迭代,逐渐逼近零点,当迭代点X(n-1) - Xn  ->   ε  无穷小时,可以认为得到该解;

     

    三、牛顿迭代应用

    (1)https://leetcode-cn.com/problems/sqrtx/solution/x-de-ping-fang-gen-by-leetcode-solution/           69. Sqrt(x)       求解x的平方更

      

    class Solution {
        public int mySqrt(int x) {
            if (x == 0) {
                return 0;
            }
    
            double C = x, x0 = x;
            while (true) {
                double xi = 0.5 * (x0 + C / x0);
                if (Math.abs(x0 - xi) < 1e-7) {
                    break;
                }
                x0 = xi;
            }
            return (int) x0;
        }
    }
    
    

      

    (2)https://www.nowcoder.com/practice/caf35ae421194a1090c22fe223357dca?tpId=37&&tqId=21330&rp=1&ru=/ta/huawei&qru=/ta/huawei/question-ranking

    import java.util.Scanner;
    public class Main{
        public static void main(String[] args){
            Scanner input = new Scanner(System.in);
            while (input.hasNextDouble()){
                double num = input.nextDouble();
                double x = 1.0;
                for (; Math.abs(Math.pow(x,3)-num)>1e-3; x=x-((Math.pow(x,3)-num)/(3*Math.pow(x,2))));
                System.out.println(String.format("%.1f", x));
            }
        }
    }
    

      

    参考:

    https://www.zhihu.com/question/264955988

    https://www.zhihu.com/question/20690553

  • 相关阅读:
    Eclipse/STS 常用快捷键
    Git代码管理常用命令
    Git命令
    Atom python版本的切换
    robot Frame之文件上传和下载
    ride打开后,log和report置灰的解决办法
    Python2和Python3共存下使用robotframework
    selenium+python
    firefox上安装selenium ide失败
    软件测试知识点补充1
  • 原文地址:https://www.cnblogs.com/chenfx/p/15365079.html
Copyright © 2011-2022 走看看