小编Fam*_*Fam的帖子

使用 Julia 查找非线性方程的零

在使用 Julia 中的 SymPy 进行一个过程之后,我生成了一个非线性方程组。为简单起见,我将在此处对非线性方程进行近似处理。我得到的是这样的等式:

R = (p) -> -5.0488*p + p^2.81 - 3.38/( p^(-1.0) )^2.0
Run Code Online (Sandbox Code Playgroud)

我可以绘制 R 函数

using Plots
plot(R, 0,8)
Run Code Online (Sandbox Code Playgroud)

我们可以看到 R 函数有两个零:p = 0 和 5.850< p < 8.75。我想找到正零。为此,我尝试了 nlsolve 函数,但出现错误:

using NLsolve
nlsolve(R , 5.8)

MethodError: no method matching nlsolve(::var"#1337#1338", ::Float64)
Closest candidates are:
nlsolve(::Any, ::Any, !Matched::AbstractArray; inplace, kwargs...)

Run Code Online (Sandbox Code Playgroud)

首先,我的 nlsolve 函数哪里出了问题?

如果可能,我会很感激在 Julia 中使用 SymPy 包的解决方案。

sympy nonlinear-functions julia nonlinear-equation

5
推荐指数
1
解决办法
76
查看次数