Question

Je déteste la physique, mais j'aime le développement de logiciels. Quand je retournerai à l'école après Thanksgiving, je suivrai deux autres trimestres de physique avant d'avoir terminé la chose horrible. Je suis en train de lire des publications sur les unités de mesure F #, mais je n'ai jamais utilisé un langage comme F #. Serait-il approprié d’écrire des applications afin que je puisse peut-être apprendre quelque chose sur la physique tout en faisant quelque chose que j’aime?

Je suis intéressé par les applications en ligne de commande (même celles que je peux exécuter et cracher une réponse sans avoir besoin d'entrées) pour des choses comme la cinématique, le mouvement planaire, les lois de Newton, la gravitation, le travail, l'énergie, la quantité de mouvement et l'impulsion. , systèmes de particules, cinématique et dynamique de rotation, moment cinétique, équilibre statique, mouvement oscillatoire, mouvement des vagues, son, optique physique, électrostatique, loi de Gauss, champ et potentiel électriques, capacité, résistance, circuits à courant continu, champ magnétique, loi de Ampère et inductance.

La raison pour laquelle je suis intéressé par F # est due à la fonctionnalité des unités de mesure fournie par le langage.

Était-ce utile?

La solution

À mon avis, F # est idéal pour la physique. Il dispose d'une fonctionnalité appelée Unités de mesure qui effectue une analyse dimensionnelle à votre place, générant des erreurs si vous vous trompez. Par exemple, si vous écrivez:

let distance : float<meters> = gravity * 3.0<seconds>

Cela génèrerait une erreur de compilation , car la gravité est < mètres / secondes ^ 2 > et pas < mètres > ;. Cela évite de nombreuses erreurs de programmation liées à la physique.

Pour plus d'informations, consultez le blog d'Andrew Kennedy .

Autres conseils

J'ai participé à l'introduction d'un livre intitulé " F # pour scientifiques " (l'intro est disponible gratuitement), et cela semble être une bonne introduction au domaine, car F # semble très bien adapté à ce type de domaine.

Vous voudrez peut-être jeter un coup d’œil à l’introduction.

http://www.ffconsultancy.com/products/fsharp_for_scientists/

(Et non, je n'ai aucun lien avec l'auteur; -)

Oui (quelle que soit la langue utilisée) et Non (découvrez ce que vos futurs collègues utiliseront, par exemple, ils utilisent peut-être python.). Forteresse est un aspect intéressant.

À propos de l’analyse dimensionnelle: un calcul amusant donné un jour par l’un de mes professeurs de physique: étant donné qu’il faut une heure pour cuire parfaitement une dinde d’une livre dans un four, le temps de cuisson d’une dinde de 2 livres est le même four?

L’analyse dimensionnelle montre

(1) que la quantité totale d'énergie thermique nécessaire pour cuire la dinde est proportionnelle à la masse de la dinde, qui est elle-même proportionnelle à son volume, lui-même proportionnel à son cube moyen & "rayon &";
c'est-à-dire
Énergie thermique nécessaire pour la cuisson = k1 * (turkeyRadius & Quot; ^ 3) == & Gt; unité: m ^ 3 * k (où k1 unité est J / m ^ 3)

(2) Que la quantité totale d'énergie calorifique fournie par le four est proportionnelle à la surface de la dinde multipliée par la durée de sa cuisson,
c'est-à-dire
Chaleur fournie par le four = k2 * temps * (turkeyRadius ^ 2) (où k2 unité est J / s / m ^ 2)

Ensuite, en utilisant (1) = (2), vous obtenez
temps = k1 / k2 * turkeyRadius ^ (3/2)

i.e
- le temps de cuisson est proportionnel au rayon ^ 3/2
- Etant donné que turkeyRadius est proportionnel à la racine cubique de la masse, nous obtenons
  temps de cuisson = k3 * sqrt (masse)

La cuisson de notre dinde de 2 livres prendra donc 2 fois plus de temps et le résultat est obtenu sans aucun calcul - uniquement une analyse dimensionnelle.

Oui, F # est un excellent moyen de renforcer la programmation fonctionnelle, comme l’a dit Chris Smith dans sa réponse. Je travaille actuellement sur une discussion approfondie sur la physique, l'ingénierie et la biologie à l'aide de F #. Je pourrais certainement utiliser les informations d'un étudiant comme vous. Programmer sans problèmes de la vie réelle est une façon de programmer. L’autre moyen de réussir consiste à proposer des solutions qui ne sont utilisées que par les utilisateurs d’ordinateurs, ce qui est certainement un autre moyen de créer de la richesse.

F # est conçu pour des domaines de connaissance tels que la physique.

Fsharp est un choix. Si vous voulez apprendre une technique qui peut aussi présenter des avantages à long terme, pourquoi ne pas apprendre le python. Vous aurez également Numpy et Scipy à portée de main, puis aussi.

Apprendre n'importe quel langage informatique ne vous apprendra pas la physique, et vous pouvez apprendre la physique en écrivant des programmes dans n'importe quelle langue.

L’analyse dimensionnelle est un outil plutôt pratique pour les problèmes de physique, elle peut vous éviter d’être & "pas même faux &";.

J'ai toujours eu un certain plaisir pervers à me tromper de réponse par des facteurs de 10 ^ 34 parce que je me suis trompé quelque part; -)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top