牛顿迭代法与二分法求根

news2024/9/22 1:04:03

牛顿迭代法

求平方根

数学迭代式:x[n+1] = (x[n] + a/x[n])/2.

初始化:x[0] = a/2.

保持:x[n+1] = (x[n] + a/x[n])/2.

终止条件:|x[n+1]-x[n]| < 0.00001时,迭代终止。

代码:

#include "stdio.h"
#include "math.h"

#define MAXSIZE 100
void main() {

    float x[MAXSIZE] = {0};
    float a = 2;
    x[0] = a/2;
    x[1] = (x[0] + a/x[0])/2;
    int count = 0;
    for(int i = 1; fabs(x[i] - x[i-1]) > 0.0000001; i++) {
        x[i+1] = (x[i] + a/x[i])/2;
        count = i;
    }
    printf("x[%d] = %f", count, x[count]);

    
}

输出结果:

求方程的根

数学迭代式:

f(x) = 2*x*x*x – 4*x*x + 3*x – 6;

f(x)的导数g(x)=6*x*x – 8*x + 3;

迭代式:x[n+1] = x[n] – f(x[n])/g(x[n]);

初始化:x[0] = 1.5.

保持:x[n+1] = x[n] – f(x)/g(x).

终止条件:|x[n+1]-x[n]| < 0.00001时,迭代终止。

代码:

#include "stdio.h"
#include "math.h"

#define MAXSIZE 100
void main() {

    float x[MAXSIZE] = {0};
    x[0] = 1.5;
    x[1] = x[0] - (2*x[0]*x[0]*x[0] -4*x[0]*x[0] + 3*x[0] - 6)/(6*x[0]*x[0] - 8*x[0] + 3);
    int count = 0;
    for(int i = 1; fabs(x[i] - x[i-1]) > 0.0000001; i++) {
        x[i+1] = x[i] - (2*x[i]*x[i]*x[i] -4*x[i]*x[i] + 3*x[i] - 6)/(6*x[i]*x[i] - 8*x[i] + 3);
        count = i;
    }
    printf("x[%d] = %f", count, x[count]);

    
}

输出结果:

二分法

数学迭代式:

a = -10, b = 10.

x = (a + b) /2;

if  f(x)*f(a) > 0  b = x;

else a = x.

初始化:a = -10, b = 10; x =(a+b)/2.

保持:if  f(x)*f(a) > 0  b = x; else a = x.

终止条件:|f(x)| < 0.00001时,迭代终止。

代码:

#include "stdio.h"
#include "math.h"

float f(float x);
float binary_get_root(float a, float b);
float root = 0;
void main() {

    printf("The binary root is: %f", binary_get_root(-10, 10));
}

float f(float x) {
    return 2*x*x*x -4*x*x + 3*x - 6;
}

float binary_get_root(float a, float b) {
    if(fabs(f(a)) < 0.000001) {
        root = a;
        return a;
    } else if(fabs(f(b)) < 0.000001) {
        root = b;
        return root;
    }
    float x = (a + b) /2;
    if(f(x)*f(a) > 0) binary_get_root(x, b);
    else binary_get_root(a, x);
    return root;
}

输出结果:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1702332.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Web前端开发技术、详细文章、(例子)html 列表、有序列表、无序列表、列表嵌套

目录 列表概述 列表类型与标记符号 无序列表 语法&#xff1a; 语法说明&#xff1a; 无序列表标记的 type 属性及其说明 代码解释 有序列表 基本语法 属性说明 1、列表 o1标记的属性 2、列表项li标记的属性 有序列表 o1标记的属性、值 代码解释 列表嵌套 基本…

骑车不戴头盔监测摄像机

骑行是一种健康的出行方式&#xff0c;但是在骑行途中不戴头盔存在安全隐患&#xff0c;容易造成头部受伤。为了规范骑行行为&#xff0c;保障骑行安全&#xff0c;可以考虑使用骑车不戴头盔监测摄像机进行监测和识别。这种摄像机可以通过智能识别技术&#xff0c;实时监测骑自…

黑灰产攻防对抗——中睿天下代理秒拨IP防护研究

01网络攻击代理现状 随着攻击者防溯源和绕过防护意识的加强&#xff0c;攻击者进行网络攻击时常使用代理IP进行攻击&#xff0c;防止非法攻击时被追踪到身份信息。目前常见的代理方式有socks代理、HTTP/HTTPS代理、VPN、秒拨等。 对于企业来说&#xff0c;通过SOAR类平台可实现…

训练YOLOv9-S(注意:官方还没有提供YOLOv9-S的网络,我这是根据网络博客进行的步骤,按照0.33、0.50比例调整网络大小,参数量15.60M,计算量67.7GFLOPs)

文章目录 1、自己动手制造一个YOLOv9-S网络结构1.1 改前改后的网络结构&#xff08;参数量、计算量&#xff09;对比1.2 一些发现&#xff0c;YOLOv9代码打印的参数量计算量和Github上提供的并不一致&#xff0c;甚至yolov9-c.yaml代码打印出来是Github的两倍1.3 开始创造YOLOv…

参数高效微调PEFT(一)快速入门BitFit、Prompt Tuning、Prefix Tuning

参数高效微调PEFT(一)快速入门BitFit、Prompt Tuning、Prefix Tuning 目前&#xff0c;模型最全的网站是HuggingFace&#xff0c;但是国内需要魔法流量才能访问。另外&#xff0c;现在大模型权重文件都较大&#xff0c;也会浪费不少流量&#xff0c;因此这里推荐使用魔搭社区下…

深入探索C++模板进阶:掌握非类型参数、特化技巧与分离编译的艺术

