首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >多值多非线性方程的矢量化求解

多值多非线性方程的矢量化求解
EN

Stack Overflow用户
提问于 2018-02-08 03:49:17
回答 2查看 1.7K关注 0票数 3

fsolve根据初始估计值找到(一组)非线性方程组的解。我可以向量化我的函数调用,以在多个起点上使用fsolve,并可能找到多个解决方案,如here所解释的那样。在this问题中,描述了如何用fsolve求解多个非线性方程组。然而,我遇到了将两者结合在一起的问题,即从多个初始值求解多个非线性方程。我知道我总是可以遍历我的起始值并使用第二个posts答案,但是,我必须这样做可能超过100000分,我真的试图找到一个更pythonic (希望更快)的解决方案。

我尝试了不同的方法,例如以下方法(以及许多其他方法):

代码语言:javascript
运行
AI代码解释
复制
from scipy.optimize import fsolve
import numpy as np

def equations(x): # x+y^2-4, sin(x)+x*y-3
    ret = np.array([x[:,0]+x[:,1]**2-4, np.sin(x[:,0]) + x[:,0]*x[:,1] - 3]).T
    return ret

p1 = np.array([0,0]) # first initial value
p2 = np.array([1,1]) # second initial value
x0 = np.array([p1,p2])

print(x0[0,1])
print(equations(x0))
print(fsolve(equations, x0=x0))

形状和所有的工作,但是fsolve抛出:'IndexError:太多的数组索引‘我尝试了一些不同的方法,但是除了使用一个简单的for循环之外,我不能在这上面写出任何有效的代码。有什么建议吗?

EN

回答 2

Stack Overflow用户

发布于 2018-02-08 07:29:39

使用joblib怎么样?这不是直接的向量化,但不同的起点将并行执行。

代码语言:javascript
运行
AI代码解释
复制
from scipy.optimize import fsolve
import numpy as np
from joblib import Parallel, delayed

def equations(x): # x+y^2-4, sin(x)+x*y-3
    ret = np.array([x[0]+x[1]**2-4, np.sin(x[0]) + x[0]*x[1] - 3]).T
    return ret

p1 = np.array([0,0]) # first initial value
p2 = np.array([1,1]) # second initial value
x0 = [p1, p2]

sol = Parallel(n_jobs=2)(delayed(fsolve)(equations, x0=p) for p in x0)
print(sol)

参数n_jobs控制正在运行的并发作业的数量。

票数 1
EN

Stack Overflow用户

发布于 2018-02-08 04:41:44

代码语言:javascript
运行
AI代码解释
复制
def eq(x):
     return x[0] + x[1]**2 - 4 , np.sin(x[0]) + x[0]*x[1] - 3

fsolve(eq, [0, 1])

output: array([ 1.23639399,  1.6624097 ])

在这种情况下,我建议使用暴力方法:

代码语言:javascript
运行
AI代码解释
复制
x0 = [[i, j] for i, j in zip(range(10), range(10))]

for xnot in x0:
    print(fsolve(eq, xnot))

[  1.33088471e-07   2.09094320e+00]
[ 1.23639399  1.6624097 ]
[ 1.23639399  1.6624097 ]
[ 1.23639399  1.6624097 ]
[ 1.23639399  1.6624097 ]
[ 1.23639399  1.6624097 ]
[ 1.23639399  1.6624097 ]
[ 1.23639399  1.6624097 ]
[ 1.23639399  1.6624097 ]
[ 1.23639399  1.6624097 ]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48677230

