Python迭代法Iteration的讲解及求解海藻问题、方程问题实战(超详细 附源码)

news2024/11/26 10:18:27

一、迭代法简介

迭代法(iteration)是现代计算机求解问题的一种基本形式。迭代法与其说是一种算法,更是一种思想,它不像传统数学解析方法那样一步到位得到精确解,而是步步为营,逐次推进,逐步接近。迭代法又称辗转法或逐次逼近法。

迭代法的核心是建立迭代关系式。迭代关系式指明了前进的方式,只有正确的迭代关系式才能取得正确解。

二、迭代法解决海藻问题

问题描述:

假设在空池塘中放入一颗水藻,该类水藻会每周长出三颗新的水藻,问十周后,池塘中有多少颗水藻?

第1周的水藻数量:1;

第2周的水藻数量:1+1×3;

第3周的水藻数量:1+1×3+(1+1×3)×3

可以归纳出从当前周水藻数量到下一周水藻数量的迭代关系式。设上周水藻数量为x,从上周到本周水藻将增加的数量为y,本周的水藻数量为x^′,那么在一次迭代中

y←3x

x^′←x+y

迭代开始时,水藻的数量为1,为迭代法的初始条件。

迭代次数为9(不包括第一周),为迭代过程的控制条件。

解决代码如下

x = 1 # 初始条件:第一周水藻数量
times = 1 # 迭代次数
while times < 10: # 迭代过程
    y = 3 * x
    x = x + y
    times += 1
    print("第%d周的水藻数量:%d" % (times, x))

 

 

三、迭代法解方程

迭代法是求解机器学习问题的基本方法,有着广泛的应用。

用迭代法求方程的解时,每次迭代都得到一个新的x值,将每次迭代得到的x值依序排列就可得到数列{x_k}。设x_0为初值。

在用迭代法求解方程时有个常用的迭代关系式建立方法:先将方程f(x)=0变换为x=φ(x),然后建立起迭代关系式:

x_k+1=φ(x_k)

如果{x_k}收敛于x^∗,那么x^∗就是方程的根,因为:

x^∗=lim┬k→∞x_k+1=lim┬k→∞φ(x_k)=φ(lim┬k→∞x_k)=φ(x^∗)

即,当x=x^∗时,有f(x)=x−φ(x)=0。

用迭代法求下列方程的解:

迭代关系式为:

x^3+e/2^x+5x−6=0

迭代的结束条件是实际应用时需要考虑的问题,在该例中没有明确的结束条件。在无法预估时,可采用控制总的迭代次数的办法。

 代码如下

import math
x = 0
for i in range(100):
    x = (6 - x**3 - (math.e**x)/2.0)/5.0
    print(str(i)+":"+str(x))

也可以根据数列{x_k}的变化情况来判断,如将|x_k+1−x_k|的值小于某个阈值作为结束的标准。还可以将两种办法结合使用。

 

 

代码如下

x = 0 # 初始条件
delta = 0.00001 # 控制退出条件
times = 0 # 用来显示迭代次数
while True: # 条件为True,如果没有别的退出手段,while循环将会无限进行下去
    x_old = x
    x = (6 - x**3 - (math.e**x)/2.0)/5.0 
    print(str(times)+":"+str(x))
    times += 1
    if abs(x - x_old) < delta:
        break # 如果符合退出条件,则直接退出循环

 创作不易 觉得有帮助请点赞关注收藏~~~

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

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

相关文章

