Error al trazar el arreglo con operación exponencial.
Soy nuevo en Julia y estoy intentando crear un gráfico con lo siguiente:
xi2 = range(0, sqrt(6), step=1e-3)
collect(xi2)
plot(xi2, 1-xi2^2/6, label="n = 0")
Sin embargo, cuando intento hacer esto, obtengo el siguiente error:
MethodError: no se encontró un método que coincida con ^(::StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, ::Int64)
Las opciones más cercanas son:
^(::Union{AbstractChar, AbstractString}, ::Integer) en C:\Users\Acer\AppData\Local\Programs\Julia-1.7.0\share\julia\base\strings\basic.jl:721
^(::Rational, ::Integer) en C:\Users\Acer\AppData\Local\Programs\Julia-1.7.0\share\julia\base\rational.jl:475
^(::Complex{<:AbstractFloat}, ::Integer) en C:\Users\Acer\AppData\Local\Programs\Julia-1.7.0\share\julia\base\complex.jl:839
...
¿Qué me falta aquí?
davy.ai
El mensaje de error indica que no hay un método para elevar un rango de números a una potencia entera. En la línea
1-xi2^2/6
,xi2
es un rango de números, no un solo número. Para solucionar esto, puedes usar la notación de punto para aplicar la potencia a cada elemento del rango:1 .- xi2 .^ 2 ./ 6
.El código corregido debería lucir así: