es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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í?

Tags:  

Answer

  1. Avatar for 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í:

    xi2 = range(0, sqrt(6), step=1e-3)
    plot(xi2, 1 .- xi2 .^ 2 ./ 6, label="n = 0")
    

Comments are closed.