Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.

Mensajes - DaniM

Páginas: [1] 2 3 4 ... 10
1
Lo del núcleo de alta densidad no lo entiendo....
Si la gravedad depende de las masas, el núcleo "tiraría" de la corteza hasta hacer una esfera maciza....

No sé, igual en una de estas nos descubre que el núcleo es un agujero negro y que estamos orbitando a su alrededor xD

2
Eso le pregunté con el experimento Cavendish....

Ah, sí, lo acabo de encontrar ahora junto a la respuesta que te dio. Al final repartió las culpas de la densidad a un espesor de la corteza indeterminado y a un pequeño núcleo indeterminado que también anda por ahí pero "de muy alta densidad", por si acaso. 😅

Desvelado el misterio, ahora falta resolver las otras cuestiones (DCM, no te escapes!).

3
Estaba preguntándome cómo encaja DCM su modelo de Tierra hueca con temas como las erupciones volcánicas (¿irá el magma viajando a través del vacío de un punto a otro de la Tierra?), cómo explica la existencia del campo magnético terrestre, o si los sismógrafos que miden las diferentes velocidades a las que viajan las ondas sísmicas a través de las diferentes capas de la Tierra son un timo (porque la Tierra es hueca, no hay capas).

De repente, la mitad de toda la ciencia que conocemos está mal. 🤯

Otra cuestión: si DCM da por válidos la masa y el radio de la Tierra que conocemos (unos \( 6\cdot{}10^{24}\textrm{kg} \) y \( 6370\textrm{km} \), respectivamente), no debería ser la densidad superficial de la Tierra hueca extremadamente grande? Vamos, que conseguir levantar una piedra del suelo tendría mérito...

4
Recuerda que todo lo referido a insertar imágenes deben ser subidas al foro. Dado que da la casualidad que la url no está disponible, no puedo ayudarte a subir la imagen. Si se trata de un video, se puede subir a YouTube y pegar el enlace.

Disculpa, no me había dado cuenta de que se había roto el enlace, ya lo he arreglado y he subido la imagen al foro.

5
lo que vemos en tu simulación son los primeros momentos del inicio del planeta, y además vemos lo que pasa en el exterior, pero no lo que pasa en el interior.

Pero DCM, se supone que la simulación está recreando el interior de una esfera de radio \( R \) con partículas dentro! Mira lo que pasa con una esfera hueca de radio \( 200 \) unidades:



video de la simulación.



Como podéis ver en el interior la materia de las capas más interiores (color verde) se desplazan hacia la superficie y la materia de las capas superiores (color azul) se desplazan hacia el centro. Llegando a crearse una esfera hueca de un radio menor al inicial. La materia está siendo comprimida.

Por curiosidad, ¿cómo has conseguido que las partículas formen una esfera hueca? ¿Has metido las fórmulas físicas (¿cuáles y dónde?) y ha ocurrido eso de forma espontánea, es decir, sin ninguna otra acción por tu parte, o cómo?

6
Hola, muchas gracias a todos por vuestras buenas palabras y el feedback.  :)

me gustaría que se pueda cambiar el valor con la rueda del mouse. Quizás de manera /10 para cada valor porque tienen mínimos y máximos diferentes (así, para pasar de 0% a 100% haya que hacer como máximo 10 scroll up con la rueda); o bien hacerlo más básico e ir modificando de a 1 unidad, ya que no hay decimales. O quizás haya algo más elegante.

Tienes razón, cambiar los valores con la rueda del ratón sería mucho más cómodo que ir arrastrando todo el tiempo. Me lo apunto para implementar.

Observa lo siguiente si pones 2 partículas en el universo con velocidades iniciales aleatorias, mientras no escapen, es decir que su velocidad relativa sea menor que $$v<\sqrt{\dfrac{2G(M+m)}{R}}$$ lo mas probable es que se orbiten indefinidamente, no que choquen, pero veo muy propenso al sistema a que provoque colisiones

Voy a responderte a todo con más calma en otro momento, pero por hacerte una consulta rápida, ¿es posible que esto ocurra porque la constante de fuerza que usamos es demasiado grande en valor absoluto? Al final, en la naturaleza \( G \approx 6.67 \cdot{} 10^{-11} \) y aquí estamos usando el valor mínimo de \( G = -1 \).

He hecho cuatro pruebas y en dos de ellas las partículas se orbitan durante un rato antes de chocar, ¿quizá la fuerza de atracción sea demasiado alta?

https://streamable.com/b8nvor?src=player-page-share

He probado a usar \( G = -0.01 \), pero no he tenido paciencia para esperar a ver si chocan o no porque entonces todo va desesperadamente lento. 😅

En caso de que la velocidad inicial sea cero, las dos partículas van a chocarse del tirón, pero entiendo que esto es normal, ¿no? Teniendo en cuenta que se pueden unir por una línea recta y que la fuerza de gravedad es radial...

no logro ver que se produzcan orbitas estables, que es lo mas común que debe ocurrir, así que se me ocurre que puede estar el error en el truncamiento de los números  calculados, con que precisión los trabajas?

