用Julia求非线性方程的零点
在朱莉娅的交响曲中经过一个过程后,我生成了一个非线性方程组。为了简单起见,我将在这里对一个非线性方程进行近似。我得到的是这样的等式:用Julia求非线性方程的零点,julia,sympy,nonlinear-functions,nonlinear-equation,Julia,Sympy,Nonlinear Functions,Nonlinear Equation,在朱莉娅的交响曲中经过一个过程后,我生成了一个非线性方程组。为了简单起见,我将在这里对一个非线性方程进行近似。我得到的是这样的等式: 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
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
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中使用Symphy软件包的解决方案。在Julia对话中回答了这个问题: 在多个平台上询问时,交叉参考总是很有帮助的 作为参考,解决方案是
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])
我认为这是数据类型问题。关于包repo,我认为您使用的是函数nlsolve(f,initial_x::AbstractArray;kwargs..)这里第一个变量是一个函数,它对您来说是
R
,而它接受的第二个变量应该是Array
,而您提供的是Float64
数字。尝试以类型数组的形式提供输入。希望这有帮助!!!我尝试了这个,并不断给出错误:nlsolve(R,[5.8])要完全停留在sympy中,就有nsolve。不用尝试,我想朱莉娅的版本会表现得更好,虽然也许可以忽略不计。是的,是我。我在这里问了这个问题后就把它贴了出来。你是如何相互参照的?我必须编辑我的问题并放置链接吗?就像我所做的那样-将链接发布到你提出问题的其他位置!