在 Python 中使用 Fsolve

本文将探讨如何使用 fsolve 在 Python 中求解。 我们还将探索它的使用场景和一些示例代码,以更好地理解如何以及何时使用它来达到某种结果。

让我们首先了解 fsolve 是什么以及为什么使用它。


Python 中的 fsolve 函数

方程是数据科学的根源,它们帮助数据科学家、数学家、化学工程师和医生理解他们日常处理的各种场景。 现在,随着计算机融入我们的日常生活,连续求解更大规模的方程变得越来越困难。

Python 的 fsolve 使这些专业人士和其他人可以更轻松地使用 Python 库提供的不同模块来求解这些方程。 fsolve 本质上是一个返回非线性方程根的 SciPy 模块。

fsolve 为各种场景提供了各种参数。 这些可以直接从在线提供的 SciPy 文档中轻松找到。

这是 fsolve 的整个参数列表:

示例代码:

scipy.optimize.fsolve (func, x0, args=(), fprime=None, full_output=0, col_deriv=0, xtol=1.49012e-08, maxfev=0, band=None, epsfcn=None, factor=100, diag=None)

您可以在 SciPy 文档中找到所有参数及其含义的详细说明。 然而,我们将对这些参数进行简短但易于理解的总结:

参数说明
func, callable f(x, *args)
x0, ndarray该参数表示函数 f(x)=0 的根的初始估计值。
args、tuple(可选)这些是函数可能需要的任何额外参数。
fprime,callable f(x, *args) (可选)这是一个用于计算函数雅可比行列式与行间导数的估计值的函数。
full_output, bool(可选)如果满足条件或 True,则返回任何可选输出值。
col_deriv, bool (可选)通过此参数,您可以指定雅可比函数是否计算列的导数。 根据 SciPy 文档,由于没有转置操作,因此速度更快。
xtol, float(可选)此参数将允许函数根据两个连续迭代值之间相对误差的最大 xtol 终止计算。
maxfev, int (可选)这定义了函数调用的最大次数。
band、tuple(可选)这适用于 fprime 设置为 None 时。 如果参数设置为包含矩阵内子对角线和超对角线数量的二序列,则雅可比矩阵被视为带状。
epsfcn, float(可选)如果 fprime 设置为 None,则此参数将包含用于近似雅可比行列式前向差的合适步长长度。 如果 epsfcn 小于机器精度,则函数中的相对误差被假定为机器精度的量级。
factor,float(可选)此参数确定初始步长界限,并且必须介于 (0.1, 100) 之间。
diag、sequence(可选)这些 N 正条目用作变量的比例因子。

使用 fsolve 函数在 Python 中求解

您现在可能已经知道,fsolve 可用于不同场景中的各种非线性方程。 让我们探索一些简单的代码示例,以更好地掌握如何使用 fsolve:

以 -0.2 为起点求方程 x+2cos(x) 的根

示例代码:

from math import cos
import scipy.optimize
def func(x):y = x + 2*cos(x)return y
y = scipy.optimize.fsolve(func,0.2)
print (y)

在此代码中,我们从 Python 中庞大的数学库导入 cos 函数,并从 scipy(fsolve 的来源)进行优化。 接下来,我们定义方程并将其存储在 func 方法中的 y 中。

正确初始化方程后,我们只需使用 fsolve 调用包含方程的方法 (func)。 在第二个参数中,我们定义方程的起点。

然后结果存储在变量 y 中,并打印输出。

代码的输出:

[-1.02986653]

求解起点为 0 和 2 的方程

示例代码:

from math import cos
import scipy.optimize
def func(x):y = [x[1]*x[0] - x[1] - 6, x[0]*cos(x[1]) - 3]return y
x0 = scipy.optimize.fsolve(func,[0, 2])
print(x0)

在此代码中,我们遵循与代码 1 相同的步骤,从 Python 的 math 和 scipy 库导入 cos 和 scipy.optimize。 我们通过在名为 func 的方法中定义方程来继续下一步。

然后,我们将此方法称为 fsolve 函数中的参数,并为其提供两个起点 0 和 2,然后将其存储并打印在名为 x0 的变量中。

代码的输出:

[6.49943036 1.09102209]

以 0.3 为起点求方程 4sin(y)-4 的根

示例代码:

from math import sin
import scipy.optimize
def func(y):x= 4*sin(y) - 4return x
x= scipy.optimize.fsolve(func,0.3)
print (x)