Los cálculos sobre las variables de las partículas se hacen con 15 dígitos decimales. Te pongo un pantallazo sobre el estado de una partícula en un determinado momento del programa:



Muchas gracias otra vez por tus observaciones y te responderé a lo demás en cuanto pueda.  :)

PD:
Cita de: Richard R Richard
como aporte a la mejora simplemente en el choque podrías elegir que la masa final es la suma de las masas individuales, y el volumen aditivo
El radio final entre las partículas i y j creando una nueva k sería $$m_k=m_i+m_j$$ y  $$r_k=\sqrt[3]{r_i^3+r_j^3}$$

Genial, implementaré el radio final como has indicado, pero solo quería confirmar que la suma de masas ya se está haciendo (ver línea 154 de Universe.js, subrayada en azul):


7
Hola a todos. ¡Ya tenemos simulador! Con su panel de control y todo.  :D Lo he subido aquí para que podáis jugar con él:

https://force-field-particles-simulator.vercel.app/



Aquí está el código fuente:

https://github.com/danielthetechie/force-field-particles-simulator/tree/main/src

Los ficheros más relevantes (donde está contenida la física del programa) son Universe.js y Particle.js.

También es apta para tierrahuequistas como nuestro amigo DCM, ya que se puede configurar para que la distancia inicial de todas las partículas con respecto del origen sea igual al radio del universo (como en el gif de arriba), esto es, que no haya partículas en el interior de la esfera. El único inconveniente es que no tiene un final feliz para DCM, sino que el final es el que predijo Richard unos cuantos mensajes más atrás:

Con la suficiente cantidad de tiempo quedará una sola partícula, pero que sin importar el número inicial de estas nunca se forma una estructura hueca, así funciona la naturaleza

Explico algunas opciones que quizá no sean demasiado claras al principio:

- Constante de fuerza: por defecto es \( -1 \), con signo negativo para crear una fuerza de atracción, pero se puede poner positivo para que la fuerza sea de repulsión. A más magnitud, más intensa será la fuerza, ya sea en un sentido u otro. Si la constante es \( 0 \) y la velocidad inicial de las partículas también la dejáis a \( 0 \), pues... nada, pasamos a un universo aburrido y estático.

- Las opciones con un % se calculan con respecto al valor máximo de la opción de arriba. Por ejemplo, si el radio del universo es \( 600 \) unidades y se escoge como distancia mínima al centro el valor \( 50 \), no es que sean 50 unidades, sino que es el \( 50\% \) de \( 600 \), es decir, \( 300 \) unidades. (Esto lo hice así para evitar que se pueda elegir valores mínimos superiores a los máximos y evitar errores.)

- La opción "Aumentar tamaño de las partículas compuestas" se refiere a que cuando dos partículas chocan (el choque siempre es inelástico, no hay rebotes), si ésta está activada el radio de la partícula resultante aumenta (lo hace de forma un poco artificial, eso sí, y lo hace sumando un 10% del radio de la partícula más pequeña al radio de la partícula más grande). Si desactiváis la opción, el radio de la partícula resultante será igual al de la partícula más grande antes del choque, y como efecto secundario veréis órbitas que duran más tiempo antes de que las partículas se absorban entre ellas.

- En la info de abajo, la "velocidad media del sistema" se refiere al cálculo de hacer el promedio de las velocidades instantáneas de todas las partículas en todos sus ejes. Es una manera de medir la evolución del sistema: al final del todo, la velocidad de la partícula que queda acaba siendo constante. Y si elegís que la constante de fuerza sea positiva (o sea, que la fuerza sea repulsiva), veréis que al cabo de un rato la velocidad media del sistema se va estabilizando a medida que las partículas se van alejando y disminuye la fuerza entre ellas.

- Para mover la cámara, mantened el botón derecho del ratón apretado y ésta rotará. Para desplazaros, lo mismo pero con click izquierdo. Para aumentar o disminuir el zoom, usad la rueda del ratón.

- Al inicio todas las partículas son rojas, pero cuando chocan, las partículas resultantes son de color verde para distinguirlas mejor de las originales.

Ahora respondo a Richard en particular:

Cita de: Richard R Richard
Primero que nada  gracias , estoy muy contento con que la idea haya colado y te haya motivado a programarlo.

Gracias a ti por el algoritmo.  :) De hecho, si te parece bien, me gustaría hacerte una mención de agradecimiento en el futuro Readme del proyecto. Le quiero añadir una opción para cambiar de idioma, algunas opciones más, pulir cosas y compartirlo con más gente.

Cita de: Richard R Richard
Además ...Wow, quien pudiera jugar con cosas así, he hecho cosas más pobres visualmente, pero cuando lo pusiste  a rotar en el espacio e hiciste zoom, quedé alucinado.

He usado una librería de Javascript llamada Three, que es para hacer gráficos en 3D, no es difícil de aprender y seguro que tú como ingeniero podrías sacarle mucho más provecho que yo.  :D

