【问题标题】:Plotting graph in Julia with Float64 error使用 Float64 错误在 Julia 中绘制图形
【发布时间】:2021-11-04 10:31:03
【问题描述】:
using Plots
α = 1
γ = 1.5

y(x) = -α(1-(γ*x)^(2))*exp(-0.5*γ*x^(2))
plot(y,-3,3)

我不知道如何解决这个错误。

MethodError: objects of type Int64 are not callable
 1. y(::Float64)@Local: 2
 2. (::Base.var"#62#63"{RecipesPipeline.var"#7#8"{Symbol},typeof(Main.workspace315.y)})(::Float64)@operators.jl:875
 3. (::PlotUtils.var"#27#29"{Base.var"#62#63"{Base.var"#62#63"{RecipesPipeline.var"#7#8"{Symbol},typeof(Main.workspace315.y)},RecipesPipeline.var"#9#10"{Symbol}}})(::Float64)@adapted_grid.jl:46
 4. _broadcast_getindex_evalf@broadcast.jl:648[inlined]
 5. _broadcast_getindex@broadcast.jl:621[inlined]
 6. getindex@broadcast.jl:575[inlined]
 7. copy@broadcast.jl:876[inlined]
 8. materialize(::Base.Broadcast.Broadcasted{Base.Broadcast.DefaultArrayStyle{1},Nothing,PlotUtils.var"#27#29"{Base.var"#62#63"{Base.var"#62#63"{RecipesPipeline.var"#7#8"{Symbol},typeof(Main.workspace315.y)},RecipesPipeline.var"#9#10"{Symbol}}},Tuple{Array{Float64,1}}})@broadcast.jl:837
 9. #adapted_grid#26(::Int64, ::Float64, ::typeof(PlotUtils.adapted_grid), ::Any,
    ::Tuple{Float64,Float64})@adapted_grid.jl:57
 10. adapted_grid(::Any, ::Tuple{Float64,Float64})@adapted_grid.jl:16
 11. _scaled_adapted_grid(::Function, ::Symbol, ::Symbol, ::Int64, ::Int64)@user_recipe.jl:353
 12. macro expansion@user_recipe.jl:293[inlined]
 13. apply_recipe(::AbstractDict{Symbol,Any}, ::Function, ::Number,
     ::Number)@RecipesBase.jl:283
    
 14. _process_userrecipes!(::Any, ::Any, ::Any)@user_recipe.jl:36
 15. recipe_pipeline!(::Any, ::Any, ::Any)@RecipesPipeline.jl:70
 16. _plot!(::Plots.Plot, ::Any, ::Any)@plot.jl:208
 17. #plot#154@plot.jl:91[inlined]
 18. plot(::Any, ::Any, ::Any)@plot.jl:85
 19. top-level scope@Local: 3

【问题讨论】:

    标签: julia


    【解决方案1】:

    简短回答:函数应定义为:

    y(x) = -α * (1 - (γ * x)^2) * exp(-0.5γ * x^2)
    

    更长的答案:问题不在于绘图,因为调用y 函数会产生类似的错误消息。要回答“如何”解决错误,我建议一点一点地测试代码。 虽然 Julia 自动理解浮点数和变量之间的乘法(如 0.5γ),但 Julia 明白您想将 α 用作函数,并且因为 α 是整数,所以会引发错误。

    【讨论】:

    • 哦,是的,非常感谢!这就是为什么当我将变量更改为数字时它起作用的原因。只是一个简单的错误!
    • 如果您认为这是正确的答案,请随意选择它。 ?
    • 是的,5x5(x) 是乘法,但 x5 是不同的变量,x(5) 尝试函数调用是我从不使用乘法简写和低调的原因,希望有一天它会被弃用。跨度>
    猜你喜欢
    • 1970-01-01
    • 2018-09-28
    • 1970-01-01
    • 2018-03-29
    • 2012-02-18
    • 2023-01-13
    • 1970-01-01
    • 2020-08-19
    • 1970-01-01
    相关资源
    最近更新 更多