[附源码]Python计算机毕业设计高校本科毕业及资料存档管理系统Django(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程 项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等…

十二、JavaScript——其他数据类型

布尔值 &#xff08;boolean&#xff09;- 布尔值主要用于进行逻辑判断 - 布尔值只有两个 true 和 false (不用加引号) 空指 (null) - 空值用来表示空对象 - 空指只有一个 NULL - 用typeof检查空值时返回object 未定义 &…

二面蚂蚁金服(交叉面),已拿offer,Java岗定级阿里P6

记一次蚂蚁金服Java程序员面试经历&#xff08;均为交叉面&#xff09; ​ 编辑切换为居中 添加图片注释&#xff0c;不超过 140 字&#xff08;可选&#xff09; 一面 自我介绍 项目中的监控&#xff1a;那个监控指标常见的有哪些&#xff1f; 微服务涉及到的技术以及需要…

数据模型篇之大数据领域建模综述

第8章 大数据领域建模综述 1.为什么需要数据建模 为了更好的将数据进行有序、有结构地分类组织和存储。数据模型就是数据组织和存储方法&#xff0c;它强调从业务、数据存取和使用角度合理存储数据。 数据建模的好处&#xff1a; 性能&#xff1a;良好的数据模型能帮助我们快…

4款国产实用软件,只因功能强大,常被误认为是外国人开发的

过去常听说国外的XXX好&#xff0c;国外的月亮一定更圆&#xff0c;国产软件一样很良心&#xff0c;然而由于偏见&#xff0c;却被误认为是外国人开发的&#xff0c;闹出笑话。 1、Cruiser EXP Alpha 这是我见过最强大的电脑工具箱&#xff0c;没有之一&#xff0c;收纳了超120…

被新华社技术局点名!中国电信这个“黑盒子”干啥了?

全媒体时代&#xff0c;新闻报道又快又好&#xff0c;需要先进技术提供有力支撑。近日&#xff0c;中国电信收到新华社通信技术局感谢信&#xff0c;点赞中国电信5G商企专网产品&#xff0c;基于5G专线进行点对点快速组网&#xff0c;实现了前方报道重要节点物理线路的“空天备…

Springboot整合EasyExcel,实现Excel文件上传

一、概念 EasyExcel是一个基于Java的、快速、简洁、解决大文件内存溢出的Excel处理工具。 它能让你在不用考虑性能、内存的等因素的情况下&#xff0c;快速完成Excel的读、写等功能。EasyExcel是在尽可能节约内存的情况下支持读写百M的Excel。 二、Excel的上传(读Excel) 1.E…

Spring Batch 批处理-作业增量参数

引言 接着上篇&#xff1a;Spring Batch 批处理-作业参数校验&#xff0c;了解作业参数校验后&#xff0c;本篇就来了解一下Spirng Batch 作业增量参数。 作业增量参数 不知道大家发现了没有&#xff0c;每次运行作业时&#xff0c;都改动作业名字&#xff0c;或者改动作业的…

php就业招聘系统mysql数据库web结构计算机软件工程网页wamp

一、源码特点 PHP就业招聘系统 是一套完善的web设计系统&#xff0c;对理解php编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环 境为PHP APACHE&#xff0c;数据库为mysql5.0&#xff0c;使用php语言开发。 php就…

【C00098】基于SSM的校园疫情防控管理系统——可视化大屏

基于SSM的校园疫情防控管理系统——可视化大屏项目简介项目获取开发环境项目技术运行截图注意&#xff1a;2022年最新款&#xff0c;全网唯一&#xff01;&#xff01; 先到先得&#xff01;&#xff01; 项目简介 基于ssm框架开发的校园疫情防控管理系统共分为四个角色&…

非零基础自学Golang 第6章 Go语言内置容器 6.3 映射

非零基础自学Golang 文章目录非零基础自学Golang第6章 Go语言内置容器6.3 映射6.3.1 声明映射6.3.2 初始化映射6.3.3 遍历映射6.3.4 从映射中删除键值对第6章 Go语言内置容器 6.3 映射 映射&#xff08;map&#xff09;是一种无序的键值对的集合&#xff0c;map的键类似于索引…

聚观早报 | 特斯拉上线Steam平台;苹果CEO库克访问索尼

今日要闻&#xff1a;特斯拉上线Steam平台&#xff1b;苹果CEO库克访问索尼&#xff1b;三星向华为转让多项专利&#xff1b;NASA将在太空调查水资源&#xff1b;传推特拖欠总部租金数周特斯拉上线Steam平台 12 月 14 日消息&#xff0c;特斯拉已经为其ModelS和ModelX电动汽车上…

建筑建材企业如何高效进行合同签署?数商云B2B系统推动企业合同签约规范化

建筑建材行业作为重要的材料工业&#xff0c;其主要产品包括建筑材料及制品、非金属矿及制品、无机非金属新材料三大门类&#xff0c;现广泛应用于建筑、军工、环保、高新技术产业和人民生活等领域&#xff0c;占国民生产总值的20&#xff05;左右&#xff0c;但目前建筑建材行…

开关电源环路稳定性分析(08)——电流型补偿网络

大家好&#xff0c;这里是大话硬件。 在上一节分析了3种类型的电压型补偿网络&#xff0c;当然前面的内容还达不到环路补偿的要求&#xff0c;在后面会有内容对其进行补充。我们先把整个开关电源的闭环控制所需要基本知识点过一遍&#xff0c;再针对性的分析。 这一讲我们来分…

源码角度详解Java中的优先队列PriorityQueue(堆的实现)

if (e null) throw new NullPointerException(); modCount; int i size; if (i > queue.length) grow(i 1); size i 1; if (i 0) queue[0] e; else siftUp(i, e); return true; } 在offer方法中&#xff0c;我们会先判断数组是否需要扩容&#xff0c;然…

DataX 原理解析和性能优化

datax简介 datax是阿里开源的用于异构数据源之间的同步工具&#xff0c;由于其精巧的设计和抽象&#xff0c;数据同步效率极高&#xff0c;在很多公司数据部门都有广泛的使用。本司基于datax在阿里云普通版的rds服务器上实现了通过公网&#xff0c;从阿里云杭州到美国西部俄勒…

一种基于Spark深度随机森林的网络入侵检测模型

一种基于Spark深度随机森林的网络入侵检测模型学习目标学习内容目前存在的不足为了解决这个问题特征分片深度并行随机森林Deep Parallel Random Forest(DPRF)投票策略Spark 上的并行化高复用缓存计算每个RDD的权重分层替换模型评估局限性参考论文申明&#xff1a; 未经许可&…

ASP.NET Core Web API 学习笔记

目录 一、Demo 1. 创建项目 2. 启动项目 3. 编写 api demo 二、C# .NET WEB 程序结构 一、Demo 1. 创建项目 创建的项目结构如下: Properties 配置文件&#xff0c;存放了一些 .json 文件用于配置 ASP.NET Core 项目 Propertics/launchSettings.json 启动配置文件&…

以岭药业:连花清瘟火爆背后,数字化重塑人力资源管理

近日&#xff0c;随着疫情防控政策“国十条”发布&#xff0c;新冠防疫政策逐步进入后防疫时代&#xff0c;每个人要做自己健康的“第一责任人”。而连花清瘟作为中医药治疗新冠肺炎筛选出的“三药三方”之一&#xff0c;也成为新疫情防控模式下的家庭常备药。连花清瘟自上市以…

怎么将图片内容转换成文字?这两种方法可以轻松实现

如何将图片的内容转换成文字呢&#xff1f;大家在使用图片文件的时候&#xff0c;遇到那种图片中包含一些有用的文字信息时&#xff0c;没有办法直接复制下来使用&#xff0c;只能对照着图片将文字信息给记录下来&#xff0c;这样会很耗费我们的时间。其实是有方法能够直接将图…