Cita de: Richard R Richard
hay como una concentración de partículas al centro que puede ser a causa de la perspectiva o a la propia distribución aleatoria que por tener mas espesor la esfera en el centro habrá mas partículas sobre esa línea de visión, por las dudas revisa si esta bien la aleatoriedad.

Al final lo he intentado solucionar de dos maneras:

1) Reemplazando la función por defecto para generar números aleatorios por una criptográfica que se supone que añade más aleatoriedad (en el fichero math.js puedes ver la función getRandomNumber original, que la he dejado comentada, por su reemplazo, inmediatamente más abajo).

2) Añadiendo la opción "distancia mínima al centro del universo" explicada más arriba.

Cita de: Richard R Richard
no se si será la escala pero veo grandes en tamaño a las partículas respecto del diámetro de la esfera contenedora,  agrandar \( R \) o bajar \( r_i \)  sería un consejo, pero quizá se pierda definición cuando todo se aglomere en el centro a lo largo del tiempo

Sí, creo que en el primer GIF que mostré usé un radio bastante pequeño (quizá 100 o 200 unidades, ahora no recuerdo), pero ahora se puede ajustar hasta las 3000 unidades. Si quieres más, dímelo.

Cita de: Richard R Richard
La idea de fondo de la simulación funciona bien cuando el número de partículas $$n$$ es muy elevado para un $$R$$ grande, pero se ralentiza el cálculo entre posición y posición, además se tarda mas en aglutinar  todo, si aumentas n quizá te convenga primero calcular todas la posiciones para cada tiempo, guardarlas en una base de datos y luego solo ejecuta la parte visual, donde se ven las trayectorias usando los datos y no calculándolos en el mismo  tiempo de ejecución...

Es una manera ingeniosa, pero no sé hasta qué punto viable desde el punto de vista de la memoria, ya que habría que guardar una matriz de números bastante tocha en la base de datos para cada frame que durara la animación, y a cada ejecución del programa con diferentes parámetros quizá habría que esperar un rato hasta tener la base de datos repoblada. Aunque es cierto que una vez hecho esto, podrías correr la animación con un \( n \) mucho más alto de manera fluida.

Ahora mismo los cálculos se realizan a cada frame, se asignan los resultados a las variables de las partículas, se desplazan de forma acorde con dichos valores y vuelta a empezar en el siguiente frame. Según he leído en la documentación de la librería, no se procede a la animación del siguiente frame hasta que no estén todos los cálculos terminados.

En mi ordenador (que no es gran cosa, un laptop con un procesador Intel i3 6006U), la animación va fluida hasta los \( 600 \) - \( 700 \) partículas, a partir de ahí ya empieza a sufrir. Pero eso solo pasa al principio, ya que a medida que se van produciendo los choques y las partículas se van uniendo, voy borrando todas las referencias de las partículas iniciales para liberar memoria, así que aunque se empiece con un número relativamente alto de partículas, la animación acabará siendo más fluida con el tiempo.

El número máximo de partículas lo he limitado a \( 1000 \), pero otra vez, si quieres más dímelo y lo subo.  :)

Cita de: Richard R Richard
Se podría comenzar la simulación dándole una velocidad, dirección y sentido inicial a cada partícula

Esto ya se puede ajustar también en las opciones.  :D Por defecto las partículas empiezan sin velocidad, pero se puede ajustar.

Cita de: Richard R Richard
por cierto habría que poder visualizar un corte de la esfera en un determinado momento, para ver si es hueca o no... quizá sea mucho pedir

Si te refieres a parar la animación en un determinado momento, es fácil de hacer. Pronto le pondré un botón para poder pausar la animación y que se pueda mover la cámara para poder ver con detalle el estado del universo en un determinado momento.

Cita de: Richard R Richard
por más evidencia que presentes el fanatismo será superior

Sí, hay que admitir que contra un fanático que quiere serlo no hay nada que hacer desde la razón, pero programar esto y leer el hilo ha sido divertido: una cosa no quita la otra.  ;D

Siento la tardanza, por temas de trabajo no he podido dedicarle tanto tiempo estos días.

8
Hola Richard,

Propuse que todas las partículas  tengan la misma densidad, pero no es necesario, la idea era que todas eran esferas de la misma densidad por lo tanto su radio quedaba definido solo con la masa, pero la simulación funciona si asignas un radio y una masa independientes , hay pocas  rocas mucho menos densas que el agua densidad 1 (ej leca) ni nada más denso que 22 el osmio  con esos en mente puedes saber que tratas con particulas más o menos reales.

De ese modo tienes cierto límite para el radio en función de la masa.
 Es más fácil calcular la distancia de un impacto  si son esferas.

Gracias por la aclaración.  :) Al final he optado por calcular el radio de las partículas en función de su densidad, que es asignada aleatoriamente a cada partícula con un valor mínimo de \( 1 \) y un máximo de \( 22.5 \), por mantenerlo más realista. De momento esto es lo que tengo:



En cada ejecución las partículas se colocan de forma aleatoria dentro una esfera de radio \( R \) y ahora me falta implementar las físicas como has explicado. Tengo tus instrucciones a mano.  ;D

En cuanto lo tenga listo lo subo online y le añado un panel para que cada usuario pueda experimentar modificando los parámetros del programa a su gusto (el número de partículas, la distancia máxima de éstas con respecto al centro, etc).  :)

9
Hola Richard,

Una simulación clarificadora

Podría presentarlo programado pero no trabajo gratis para nadie que no lo apreciará jaja

  para programar
Definimos
el espacio de trabajo variable $$R$$ digamos 1000 unidades
el número de partículas $$n$$ unas 100 para que no sean pocas ni muchas
el tiempo entre evaluación y evaluación el sistema, muy corto evoluciona lento, muy largo es impreciso supongamos $$t=1$$
definimos el valor $$G$$ que puede ser el de la constante de gravitación, pero como todo es proporcional a este número  los resultados no difieren si se lo escoge unitario $$G=1$$ valores mas chicos hacen mas lenta la evolución
la densidad volumétrica de las masas $$\rho$$ , es anecdótica sirve para definir un radio de cada partícula
definimos una matriz o arreglo con $$n$$ filas y 11 columnas(masa $$mi$$ ,$$ri$$ radio propio,$$x,y,z,vx,vy,vz,fx,fy,fz$$   )
con un bucle hasta $$n$$, asignamos aleatoriamente

asignamos aleatoriamente $$mi$$, masa de la partícula
con esto definimos su radio $$ri =\sqrt[3]{\dfrac{mi}{rho \frac43 \pi}}$$
asignamos aleatoriamente $$0<r<R$$ distancia respecto del centro
asignamos aleatoriamente $$0<\theta<2\pi$$ ángulo respecto del centro
asignamos aleatoriamente $$0<\varphi<\pi$$ ángulo azimutal respecto del centro

con $$r , \theta$$ y $$\varphi$$  traducimos coordenadas esféricas a cartesianas asegurando  que todas las partículas estén dentro de una esfera de radio $$R$$

$$xi = r\sen\,\theta\,\cos\varphi$$
$$yi = r\sen\,\theta\sen\,\varphi$$
$$zi = r \,\cos\theta$$

suponemos que la velocidad inicial de las partículas es nula
$$vxi=0$$
$$vyi=0$$
$$vzi=0$$

hacemos el inicio de un contador de tiempo $$T$$ iniciando en cero

Iniciamos un bucle hasta que el tiempo $$T$$ sea el deseado $$T>1000000$$ por ejemplo

luego para cada partícula de 1 a $$n$$ llamada con subíndice $$i$$ hacemos un bucle
se ponen a cero cada componente del vector fuerza que siente cada partícula $$i$$

$$fxi=0$$
$$fyi=0$$
$$fzi=0$$

y otro bucle de 1 a  $$n$$ con subíndice $$j$$

si $$i=j$$ no hacemos nada
calculamos la distancia entre partículas

$$dij=\sqrt{(xi-xj)^2+(yi-yj)^2+(zi-zj)^2}$$

si $$dij<ri+rj$$  las partículas están en contacto, su ponemos un choque inelástico donde

$$xi=xj=\dfrac{mi\cdot xi+mj\cdot xj}{mi+mj}$$
$$yi=yj=\dfrac{mi\cdot yi+mj\cdot yj}{mi+mj}$$
$$zi=zj=\dfrac{mi\cdot zi+mj\cdot zj}{mi+mj}$$

$$vxi=vxj=\dfrac{mi\cdot vxi+mj\cdot vxj}{mi+mj}$$
$$vyi=vyj=\dfrac{mi\cdot vyi+mj\cdot vyj}{mi+mj}$$
$$vzi=vzj=\dfrac{mi\cdot vzi+mj\cdot vzj}{mi+mj}$$

esto tratará las dos partículas como si fueran una sola y ya no calculara mas su interacción sin alterar el número de partículas del programa

y evitará divisiones por cero

si la $$dij$$ es mayor entonces

calculamos cada contribución de fuerza de cada partícula  de 1 a $$n$$ como

$$fxi=fxi+G\cdot mi\cdot mj (xj-xi)/dij^3$$
$$fyi=fyi+G\cdot mi\cdot mj (yj-yi)/dij^3$$
$$fzi=fzi+G\cdot mi\cdot mj (zj-zi)/dij^3$$

al final del ciclo j  tendremos la fuerza que siente la partícula i
asignamos esos valores a la matriz de datos

reiteramos para todas la partículas i terminando el ciclo i

luego trabajamos sobre la cinematica

en un nuevo ciclo i

calculamos la aceleracion como

$$axi=fxi/mi$$
$$ayi=fyi/mi$$
$$azi=fzi/mi$$

la nueva velocidad en ese instante
$$vxi=vxi+axi\cdot t$$
$$vyi=vyi+ayi\cdot t$$
$$vzi=vzi+azi\cdot t$$