目录 非类型模板参数 类模板的特化 概念 函数模板特化 类模板特化 全特化 偏特化 类模板特化应用示例 模板的分离编译 分离编译概念 模板的分离编译 解决方法 模板总结 非类型模板参数 模板参数可分为类型形参和非类型形参。 类型形参&#xff1a; 出现在模板参数列表中&am…

华为云之Zabbix监控平台部署实践

华为云之Zabbix监控平台部署实践 一、本次实践介绍1.1 实践环境简介1.3 本次实践完成目标 二、 相关服务介绍2.1 华为云ECS云服务器介绍2.2 Zabbix介绍 三、环境准备工作3.1 预置实验环境3.2 查看预置环境信息 四、登录华为云4.1 登录华为云4.2 查看ECS状态4.3 连接ECS弹性云服…

CMake-gui中选择vs编译器没有指定版本解决办法

CMake-gui中选择vs编译器&#xff0c;但是没有指定版本怎么办&#xff1f; 正文 cMake-gui中选择vs编译器时&#xff0c;有Visual Studio 2008、2013、2015、2017、2019&#xff0c;但就是没有的2022的版本&#xff0c;如图&#xff1a; 因为小编目前使用的Visual Studio版…

由于找不到d3dx9_39.dll,无法继续执行代码的5种解决方法

在现代科技发展的时代&#xff0c;电脑已经成为我们生活中不可或缺的一部分。然而&#xff0c;由于各种原因&#xff0c;我们可能会遇到一些电脑问题&#xff0c;其中之一就是“d3dx9_39.dll丢失”。这个问题可能会导致我们在运行某些游戏或应用程序时遇到错误提示&#xff0c;…

机器学习入门指南:Jupyter Notebook实战

前言 机器学习作为人工智能领域的核心组成&#xff0c;是计算机程序学习数据经验以优化自身算法、并产生相应的“智能化的“建议与决策的过程。随着大数据和 AI 的发展&#xff0c;越来越多的场景需要 AI 手段解决现实世界中的真实问题&#xff0c;并产生我们所需要的价值。 机…

eDNA热门应用案例一网打尽

一份环境样品中&#xff0c;可包含的DNA片段能达到上千万个&#xff0c;而每一个物种能携带的DNA又是独一无二的。将从样品中获得的遗传标记序列与DNA数据库中的序列相比对&#xff0c;从而确认分析的DNA来自什么物种&#xff0c;这就是环境DNA宏条形码技术&#xff08;eDNA Me…

拼多多商品详情商品标题sku等信息抓取接口API调用步骤演示

接口名称&#xff1a;item_get_app_pro 公共参数 名称类型必须描述keyString是调用key&#xff08;必须以GET方式拼接在URL中&#xff09;secretString是调用密钥api_nameString是API接口名称&#xff08;包括在请求地址中&#xff09;[item_search,item_get,item_search_sho…

低代码的原理、发展历史、使用场景和优势。

在数字化转型的浪潮中&#xff0c;低代码开发平台&#xff08;YDUIbuilder&#xff09;以其独特的优势迅速崛起&#xff0c;为各行各业带来了创新的解决方案。本文将深入探讨低代码的原理、发展历史、使用场景以及它所带来的优势。 gitee下载&#xff1a;yduibuilder: 快速开发…

Spring AOP失效的场景事务失效的场景

场景一&#xff1a;使用this调用被增强的方法 下面是一个类里面的一个增强方法 Service public class MyService implements CommandLineRunner {private MyService myService;public void performTask(int x) {System.out.println("Executing performTask method&quo…

LeetCode题练习与总结:将有序数组转换为二叉搜索树--108

一、题目描述 给你一个整数数组 nums &#xff0c;其中元素已经按 升序 排列&#xff0c;请你将其转换为一棵平衡二叉搜索树。 示例 1&#xff1a; 输入&#xff1a;nums [-10,-3,0,5,9] 输出&#xff1a;[0,-3,9,-10,null,5] 解释&#xff1a;[0,-10,5,null,-3,null,9] 也将…

流程引擎之compileflow idea 2024.*插件支持

之前有使用过多种类型工作流&#xff0c;但最近研究工作流引擎对比各有优劣&#xff0c;compileflow内存支持性能不错&#xff0c;但在idea新版本使用的时候发现插件不支持&#xff0c;干脆自己修改源码手撸一个&#xff08;当前版本2024.1验证可用&#xff0c;如果有其他版本不…

Vue框架动态引入省份个性化代码

项目需求有产品的功能&#xff0c;但是功能下部分小功能每个省份有不同的控制&#xff0c;所以需要引入省份个性化代码。 思路是&#xff0c;页面一开始加载产品化的代码&#xff0c;有个性化的代码就加载个性化的逻辑&#xff0c;个性化代码是产品化代码的重写&#xff0c;所…

QT如何将生成的exe文件打包成安装包

一、生成exe文件 1、生成exe文件 QT编译模式选择release&#xff0c;然后点击编译&#xff1a; 2、找到exe文件 在开发文件夹下找到build-xxxxxxx-Release文件夹里面找到exe文件 3、相关依赖dll文件查找 新建个空文件夹将exe文件拷贝进去&#xff1a; 然后找到如下程序…

数据结构-二叉树系统性学习(四万字精讲拿捏)

前言 这里我会从二叉树的概念开始讲解&#xff0c;其次涉及到概念结构&#xff0c;以及堆的实现和堆排序。 目的是&#xff0c;堆比二叉树简单&#xff0c;同时堆本质上是二叉树的其中一种情况&#xff0c;堆属于二叉树顺序结构的实现 最后完善二叉树的讲解&#xff0c;也就是…