首页 > 其他分享 >牛顿法特殊形式——开方公式与二分逼近开方的

牛顿法特殊形式——开方公式与二分逼近开方的

时间:2024-11-08 15:58:05浏览次数:1  
标签:二分 lf int 牛顿 mid jingdu printf 开方

数值分析-开方公式


// 开方公式
#include<bits/stdc++.h>

using namespace std;

int main()
{
    double c, x0, jingdu;
    printf("请输入被开方数c:");
    scanf("%lf", &c);
    printf("请输入初值x0:");
    scanf("%lf", &x0);
    printf("请输入精度(用小数表示):");
    scanf("%lf", &jingdu);

    double xk, xk1 = x0;
    int i = 0;
    do {
        i++;
        xk = xk1;
        xk1 = 0.5 * (xk + c / xk);
        printf("x%d = %lf\n", i, xk1);
    } while (abs(xk1 - xk) > jingdu);

    printf("故 √c ≈ x%d = %lf\n", i, xk1);

    return 0;
}

二分逼近开方

#include<iostream>

using namespace std;
using ll = long long;

const int N = 5000 + 10;

int n;

int main()
{
    double c, jingdu;
    printf("------------------二分逼近------------------\n");
    printf("请输入被开方数c:");
    scanf("%lf", &c);
    printf("请输入精度(用小数表示):");
    scanf("%lf", &jingdu);

    double l = 0, r = max(1.0, c), mid = 0;
    int i = 0;
    while(abs(mid * mid - c) > jingdu) {
        i++;
        mid = (l + r) / 2.0;
        if (mid * mid < c) l = mid;
        else r = mid;
        printf("x%d = %lf\n", i, mid);
    }

    printf("故 √c ≈ x%d = %lf\n", i, mid);

    return 0;
}

对比总结

二分逼近的复杂度是O(logN)*
开方公式的时间复杂度是
O(k)=O(loglogN)**
开方公式的收敛速度更快。

标签:二分,lf,int,牛顿,mid,jingdu,printf,开方
From: https://www.cnblogs.com/xiongdx/p/18535254/niudunkaifang

相关文章

  • 二分查找习题篇(上)
    二分查找习题篇(上)1.二分查找题目描述:给定⼀个n个元素==有序的(升序)==整型数组nums和一个目标值target,写一个函数搜索nums中的target,如果目标值存在返回下标,否则返回-1。示例1:​输入:nums=[-1,0,3,5,9,12],target=9​输出:4解释:9出现在nums......
  • 二分图
    1基础概念二分图的概念在网络流学习中其实已经有所涉及。具体来讲,二分图就是节点由两个集合组成,且两个点集内部没有边的图。那么二分图有以下经典性质:二分图中没有奇环。证明显然。由于每一次走边一定是从一个点集走到另一个点集,如果要回到当前点集,那么必须要走偶数条边,因此......
  • C-牛顿迭代法求根
    牛顿迭代法:牛顿迭代法(Newton'smethod)又称为牛顿-拉夫逊(拉弗森)方法(Newton-Raphsonmethod),它是牛顿在17世纪提出的一种在实数域和复数域上近似求解方程的方法。代码:#include<stdio.h>#include<math.h>intmain(){ floatqiugeng(inta,intb,intc,intd,inte); ......
  • E. Reverse the Rivers(二分)CF984
    题意:给定n个国家,k个地区,aij为第i个国家第j个地区,bij=a1j|a2j|---aij为第i个国家第j个地区的更新值,给出q个问题,每个问题包含m项要求,国家i必须满足m项要求:如果o=='<'必须满足bir<c否则bir>c,输出满足所有条件的最小序号的国家分析:如果o是小于号,用二分找到右区间,如果o是大于号,用二......
  • 二分(待续期待)
    思路:如何优雅的处理边界条件? 1.左边界、右边界的更新​先看一个例子:给定一个排好序的整数数组a,数组中可能存在重复元素。给定数组中的一个值target,求出它最后出现的位置。​例如数组a为:[13335],目标值target=3。a中最后一个等于3的元素为:a[3],所以结果为3。......
  • ACWING 503. 借教室 二分+前缀和
    题目描述输入格式输出格式数据范围输入样例:432543213324424输出样例:-12题目分析 每个订单都是对第s到t这个区间进行操作,所以可以用差分和前缀来实现对这段区间的快速修改。在1-m个订单中一定会有最后一个能被处理的订单,因此可将1-m分为两个区......
  • 最该加训二分的一集
    今天校队布置作业了培训的时候靠直觉断定第二题存在数学公式直接求解而不需要二分,然后写了个循环扫了眼就得出了公式:不存在n%3==0的情况,所以遇到该情况需要"n++"(题目要求为至少多少支);然后此时记答案为ans,则n和ans满足n-ans=n/3(向下取整)然后就去做第一题了,扫了一眼就……就......
  • 【字节青训营-二分数字组合(简)】
    二分数字组合问题描述小F面临一个有趣的挑战:给定一个数组,她需要将数组中的数字分为两组。分组的目标是使得一组数字的和的个位数等于给定的A,另一组数字的和的个位数等于给定的B。除此之外,还有一种特殊情况允许其中一组为空,但剩余数字和的个位数必须等于A或B。小F需要计......
  • 【LeetCode:153. 寻找旋转排序数组中的最小值 + 二分】
    在这里插入代码片......
  • c语言:一维数组+二维数组+二分查找法
     1:数组的概念     概念:数组是一组相同元素的集合。     特点:1、数组中存放的是一个或者多个数据,但是数组的元素个数不可以为0.3          2、数组里存放的数据是同类型的数据     分类:数组分为一维数组和多维数组,其中多......