y la nueva posición en ese instante

$$xi=xi+vxi\cdot t+\dfrac12 axi \cdot t^2$$
$$yi=yi+vyi\cdot t+\dfrac12 ayi \cdot t^2$$
$$zi=zi+zxi\cdot t+\dfrac12 azi \cdot t^2$$

cerrar el ciclo

luego un proceso para representar en pantalla , cada partícula con su radio, y transformar la posición 3d calculada en 2d de pantalla

hacemos que sume tiempo el contador
$$T=T+t$$
y cerramos el ciclo del contador $$T$$ así todo se vuelve a recalcular cada un tiempo $$t$$


Que surge de esto ....
  • En pantalla debe observarse la disminución de la cantidad de partículas cada vez que chocan.
  • Que cada vez que se acercan mas al centro mas velocidad adquieren,
  • Que siempre habrá una dirección en el espacio donde se formar un plano o disco de acreción,
  • Con la suficiente cantidad de tiempo quedará una sola partícula, pero que sin importar el número inicial de estas nunca se forma una estructura hueca, así funciona la naturaleza, así DCM modela su formación de tierra hueca , y si en modelos no funciona en la naturalez tampoco.
  • En realidad no hace falta modelizar los choques inelásticos, pero si no se hace, se verá que de alguna manera el sistema tiene que liberarse de energía cinetica  debido a la conservación de la energía y se lo podrá observar  expulsando algunas masas fuera del sistema, si tienen mas velocidad que la de escape , nunca regresan, sino pueden permanecer en órbitas largas como los asteroides, o la nube de oort ... pero bueno hay que meter muchas partículas de variada masa para ver efectos notables, y un pc muy rápido...

[cerrar]

Resulta que me he puesto a programarlo.  ;D Pero me ha surgido una duda. Aquí:

Citar
con esto definimos su radio $$ri =\sqrt[3]{\dfrac{mi}{\rho \frac43 \pi}}$$

¿Habría algún inconveniente en asignar el radio de la partícula directamente, sin definir previamente \( \rho_i \) para luego hacer ese cálculo? ¿Y alrededor de qué valores mínimos y máximos de \( \rho_i \) y \( m_i \) nos moveríamos para poder hacer la simulación más interesante? Lo pregunto porque si aparecen partículas 1000 veces más masivas que otras, igual la historia termina pronto...

10
Estoy de acuerdo con manoooh: más concretamente, pienso que lo que mejor se adaptaría a lo que buscas es un programa basado en deep learning. A grandes rasgos, primero defines cómo medir qué tan bueno es ese "buen plan". En el ejemplo de Super Mario, el objetivo de pasarte el juego consiguiendo la mayor cantidad posible de puntos parece reñido con el objetivo de pasártelo en el menor tiempo posible.

Una vez que defines cuál es el objetivo y cómo medirlo, el modelo de deep learning que implementes irá aprendiendo de sus propios errores en cada iteración y lo irás premiando a medida que vaya mejorando las marcas que sean relevantes para lograr tu objetivo.

Por otra parte, si quieres programarlo de una forma más clásica y terrenal, puedes investigar sobre algoritmos genéticos. Aquí tienes una web para jugar con ellos y en la que puedes ver de una forma muy intuitiva de lo que se trata:

https://rednuht.org/genetic_cars_2/

La idea básica es llevar las ideas de la evolución darwiniana al código del programa. En esta web en concreto, empiezas con un escenario poblado por objetos a dos ruedas con formas aleatorias: el "ganador" es el que recorre la mayor distancia. Los objetos empiezan a avanzar y muchos se quedan por el camino debido a que su geometría es demasiado ineficiente para seguir avanzando. Los que consiguen llegar más lejos, se "reproducen" con una determinada tasa de mutabilidad, los hijos heredan la forma del padre con alguna pequeña variación y siguen avanzando hasta que el último descendiente fracasa. A partir de ahí, se resetea el mundo y la nueva generación de objetos contiene a los "ganadores" del mundo anterior, y así, a través de las generaciones, se va seleccionando la geometría más apta para recorrer más distancia.

Por cierto, puedes darle al botón "Surprise!" para que la simulación vaya más rápido y volver a pincharle para que vuelva la velocidad normal. A partir de la generación 13 la competición se pone interesante y ya se puede ver un patrón en la forma más óptima (desde el punto de vista del mundo generado) que consigue llevar el coche más lejos.

Aquí tienes un ejemplo de cómo implementar un algoritmo genético en un juego muy parecido al Super Mario en el que el objetivo es el mismo, recoger monedas y evitar colisiones con monstruos: https://blog.paperspace.com/building-agent-for-cointex-using-genetic-algorithm/

11
DaniM, menos ningunear a las personas y más argumentos matemáticos o físicos o lógicos.