复制
相关文章
4.2 非线性方程求解
这里主要以简单的牛顿迭代法介绍非线性方程的求解,维基百科对“牛顿迭代法”的解释:
周星星9527
2018/08/08
9380
4.2 非线性方程求解
Matlab求解非线性方程的根
fzero函数可以用于求一个一元方程的根。通过用于指定起始区间的单元素起点或双元素向量调用该函数。如果为fzero提供起点x0,fzero将首先搜索函数更改符号的点周围的区间。如果找到该区间,fzero返回函数更改符号的位置附近的值。如果未找到此类区间,fzero 返回 NaN。或者,如果知道函数值的符号不同的两个点,可以使用双元素向量指定该起始区间;fzero 保证缩小该区间并返回符号更改处附近的值。
用户9925864
2022/07/27
7530
#数值分析读书笔记(4)求非线性方程的数值求解
是否同号, 然后即可知根落在左侧还是右侧, 用这个中点来代替掉原来的端点, 然后得到一个新的区间, 如此反复迭代下去之后, 我们会发现区间收敛到接近一个数
Mezereon
2018/09/13
1.1K0
#数值分析读书笔记(4)求非线性方程的数值求解
非线性方程(一)
此为全书第一章,主matlab入门——通过学习各种插值法:反线性插值、牛顿法之类。
全栈程序员站长
2022/09/20
2550
非线性方程(一)
非线性方程组求解迭代算法&图像寻初始值讲解
前段时间过冷水在学习中遇到了一个解非线性方程组的问题,遇到非线性方程组的的问题过冷水果断一如既往、毫不犹豫的 fsolve()、feval()函数走起,直到有人问我溯本求源的问题——非线性方程组求解算法。
巴山学长
2020/10/23
1.3K0
非线性方程组求解迭代算法&图像寻初始值讲解
非线性方程(组)迭代解法
非线性迭代方法的理论基础是泰勒(Taylor)级数展开。 对于一关于x的非线性方程f(x)=0,其关于x0点的泰勒(Taylor)级数展开式为: 当从二阶开始截断,只保留前两项可得: 由于截断,只能得
fem178
2018/04/08
1.5K0
非线性方程(组)迭代解法
【组合数学】递推方程 ( 无重根递推方程求解实例 | 无重根下递推方程求解完整过程 )
文章目录 一、斐波那契数列求解 二、无重根下递推方程求解完整过程 一、斐波那契数列求解 ---- 1 . 斐波那契数列示例 : ( 1 ) 斐波那契数列 : 1 , 1 , 2 , 3 , 5 , 8 , 13 , \cdots ( 2 ) 递推方程 : F(n) = F(n-1) + F(n-2) 描述 : 第 n 项等于第 n-1 项 和 第 n-2 项之和 ; 如 : 第 4 项的值 F(4) = 5 , 就等于 第 4-1=3 项的值 F(4-1)=F(3) = 3 加
韩曙亮
2023/03/28
7130
[python从入门到放弃]安装Anaconda python求解方程(组)
1 https://www.anaconda.com/ 下载对应的anaconda安装包,一路下一步完成安装;
周星星9527
2019/11/18
1.6K0
PINN神经网络求解burger方程
在x方向、时间t上均匀取值,预测对应的u。计算速度较慢,使用了一层进行测试,纵坐标为x,均分为200,横坐标为t,均分为100
福贵
2023/03/21
9570
PINN神经网络求解burger方程
Matlab求解非线性规划(fmincon函数的使用)[通俗易懂]
最近写文章需要用到fmincon函数做优化,于是抽空学习一下;按照惯例,继续开个博文记录一下学习的过程
全栈程序员站长
2022/09/02
1.7K0
数学|如何求解线性方程系数?
线性方程在生活的出现的比例很高,很多地方都可以出现它的身影。这些方程都是通过对实际数据的分析处理得来的,那么这些方程到底该如何确定呢?就像下面的散点图,如何通过它得到一个线性方程?
算法与编程之美
2020/04/15
1.1K0
Matlab求解非线性规划(fmincon函数的使用)
最近写文章需要用到fmincon函数做优化,于是抽空学习一下;按照惯例,继续开个博文记录一下学习的过程
小黑鸭
2020/11/24
11.6K0
使用Maxima求解常微分方程~
含带导数符号或带微分符号的未知函数的方程称为微分方程。 如果在微分方程中未知函数是一个变元的函数,这样的微分方程称为常微分方程。
Enjoy233
2019/03/05
1.7K0
使用Maxima求解常微分方程~
差分方程及求解MATLAB实现
1.学习并掌握系统的差分方程表示方法以及差分方程的相关概念。 2.熟练使用filter函数对差分方程进行数值求解。 3.掌握差分方程的求解及MATLAB实现方法。
timerring
2022/07/20
2.7K0
差分方程及求解MATLAB实现
Matlab求解微分代数方程 (DAE)
周末有位同学请教了一个问题,他要求解一个微分方程组,但微分方程变量之间还有个线性方程组关系,这个就是典型的微分代数方程 ,Matlab里面有专门的求解方法,
用户9925864
2022/07/27
1.4K0
Matlab求解微分代数方程 (DAE)
matlab求解不定方程组_matlab解参数方程组
最想说的一句话:要查matlab用法,一定要到官网去查,一些用法matlab官方是在不断更新的,现存的一些办法已经无法解决问题
全栈程序员站长
2022/10/05
1.1K0
数学——Euler方法求解微分方程详解
用Euler算法求解初值问题 \[ \frac{dy}{dx}=y+\frac{2x}{y^2}\] 初始条件\(y(0)=1\),自变量的取值范围\(x \in [0, 2]\)
py3study
2020/01/22
2.4K0
Matlab/Simulink求解微分方程样例分享
这次分享是前两天有个同学咨询了一个关于simulink求解微分方程题目,故借着这个题目和读者分享一下Matlab/Simulink求解微分方程
用户9925864
2022/07/27
3.1K0
Matlab/Simulink求解微分方程样例分享
matlab求解微分方程组(matlab解微分方程的数值解)
其中,ydot为一个列向量,值分别表示y‘(1)、y‘(2)、y‘(3)的取值,t自因变量,y为因变量,一个y就可以表示因变量组了。事实上,说白了,这个函数就是申明一下变量使t和y,以及y一阶导的右端项为那三个。 接着,编写主函数如下:
全栈程序员站长
2022/08/01
1.7K0
matlab求解微分方程组(matlab解微分方程的数值解)
求微分方程的特解matlab_二阶微分方程求解
求解y关于什么的函数就要声明为y (x) ,必须使用syms来声变量, 否则会被警告
全栈程序员站长
2022/11/17
9420
求微分方程的特解matlab_二阶微分方程求解

相似问题

求解非线性方程

122

Python求解非线性(超越)方程

22

如何渐近求解非线性方程?

12

求解非线性代数方程

15

用python求解colebrook (非线性)方程

32
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档