Necesito crear un programa para simular las líneas de flujo magnético de múltiples solenoides, ¿qué lenguaje de programación es mejor para esto y para la técnica?

A menos que haya algunas restricciones especiales con respecto a cosas como la velocidad, la precisión o la legibilidad, use cualquier cosa con la que se sienta cómodo (posible excepción: JavaScript o Cobol)

Dado que estamos hablando del cálculo numérico, cualquier cosa con una biblioteca numérica y algo que incluya el cálculo avanzado con matrices es útil. Quizás haya una biblioteca de dominio público para el cálculo del flujo magnético ya disponible.

Desde mi experiencia (limitada), elegiría entre

  • FORTRAN (hecho para computación numérica, muchas librerías disponibles)
  • Python (fácil de aprender y usar, NumPy es tu amigo para el cálculo numérico, muchas otras librerías ofrecen ayuda, ¿qué tal la visualización?)
  • C / C ++ (rápido, todo tipo de librerías disponibles pero propiedad difícil de aprender, ya que puedes hacer casi cualquier cosa con él, la depuración puede volverte loco)

Entonces, de la pregunta, infiero que estás pidiendo

a. Las herramientas adecuadas

si. El algoritmo

Inteligente, pero debería ponerte en tu lugar para que no hagas preguntas tan estúpidas sin tener claridad. Pero, es un tema interesante, así que ayudaría … un poco. Básicamente, desea simular líneas de campo magnético a partir de acción solenoidal (múltiple). Esto es lo que puede hacer usando p5.js. Es una biblioteca de JavaScript que le permite dibujar en su navegador a través del código. Luego, debe estudiar el comportamiento de la línea de campo y varias variables que lo afectan para poder codificar condicionales y trazar las líneas como un gráfico. No sé cuánto entiendes lo que acabo de decir. Si lo haces bien, simplemente no estabas compuesto y esto realmente no es lo que quieres hacer. Si realmente no entendiste nada de lo que acabo de decir, bueno, no deberías estar aquí en primer lugar.

El idioma no importa; el soporte de la biblioteca para lo que quieres hacer lo hace. Entonces, vaya con Python, que significa numpy en el núcleo y Mayavi para la visualización.

Sea cual sea el idioma que conozca, al menos, y que tenga acceso a un intérprete o intérprete apropiado.

Este es un programa bastante sencillo que no está vinculado a ninguna interfaz de usuario o sistema operativo específico. Casi cualquier lenguaje diseñado en los últimos 40 años podría ser apropiado. Debe tener como mínimo la capacidad de tener subrutinas (por lo que RPGII está fuera).

C, C ++, C #, Java, Pascal, Basic (GW, Q, VB, .Net), Python, Lisp, Haskell, Go, Rust, Javascript, y probablemente toneladas más de las que no creo que todos tengan suficiente poder para modelar Este escenario. Simplemente elija algo con una sintaxis con la que se sienta cómodo y que se ejecute en su sistema operativo. Puede obtener un compilador gratuito para casi cualquiera de estos, y a menudo también puede obtener un IDE (entorno de desarrollo) gratuito. Si nunca ha programado antes, use Python ya que es “el básico de hoy”.

El verdadero desafío de este proyecto no es el lenguaje; Es la estructura del programa. ¿Utiliza objetos independientes que interactúan, una máquina de estado, objetos tontos o estructuras bajo un administrador de estado, un enfoque de funciones puras que actúa sobre coordenadas o matrices? Eso es lo que hace que este programa sea interesante. Probablemente hay una docena de formas de estructurarlo, y según esta breve descripción, ¿quién sabe cuál será más fácil? Solo usted puede responder eso al definir los problemas constitutivos que este programa intenta resolver. ¡Buena suerte!

No soy ingeniero, pero parece que quieres hacer simulaciones físicas. Además, según la pregunta, supongo que no has programado antes. Si desea solo las matemáticas de lo que está sucediendo (sin elemento gráfico), entonces lo que sea que funcione (Python, ruby, C ++, lo que sea).

Pero si quieres un elemento gráfico (quieres ver cómo se ve), entonces recomendaría java o c ++. Ambos tienen bibliotecas y documentación bastante extensas para aplicaciones gráficas, y son lo suficientemente eficientes para hacer lo que quieras. Java es más fácil de aprender, pero C ++ es un poco mejor para hacer aplicaciones gráficas.

Para la técnica? Si no ha programado antes, aprenda las matemáticas que necesitará para generar los resultados. Qué tan lejos estarán las líneas de flujo del solenoide dada la corriente X, qué tipo de forma tomará, qué interacciones le interesan, etc. Además, limite su alcance, si esta es su primera vez, entonces manténgalo simple (2D , colores limitados, generación de imágenes estáticas, comience con 1 solenoide y suba).

En una nota al margen, si encuentra que las matemáticas son bastante simples / computacionalmente baratas, probablemente podría hacerlo en flash (sí, lo del sitio web) o JavaScript. Esos dos son idiomas increíblemente fáciles, y puede obtener una manera justa de hacer una aplicación gráfica con solo esos.

¡Buena suerte! 🙂

MatLab es mi elección. Te da mucha libertad y es fácil de usar. También las capacidades de salida son casi ilimitadas.

Mi primer uso de Excel es calcular el campo electrostático, por lo que si la tarea no es tan complicada, incluso puede usar Excel.