Para qué, si ya te han dado todos los argumentos habidos y por haber y aun así no te has molestado en comprenderlos. Yo pensaba que, como dijo Richard, te has radicalizado en una idea absurda y de ahí ya no sales, pero desde que has empezado con lo de la Tierra hueca, los astros huecos, supongo que también las estrellas estarán huecas y todo hueco... pienso que hay una probabilidad no nula de que seas un troll, de que en el fondo no te creas nada de lo que tú mismo dices y que estés en tu casa descojonándote de las reacciones en el foro cuando posteas tus disparates y esperas una semana entera para volver con la caja de palomitas. Confiésalo ya, tú en la intimidad tampoco divides por cero, ¿verdad?

12
Cita de: DCM
Por lo que vemos es un cambio  total  del paradigma actual sobre  los astros del universo.

¿No te has planteado contactar a los productores de Ancient Aliens? La última temporada la dejaron en un capítulo llamado "Secretos del interior de la Tierra"; ahora me parece que han vuelto al tema de los extraterrestres durante el Tercer Reich, pero creo que si les cuentas la movida de los astros huecos pueden reenganchártelo con el penúltimo capítulo: en él defendían la existencia de un antiguo reino en el interior de la Tierra poblado por humanos y aliens, y ahora gracias a tu teoría ya no tendrán a los pobres intraterrestres tragando tierra y gusanos, sino que por fin podrán viajar libremente por el interior del planeta con naves espaciales.  :D

Contáctales, que te hacen hueco fijo, y si además les dices que eres físico, que has abierto los ojos, que la ciencia oficial es un engaño, que \( g=\frac{GM}{2R^2} \) y cosas así, te hacen la ola y toda la publicidad que quieras! Piensa que allí solo se atreven a ponerse delante de la cámara periodistas de sucesos paranormales, buscadores de OVNIs, escritores de novelas de ciencia ficción, terraplanistas y demás, pero si por fin tuvieran la oportunidad de sacar en pantalla a un físico que apoyara sus fantasmadas usando incluso tecnicismos tales como 'esferas de esperor infinitesimal' y otros sinsentidos que sonaran a música celestial a los oídos de los millones de infelices que ven ese programa con la convicción de que se les está siendo revelada una serie de secretos que el gobierno les oculta, te harían co-presentador del programa y ganarías una pasta!

Desde luego como personaje televisivo tendrías más recorrido que tu teoría en un proceso de revisión por pares... pero al menos tendrías fans que te darían la razón en todo, ya no tendrías que pasarte el día dibujando líneas de campo en el Paint para intentar convencer a alguien de que Newton era un inútil y te sentirías más realizado contigo mismo, que de eso va la vida al final.

13
Quizá con una animación se entendería mejor, porque no entiendo bien ¿por qué si un trozo de materia atrae otros quedaría hueco con trozos dentro? Pero en 3d está difícil.

El problema es que para hacer una animación tienes que introducir las fórmulas matemáticas de antemano, no es que tú crees un mundo virtual desde cero y "que la naturaleza siga su curso", sino que para hacer dicha animación con partículas habría que definir primero qué trayectorias seguirían éstas en base a la ecuación de la gravedad, y el aquí el tema es que la ecuación de DCM está mal, como ya ha quedado explicado en las páginas anteriores, por lo que cualquier parecido que tuviera la animación con la realidad sería pura coincidencia.

14
Foro general / Re: Ecuación para modelar una botella de agua
« en: 27 Enero, 2024, 11:01 am »
Bueno, veo que en el post de Reddit hay nuevos comentarios y uno parece responder afirmativamente a mi pregunta:

Citar
The idea is this:

You can take an object, any object, and fit a line to it. For example, imagine you have some object with a curve. You can fit part of a sine, cosine, or polynomial function to that curve and, for at least part of that fitted function, that curve will be traced.

Now cut off the part of the fitted function that doesn't fit the rest of that curve (since trig functions are periodic and polynomials change direction).

The next step is to repeat this fitting processes where you left off on the last line. After repeating this process you will end up with a ton of different spliced together lines that "perfectly" fit any possible shape you want.

Es básicamente dividir la figura que queremos representar en varios trozos, identificar un número suficiente de puntos de cada trozo, interpolarlos según la curva que mejor se ajuste a dichos puntos, repetir el proceso con el siguiente trozo, y así sucesivamente. Y al final juntar todas las ecuaciones que han ido saliendo, ¿no?

15
Foro general / Re: Ecuación para modelar una botella de agua
« en: 27 Enero, 2024, 10:42 am »
No sé cómo lo ha hecho él, pero Wolfram Mathematica te permite hacerlo con cualquier tipo de contorno si no recuerdo mal, utilizando series de Fourier con un determinado número de sumandos. A más sumandos, más precisión. En el siguiente enlace lo explican en más detalle:

https://mathematica.stackexchange.com/questions/171755/how-can-i-draw-a-homer-with-epicycloids

Entonces, lo que haría yo, diseñaría una curva en algún programa como inkscape o similar, y luego le aplicaría lo comentado en el enlace anterior. Además hoy en día con lenguajes de programación como Julia seguro se puede implementar lo mismo que con Wolfram Mathematica de manera mucho más eficiente, en principio utilizando wavelets en vez de senos y cosenos, ya que son más indicados en general para trabajo digital.

