Pergunta

Eu odeio Física, mas eu amo desenvolvimento de software. Quando eu voltar para a escola depois de Ação de Graças, eu vou tomar mais dois trimestres de Física antes que eu sou feito com a coisa horrível. Atualmente, estou lendo publicações nos F # unidades de recurso de medição, mas eu nunca usei uma linguagem como F #. Seria adequado para aplicações de gravação para que eu possa talvez aprender algo sobre Física ao fazer algo que eu gosto?

Estou interessado em aplicativos de linha de comando (mesmo aqueles que posso apenas executar e ter cuspir uma resposta sem necessidade de entradas) para coisas como cinemática, movimento planar, de Newton Leis, gravitação, trabalho, energia, impulso e impulso , sistemas de partículas, cinemática e dinâmica rotacional, momento angular, de equilíbrio estático, um movimento oscilatório, o movimento das ondas, de som e óptica físicas, eletrostática, a lei de Gauss, do campo eléctrico e potenciais, de capacitância, resistência, circuitos DC, o campo magnético, a lei de Ampere e indutância.

A razão que eu estou interessado em F # é por causa das unidades de funcionalidade medida que a língua oferece.

Foi útil?

Solução

Na minha opinião tendenciosa, F # é ideal para a física. Ele tem um recurso chamado unidades de medida que não faz análise dimensional para você, proporcionando erros se você errar. Por exemplo, se você escrever:

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

que produzir uma compilação de erros , uma vez que a gravidade é e não . Isso evita que uma grande quantidade de erros de programação de física-relacionados.

Para mais informações confira Andrew Kennedy blogue .

Outras dicas

Eu andava a introdução de uma chamada livro "F # para cientistas" (a intro está disponível gratuitamente), e parece ser uma boa introdução para o campo, já que F # parece estar muito bem adaptado a este tipo de campo .

Você pode querer ter um olhar para a introdução.

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

(E não, eu não tenho nenhuma relação com o autor; -)

Sim (qualquer língua é) e No (saiba o que seus futuros colegas vai usar, como talvez eles usam python.). Um interessante é lado Fortress .

Sobre a análise dimensional: um truque divertido cálculo, uma vez dada por um dos meus professores de física: uma vez que leva uma hora para perfeitamente cozinhar um peru de uma libra em um determinado forno, quanto tempo que seria necessário para cozinhar um peru 2 libra é o mesmo forno?

Bem, mostra a análise dimensional

(1) que a quantidade total de energia térmica necessária para cozinhar o peru é proporcional à massa da Turquia, que em si é proporcional ao seu volume, que em si é proporcional ao cubo da mesma média "raio"
ou seja
Cozinhar energia térmica necessária = K1 * (turkeyRadius" ^ 3) ==> unidade: m ^ 3 * k (em que k 1 unidade é J / m ^ 3)

(2) que a quantidade total de energia térmica fornecida pelo forno é proporcional à superfície da Turquia multiplicado pela quantidade de tempo que você cozinhá-lo,
ou seja
O calor fornecido pelo forno = K2 * * tempo (turkeyRadius ^ 2) (onde K2 é unidade de J / s / m ^ 2)

Em seguida, usando (1) = (2), obtém
time = k1 / k2 * turkeyRadius ^ (3/2)

ou seja
- O tempo de cozedura é proportionnal ao raio ^ 3/2
- dado que turkeyRadius é proportionnal à raiz cúbica da massa, obtemos
tempo de cozimento = k3 * sqrt (massa)

Assim, vai demorar sqrt (2) vezes mais tempo para cozinhar o nosso 2 libras de peru, eo resultado é obtido com nenhum cálculo em tudo -. Somente a análise dimensional

Sim, F # é uma ótima maneira de construir sobre programação funcional, assim como Chris Smith disse em sua resposta. Eu estou trabalhando na construção de uma ampla discussão sobre a física, engenharia e biologia usando F #. Eu certamente poderia usar a entrada de um aluno como você. Programação sem um problema da vida real em mente é uma forma de programação. A outra maneira que seja bem sucedido é fornecer soluções que são usados ??somente por pessoas que usam computadores, certamente outro caminho a percorrer e que constrói riqueza.

F # é feita para domínios de conhecimento, como Física.

FSharp é uma escolha. Se você quer aprender uma habilidade que pode também ser um benefício a mais longo prazo por que não aprender python. Você também terá numpy e scipy ao seu alcance, em seguida, também.

Aprender qualquer linguagem de computador não vai te ensinar a física, e você pode aprender física, escrevendo programas em qualquer idioma.

A análise dimensional é uma ferramenta bastante útil para problemas de física, ele pode dirigi-lo longe de ser "nem mesmo errado".

Eu sempre ganhou um certo prazer perverso em obter uma resposta errada por fatores de 10 ^ 34 porque eu tenho minhas unidades em algum lugar errado; -)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top