计算方法/数值分析牛顿下山法C/C++实现方法

2024-01-16 21:38

本文主要是介绍计算方法/数值分析牛顿下山法C/C++实现方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、前言(吐槽)

我真的不知道该说些什么好,其实也怪自己。老师将实验发下来,然后我就跟这着老师的实验任务做,实验word上用的什么流程图我就用那个流程图,然而我根据老师的流程图遍完了程序,怎么验算结果都不对,就开始找自己的问题,根本没去想流程图,后来才发现,是自己太年轻了,老师给的流程图错了,其实都怨自己,一味的去抄这个流程图,没有去分析这个流程图,这次狠狠的给我上了一课,浪费了好多时间。

image.png

二、算法流程图

具体流程图哪里错了,我就不告诉大家了,下面是错误的流程图,大家自己分析一下吧。挺简单的错误。
image.png

三、代码

#include <iostream>
using namespace std;
int main(){bool flag = false;//用来判断是第几层循环double X0,X1,r;cout<<"请输入初值:"<<endl;cin>>X0;double e;cout<<"请输入误差限:"<<endl;cin>>e;int m;cout<<"请输入下山最大次数:"<<endl;cin>>m;int n;cout<<"请输入迭代最大次数:"<<endl;cin>>n;int k=0;int i=0;while(true){//说明下山成功进行迭代if(r !=1){cout<<"第"<<i<<"步下山因子:"<<r<<endl;}r = 1.0;if(3*X0*X0-1 != 0){while (true){if(flag){flag = false;break;}X1 = X0 - r*(X0*X0*X0 - X0 - 1) / (3.0 * X0*X0 - 1);if(abs(X1*X1*X1 - X1 - 1) > abs(X0*X0*X0 - X0 - 1)){cout<<"第"<<i<<"步下山因子:"<<r<<endl;cout<<"--------------"<<endl;i=i+1;r=r*0.5;if(i>=m){cout<<"重新输入x0"<<endl;return 0;}elsecontinue;}else{if (abs(X1 - X0) <e){cout<<"近似根为:"<<X1<<endl;return 0;}else{k=k+1;X0=X1;if(k>=n){cout<<"迭代失败!"<<endl;return 0;}else{flag = true;continue;}}}}} else{cout<<"奇异标志"<<endl;return 0;}}}

这篇关于计算方法/数值分析牛顿下山法C/C++实现方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/613969

相关文章

postgresql使用UUID函数的方法

《postgresql使用UUID函数的方法》本文给大家介绍postgresql使用UUID函数的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录PostgreSQL有两种生成uuid的方法。可以先通过sql查看是否已安装扩展函数,和可以安装的扩展函数

Python实现终端清屏的几种方式详解

《Python实现终端清屏的几种方式详解》在使用Python进行终端交互式编程时,我们经常需要清空当前终端屏幕的内容,本文为大家整理了几种常见的实现方法,有需要的小伙伴可以参考下... 目录方法一:使用 `os` 模块调用系统命令方法二:使用 `subprocess` 模块执行命令方法三:打印多个换行符模拟

SpringBoot+EasyPOI轻松实现Excel和Word导出PDF

《SpringBoot+EasyPOI轻松实现Excel和Word导出PDF》在企业级开发中,将Excel和Word文档导出为PDF是常见需求,本文将结合​​EasyPOI和​​Aspose系列工具实... 目录一、环境准备与依赖配置1.1 方案选型1.2 依赖配置(商业库方案)二、Excel 导出 PDF

Python实现MQTT通信的示例代码

《Python实现MQTT通信的示例代码》本文主要介绍了Python实现MQTT通信的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1. 安装paho-mqtt库‌2. 搭建MQTT代理服务器(Broker)‌‌3. pytho

Java中Arrays类和Collections类常用方法示例详解

《Java中Arrays类和Collections类常用方法示例详解》本文总结了Java中Arrays和Collections类的常用方法,涵盖数组填充、排序、搜索、复制、列表转换等操作,帮助开发者高... 目录Arrays.fill()相关用法Arrays.toString()Arrays.sort()A

使用zip4j实现Java中的ZIP文件加密压缩的操作方法

《使用zip4j实现Java中的ZIP文件加密压缩的操作方法》本文介绍如何通过Maven集成zip4j1.3.2库创建带密码保护的ZIP文件,涵盖依赖配置、代码示例及加密原理,确保数据安全性,感兴趣的... 目录1. zip4j库介绍和版本1.1 zip4j库概述1.2 zip4j的版本演变1.3 zip4

Nginx安全防护的多种方法

《Nginx安全防护的多种方法》在生产环境中,需要隐藏Nginx的版本号,以避免泄漏Nginx的版本,使攻击者不能针对特定版本进行攻击,下面就来介绍一下Nginx安全防护的方法,感兴趣的可以了解一下... 目录核心安全配置1.编译安装 Nginx2.隐藏版本号3.限制危险请求方法4.请求限制(CC攻击防御)

SpringBoot中六种批量更新Mysql的方式效率对比分析

《SpringBoot中六种批量更新Mysql的方式效率对比分析》文章比较了MySQL大数据量批量更新的多种方法,指出REPLACEINTO和ONDUPLICATEKEY效率最高但存在数据风险,MyB... 目录效率比较测试结构数据库初始化测试数据批量修改方案第一种 for第二种 case when第三种

python生成随机唯一id的几种实现方法

《python生成随机唯一id的几种实现方法》在Python中生成随机唯一ID有多种方法,根据不同的需求场景可以选择最适合的方案,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习... 目录方法 1:使用 UUID 模块(推荐)方法 2:使用 Secrets 模块(安全敏感场景)方法

解决1093 - You can‘t specify target table报错问题及原因分析

《解决1093-Youcan‘tspecifytargettable报错问题及原因分析》MySQL1093错误因UPDATE/DELETE语句的FROM子句直接引用目标表或嵌套子查询导致,... 目录报js错原因分析具体原因解决办法方法一:使用临时表方法二:使用JOIN方法三:使用EXISTS示例总结报错原