¡Muy bueno! Hasta ahora había visto los típicos cardioides y otras formas simples, pero no me imaginaba que se pudiera parametrizar una curva hasta el punto de crear algo tan sofisticado como un Bart Simpson.  :D

Por curiosidad, ¿es imprescendible usar números complejos para ello o es simplemente más cómodo o rápido? Veo que en el enlace que has puesto dice:

Citar
the idea is to transform each point as a complex number (z) and take the Discrete Fourier Transform (cn) up to a prescribed order m

Y en la ecuación de la botella de agua veo que también aparecen números imaginarios. ¿Sería posible conseguir un resultado similar trabajando únicamente con números reales, dado un conjunto de puntos? Estoy pensando en juntar varias ecuaciones del estilo \( r = f(\theta) \) definidas en sistemas de coordenadas polares; no sé qué tan viable sería eso.

16
Foro general / Ecuación para modelar una botella de agua
« en: 26 Enero, 2024, 08:46 pm »
Me he topado con este post en Reddit donde un usuario ha representado esta botella de agua en Desmos:


Para ello ha usado la siguiente ecuación:

\(
r = \left(\frac{-0.286057}{2.10693z-0.108607} + 2.02014\right) \left(\left(1 - \frac{2\left(z-1.9776\right)}{\left(0.1188-1.9776\right)}\right)^{10^{10}} + 1\right)^{-1} \\
+ \left(-0.0111558\tan^{-1}\left(93.0395z-192.421\right) + 1.93344\right) \left(\left(1 - \frac{2\left(z-2.1\right)}{\left(1.9776-2.1\right)}\right)^{10^{10}} + 1\right)^{-1} \\
+ 1.9196 \left(\left(1 - \frac{2\left(z-2.5945\right)}{\left(2.1-2.5945\right)}\right)^{10^{10}} + 1\right)^{-1} \\
+ \left(0.1173 \sum_{i=0}^{5} \left(\left(1 - \frac{2\left(\left(4.77z-10.36\right) - \left(-\cos^{-1}\left(0.864^{\frac{1}{6}}\right)+\left(i+1\right)\pi\right)\right)}{\left(\left(\cos^{-1}\left(0.864^{\frac{1}{6}}\right)+i\pi\right) - \left(-\cos^{-1}\left(0.864^{\frac{1}{6}}\right)+\left(i+1\right)\pi\right)\right)}\right)^{10^{10}} + 1\right)^{-1} \left(-\cos\left(4.77z-10.36\right)^{6}+0.864\right) + 1.819\right) \\
+ \left(0.1173 \sum_{i=0}^{2} \left(\left(1 - \frac{2\left(\left(4.77z-10.36\right) - \left(-\cos^{-1}\left(0.864^{\frac{1}{6}}\right)+\left(i+1\right)\pi\right)\right)}{\left(\left(\cos^{-1}\left(0.864^{\frac{1}{6}}\right)+i\pi\right) - \left(-\cos^{-1}\left(0.864^{\frac{1}{6}}\right)+\left(i+1\right)\pi\right)\right)}\right)^{10^{10}} + 1\right)^{-1} \left(-\cos\left(4.77z-36.8\right)^{6}+0.864\right) + 1.874\right) \\
+ \left(\left(1 - \frac{2\left(z-5.715\right)}{\left(2.5945-5.715\right)}\right)^{10^{10}} + 1\right)^{-1} + \left(0.0149162\tan^{-1}\left(74.4986z-462.793\right) + 1.93244\right) \left(-0.009z + 1.057\right) \\
+ \left(\left(1 - \frac{2\left(z-6.475\right)}{\left(5.715-6.475\right)}\right)^{10^{10}} + 1\right)^{-1} + \left(0.185201\sin\left(4.44755z-14.7007\right)^{3} + 1.76787\right) \left(\left(1 - \frac{2\left(z-7.827\right)}{\left(6.475-7.827\right)}\right)^{10^{10}} + 1\right)^{-1} \\
+ \left(\left(1 - \frac{2\left(z-9.368\right)}{\left(7.827-9.368\right)}\right)^{10^{10}} + 1\right)^{-1} + \left(-3.4754\times10^{11}e^{-4.44482z}\cdot z^{5.7976} - 0.00000128717z^{5.7976} + 2.65169\right) \\
+ \left(\left(1 - \frac{2\left(z-11.624\right)}{\left(9.368-11.624\right)}\right)^{10^{10}} + 1\right)^{-1} + \left(\frac{0.000676371}{0.760976z-8.81051} + 0.7\right) \left(\left(1 - \frac{2\left(z-12.026\right)}{\left(11.624-12.026\right)}\right)^{10^{10}} + 1\right)^{-1} \\
+ \left(0.0488948\sec\left(-47.006z+553.729\right) + 0.609895\right) \left(\left(1 - \frac{2\left(z-12.07655\right)}{\left(12.026-12.07655\right)}\right)^{10^{10}} + 1\right)^{-1} \\
+ \left(41.5116z^{4} - 1512.49z^{3} + 18377.9z^{2} - 74576.6z + 1299.68\right) \left(\left(1 - \frac{2\left(z-12.226\right)}{\left(12.07655-12.226\right)}\right)^{10^{10}} + 1\right)^{-1} \\
+ \left(\frac{0.00763208}{z-13.1178} + 0.813235\right) \left(\left(1 - \frac{2\left(z-13.108\right)}{\left(12.226-13.108\right)}\right)^{10^{10}} + 1\right)^{-1}
 \)

