如何解决将 fsolve 与字符串方程结合使用
我正在尝试使用 fsolve 求解方程,但是我的方程是一个字符串。我尝试使用 eval 但这没有用。有没有办法传递字符串/将字符串转换为 fsolve 可以处理的东西?下面是我的代码:
NULL
解决方法
要解决方程式格式的字符串,可以使用 sympy,Python 的符号数学库。它有一个函数 parse_expr
可以处理 a.o.缺少乘法运算符。
{x: 2,y: 4}
结果:y
单独求解方程,用x
是from sympy import symbols,Eq,solve,lambdify
from sympy.parsing.sympy_parser import parse_expr
from sympy.parsing.sympy_parser import standard_transformations,implicit_multiplication_application
x,y = symbols("x y")
eqn1 = "4x + 3y = 20"
eqn2 = "-5x + 9y = 26"
equations = [eqn1,eqn2]
transformations = (standard_transformations + (implicit_multiplication_application,))
solutions = []
solutions_np = []
for eqn in equations:
sides = [parse_expr(s,transformations=transformations,local_dict={'x': x,'y': y})
for s in eqn.split('=')]
sol = solve([Eq(sides[0],sides[1])],y)
solutions.append(sol[y])
solutions_np.append(lambdify(x,sol[y]))
import numpy as np
import matplotlib.pyplot as plt
xs = np.linspace(-5,10)
for eqn,sol,sol_np in zip(equations,solutions,solutions_np):
plt.plot(xs,sol_np(xs),label=f'${eqn}$; $y = {sol}$')
plt.legend()
plt.show()
的函数,lambdify()
可以将解转换为numpy函数。下面是一些示例代码,将每个方程转换为函数,然后绘制它们。
import React from 'react'
const DeleayComponent = () => {
const [show,setShow] = React.useState(false)
React.useEffect(() => {
setTimeout(() => {
setShow(true)
},5000)
},[show])
if (!show) return null
return <>OK,Render</>
}
export default DeleayComponent
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。