在此示例代码中,我们从数学库导入 sin 而不是 cos。 代码的结构与上面的示例相同,我们还为 fsolve 导入 scipy.optimize,然后在方法 func 中定义一个方程。

我们将此方法称为 fsolve 中的参数,起点为 0.3。 结果值存储在变量 x 中并打印输出。

代码的输出:

[1.57079633]

在本文中,我们了解了 fsolve 用于求非线性方程的根,了解了 fsolve 可以采用的不同类型的参数以及每个参数的含义。 此外,我们还浏览了 fsolve 的一些工作示例,并研究了如何在代码中使用它。

现在您已经了解了如何使用 fsolve 导出解决方案的理论和实际代码示例,现在是时候创建您自己的代码来进一步探索 fsolve 的工作原理了。

我们希望本文有助于您理解如何使用 fsolve 解决 Python 中的问题。

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

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

相关文章

微前端二:qiankun

qiankun是基于Single-spa开发的框架,所以我们先来看下Single-spa是怎么做的: Single-spa 是最早的微前端框架,兼容多种前端技术栈,是一个将多个单页面应用聚合为一个整体应用的 JavaScript 微前端框架; 优点&#xf…

数据结构原理与分析知识点

知识点 在数据结构中,从逻辑上可以把数据结构分为线性结构和非线性结构算法分析:时间复杂性和空间复杂性算法---解决问题的有限运算序列栈的操作原则是后进先出在长度为n的顺序表的第 i(1≤i≤n 1)个位置上插入一个元素&#xff…

APP应用开发sdk版本过低可能性原因问题排查及解决方案