Una manera de hacerlo es definir una función a trozos en el que cada trozo es una función que rota alrededor de un eje y representa una sección de la botella, pero él ha "comprimido" todos los trozos en una única función, y en uno de los comentarios el usuario en cuestión dice lo siguiente:

Citar
you can model a function to be accurate over a small part of the domain, then multiply it by something like (x^100 + 1)^-1 which makes every other x value go to 0. simply sum all the small parts and you have effectively combined many piecewise functions into one.

Esto me ha parecido muy interesante. Ahora, lo que no entiendo es cómo una persona humana llega a esos coeficientes tan arbitrarios, y sobre todo a la locura de los sumatorios con arcocosenos y demás. Entiendo que lo ha hecho tanteando, pero aun así, me parece que incluso tanteando no lograría sacar yo eso ni en tres vidas haciendo prueba y error. 😅

¿Cómo llega uno a estas cosas? Ramanujan decía que los teoremas que descubría en realidad se los revelaba una diosa mientras éste dormía, pero desgraciadamente no todos tenemos el privilegio de tener una línea abierta con el más allá. Le preguntaría al tipo directamente, pero me ha parecido curioso compartirlo aquí y ya de paso dejar la pregunta.

17
Off-topic / Re: Artículo: La lengua degenerada
« en: 13 Enero, 2024, 11:05 am »
(...) los políticos son solo "correveidiles" (como diría Cantinflas), es decir, marionetas y herramientas de otros individuos "poderosos" que, en la sombra, son quienes, en realidad, se meten en la vida de la gente y la manipulan, adoctrinan y condicionan mediante auténtica ingeniería social.

¿Estás pensando en los Illuminati o en particulares con nombres y apellidos (¿quiénes?)?

En cualquier caso no creo que el illuminati de turno que le haya dado su lista de mandados a Pedro Sánchez esté a salvo de sus mentiras.  >:D

18
Off-topic / Re: Anécdota 1
« en: 08 Enero, 2024, 09:11 am »
   En un determinado examen de Álgebra de una Escuela de Ingeniería de Madrid, un enunciado empezaba así:

   Demostrar que la siguiente aplicación es lineal ...

Un alumno me comento que el profesor le había quitado puntos por no demostrar que lo que se daba era aplicación. Yo le respondí: m¡ra, tu profesor ignora las mínimas reglas del lenguaje, la redacción correcta e inequívoca hubiera sido: Demostrar que "lo siguiente" es aplicación y además lineal.

Pues sí, es tan absurdo como si ante el típico ejercicio "demostrar que la siguiente función es continua en tal punto", en lugar de ponerse con los límites uno empieza respondiendo "primero vamos a demostrar que f(x) es una función. Sean los pares ordenados...".

Ya estoy esperando las siguientes anécdotas.  :D

19
Computación e Informática / Re: El porque del error . (PYTHON)
« en: 05 Enero, 2024, 01:40 pm »
Otra cosa más, pones b = [lista[-1]] + inversa(lista[:-1]), donde “inversa” es la función que se está ejecutando, y todavía en ese punto no has terminado de definir dicha función.

Es cierto que podría haber hecho simplemente

Código: [Seleccionar]
return lista[-1] + inversa(lista[:-1])
y ahorrarse las dos siguientes líneas, pero de la otra manera también funciona porque a la hora de ejecutar el programa, lo que hace el intérprete por dentro es evaluar la cadena de llamadas a la función hacia atrás, es decir, primero hace inversa("") y devuelve "", luego vuelve a inversa("a"), asigna b = "a" + "", hace el join (que como dices, es innecesario) y devuelve "a", luego vuelve a inversa("ra"), asigna b = "r" + "a", hace el join y devuelve... y así hasta que llega a inversa("palabra"), es decir, que aunque ella llame la función dentro de sí misma antes de hacer el return final, a la hora de la ejecución lo que va después se sigue evaluando en cada llamada.

20
Computación e Informática / Re: El porque del error . (PYTHON)
« en: 05 Enero, 2024, 11:36 am »
Por cierto, una manera más directa de hacerlo por recursividad, para ahorrarte todo el proceso que haces con las listas, sería ésta:

Código: [Seleccionar]
def inversa (a):
    if (len (a) < 2):
        return a
    else:
        return a[len (a) - 1] + inversa (a[:len (a) - 1])

print (inversa ("palabra")) #arbalap

Páginas: [1] 2 3 4 ... 10