gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 11:35:23 25 4
gpt4 key购买 nike

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

R = (p) -> -5.0488*p + p^2.81 - 3.38/( p^(-1.0) )^2.0
我可以绘制 R 函数
using Plots
plot(R, 0,8)
我们可以看到 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...)

首先,我的 nlsolve 函数哪里出了问题?
如果可能,我会很感激在 Julia 中使用 SymPy 包的解决方案。

最佳答案

这个问题已经在 J​​ulia 的讨论中得到了回答:https://discourse.julialang.org/t/find-zero-of-a-nonlinear-equation-using-julia/61974
在多个平台上询问时,交叉引用总是有帮助的。
作为引用,解决方案是

using NLSolve

function R(F,p) #p is a vector too, not a number
F[1] = -5.0488*p[1] + p[1]^2.81 - 3.38/( p[1]^(-1.0) )^2.0
end

nlsolve(R , [5.8])

关于julia - 使用 Julia 查找非线性方程的零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67730762/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com