同学们,在移动 app 开发中,提示sdk版本过低缺找不到原因的情况都知道的吧哈哈哈,这个我觉得我有必要全面的分析和排查,让同学们看完这个文章都得以解决。这是我的初衷奈何地主家里也没有余粮呀(我也不能完全总结出来&a…

《动手学深度学习 Pytorch版》 8.7 通过时间反向传播

8.7.1 循环神经网络的梯度分析 本节主要探讨梯度相关问题,因此对模型及其表达式进行了简化,进行如下表示: h t f ( x t , h t − 1 , w h ) o t g ( h t , w o ) \begin{align} h_t&f(x_t,h_{t-1},w_h)\\ o_t&g(h_t,w_o) \end{ali…

用 Python 这样去创建词云不是更美嘛?

什么是词云?在网络上我们经常可以看到一张图片,上面有一大堆大小不一的文字,这便是词云。词云一般是根据输入的大量词语生成的,如果某个词语出现的次数越多,那么相应的大小就会越大。 Python 中有一个专门用来生成词云…

spring-cloud-starter-gateway踩坑

1.bean of type org.springframework.http.codec.ServerCodecConfigurer that could not be found. 需要将项目中用到的spring-boot-starter-web依赖给去掉 去掉以下的 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-bo…

智慧公厕:打造未来城市公共设施的智慧选择

随着信息技术的不断发展&#xff0c;城市公共设施需要实现个性化、高效化和智能化&#xff0c;其中包括公共厕所。智慧公厕是一种结合物联网、互联网、人工智能、云计算、大数据和传感感知等技术的新型公厕&#xff0c;旨在提高公共厕所管理效率、跨区域跨系统的联网管理、自动…

C# .Net6 指定WSDL, 生成Webservice,调用该接口服务

C# .Net6 指定WSDL, 调用该接口服务。 IDE&#xff1a; Microsoft Visual Studio Community 2022 (64 位)平台&#xff1a;.Net6协议&#xff1a;Soap协议 Xml格式 功能 需要开发一个前置机程序&#xff0c; 用于和硬件程序交互&#xff0c;已知条件是&#xff1a;嵌入式同事…

【C++入门 一 】学习C++背景、开启C++奇妙之旅

目录 1.什么是C2. C的发展史3. C的重要性3.1 语言的使用广泛度3.2 在工作领域1. 操作系统以及大型系统软件开发2. 服务器端开发3. 游戏开发4. 嵌入式和物联网领域5. 数字图像处理6. 人工智能7. 分布式应用 3.3 在校招领域3.3.1 岗位需求3.3.2 笔试题 4. 如何学习C4.1 别人怎么学…

WAL 模式(PostgreSQL 14 Internals翻译版)

性能 当服务器正常运行时&#xff0c;WAL文件不断被写入磁盘。但是&#xff0c;这些写操作是顺序的:几乎没有随机访问&#xff0c;因此即使是HDD也可以处理这个任务。由于这种类型的加载与典型的数据文件访问非常不同&#xff0c;因此有必要为WAL文件设置一个单独的物理存储&a…

数据结构之堆

目录 前言 堆的概念与结构 堆的实现 堆的初始化 堆的销毁 堆的显示 堆的插入 堆的向上调整算法 堆的删除 堆的向下调整算法 堆的判空 获取堆顶元素 堆的数据个数 堆的创建 前言 二叉树的顺序结构存储即使用数组存储&#xff0c;而数组存储适用于完全二叉树&#xf…

XSS攻击(2), XSS分类, 测试方法, 防御方法, 绕过方法

XSS攻击, XSS分类, 测试方法, 防御方法 对于所有类型的XSS渗透测试&#xff0c;确保您有适当的权限进行测试&#xff0c;以避免非法或不受欢迎的行为。 此外&#xff0c;渗透测试工具和框架&#xff0c;如Burp Suite或OWASP ZAP&#xff0c;可以帮助自动化一些测试任务并识别潜…

【具身智能综述1】A Survey of Embodied AI: From Simulators to Research Tasks

论文标题&#xff1a;A Survey of Embodied AI: From Simulators to Research Tasks 论文作者&#xff1a;Jiafei Duan, Samson Yu, Hui Li Tan, Hongyuan Zhu, Cheston Tan 论文原文&#xff1a;https://arxiv.org/abs/2103.04918 论文出处&#xff1a;IEEE Transactions on E…

柯桥银泰附近有学德语的地方吗,留学德语培训

01 die Garantiefr jemandem/etwas 给某人或某事的保障 Das System bietet die Garantie fr die Bauer. 02 der Gebrauch von etwas 使用某物 Wir haben den Gebrauch vom Computer gelerbt. 我们学会了使用电脑。 03 Die Geduld mit jemandem/etwas 对..的耐心 Der Lehre…

智慧河湖方案:AI赋能水利水务,构建河湖智能可视化监管大数据平台

一、方案背景 我国江河湖泊众多&#xff0c;水系发达。伴随着经济社会快速发展&#xff0c;水生态水环境问题成为群众最关注的民生议题之一。一些河流开发利用已接近甚至超出水环境承载能力&#xff0c;一些地区废污水排放量居高不下&#xff0c;一些地方侵占河道、围垦湖泊等…

如何在不恢复出厂设置的情况下解锁 Android 手机密码?

如何在不恢复出厂设置的情况下解锁 Android 手机密码&#xff1f; 当您忘记 Android 手机的密码时&#xff0c;可能会有压力&#xff0c;尤其是当您不想恢复出厂设置并删除所有数据时。但是&#xff0c;有一些方法可以在不诉诸如此激烈的步骤的情况下解锁手机。我们将在这篇文…

C#获取指定软件安装路径

作用 每个电脑安装的路径不一致会导致无法动态获取指定软件的安装路径&#xff0c;通过注册表来获取安装路径 代码 RegistryKey registryKeyPro Registry.LocalMachine.OpenSubKey("SOFTWARE\\****"); string installDir (string)(registryKeyPro.GetValue(&quo…

数据仓库扫盲系列(1):数据仓库诞生原因、基本特点、和数据库的区别

数据仓库的诞生原因 随着互联网的普及&#xff0c;信息技术已经深入到各行各业&#xff0c;并逐步融入到企业的日常运营中。然而&#xff0c;当前企业在信息化建设过程中遇到了一些困境与挑战。 1、历史数据积存。 过去企业的业务系统往往是在较长时间内建设的&#xff0c;很…

华为OD 打印任务排序(100分)【java】A卷+B卷

华为OD统一考试A卷+B卷 新题库说明 你收到的链接上面会标注A卷还是B卷。目前大部分收到的都是B卷。 B卷对应20022部分考题以及新出的题目,A卷对应的是新出的题目。 我将持续更新最新题目 获取更多免费题目可前往夸克网盘下载,请点击以下链接进入: 我用夸克网盘分享了「华为O…

电动汽车打气泵芯片方案

汽车轮胎打气泵方案采用高集成的SOC芯片设计&#xff0c;8位RISC架构的高性能单片机&#xff0c;集成了24Bit高精度ADC和LCD显示模块&#xff0c;内部集成8k*16Bits的MTP程序存储器&#xff1b;具有RISC CPU、模拟器功能、专用微控制等功能特点。丰富的芯片资源在汽车轮胎打气泵…