Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

313
Visualizações
¿Cómo lidiar con funciones que se acercan al infinito en NumPy?

En un libro sobre matplotlib encontré una gráfica de 1/sin(x) que se parece a esta que hice:

ingrese la descripción de la imagen aquí

usé el dominio

 input = np.mgrid[0 : 1000 : 200j]

Lo que me confunde aquí en extremo es el hecho de que la función seno es solo periódica. No entiendo por qué el valor absoluto máximo está disminuyendo. Trazar la misma función en wolframio-alfa no muestra este efecto decreciente. Usando una cantidad de paso diferente

 input = np.mgrid[0 : 1000 : 300j]

ofrece un resultado diferente:

ingrese la descripción de la imagen aquí

donde también tenemos esta tendencia decreciente en valor absoluto máximo.

Entonces mis preguntas son:

  1. ¿Cómo puedo hacer que una trama como esta sea consistente, es decir, independiente del tamaño del paso/cantidad del paso?
  2. ¿Por qué se ve esta tendencia decreciente a pesar de que la función es puramente periódica?
over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

El período de la función seno es bastante más alto que lo que se grafica, por lo que lo que está viendo es un alias de la diferencia en la frecuencia de muestreo y algún múltiplo de la frecuencia real. Dado que una de las raíces está en 0, la discrepancia más pequeña que existe entre las primeras muestras y un múltiplo de π se aleja linealmente de 0, produciendo una envolvente 1/ x .

En este ejemplo, input[5] es 5(1000/(200-1))=8π−0.007113, por lo que la función es aproximadamente −141 allí, como se muestra. input[10] es, por supuesto, 16π−0.014226, por lo que la función es aproximadamente −70, y así sucesivamente siempre que la discrepancia sea mucho menor que π.

Es posible que alguna de las secuencias de muestras cuasi-periódicas finalmente aterrice aún más cerca de n π, produciendo un patrón más complicado como el de la segunda gráfica.

over 4 years ago · Santiago Trujillo Relatório

0

¿Por qué se ve esta tendencia decreciente a pesar de que la función es puramente periódica?

Tenga en cuenta que, en realidad, en cada múltiplo de pi , la función tiende a infinito. Y el tamaño del salto que se muestra en realidad solo refleja el valor más grande de los valores muestreados donde la función aún tenía sentido. Por lo tanto, obtiene un gran salto si muestra un valor donde la función es grande pero no demasiado grande para ser un flotador.

Para poder trazar cualquier cosa matplotlib descarta valores que no tienen sentido. Como el np.nan que obtienes en múltiplos de pi y ±np.infs que obtienes para valores muy cercanos a eso. Creo que lo que sucede es que, a un paso de distancia de cero, obtienes un valor lo suficientemente pequeño como para no tirarlo, pero aún así es muy grande. Mientras que cuando llegas a pi y sus múltiplos, el valor más grande se desecha.

¿Cómo puedo hacer que una trama como esta sea consistente, es decir, independiente del tamaño del paso/cantidad del paso?

Obtiene un comportamiento extraño en torno a los valores en los que su función se vuelve demasiado grande. Simplemente elija un ylimit para evitar trazar esos valores locos y grandes.

 import numpy as np import matplotlib.pyplot as plt from matplotlib.transforms import Bbox x = np.linspace(10**-10,50, 10**4) plt.plot(x,1/np.sin(x)) plt.ylim((-15,15))

ingrese la descripción de la imagen aquí

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda