Linguagem para cálculos

10 respostas
L

E ai pessoal,

Bom…estou a procura de uma linguagem que seja uma recomendada para realizar cálculos “complexos”.
Os cálculos seriam os cálculos da área de engenharia civil e afins.

Claro, sempre ouvimos que o FORTRAN é a linguagem neste caso, mas gostaria de ter, se possível, um leque maior de opções.

Gostaria de saber de vcs, engenheiros ou não, qual linguagem vcs utilizariam???
Sim, eu poderia estar pesquisando no google, mas queria uma opinião do pessoal que também tem experiência nestes casos.

Valeu…
Bom fds a todos!!!

10 Respostas

V

Cara, sou formado em Fisica e durante a graduacao resolvi algumas equacoes diferenciais utilizando C, mas muitos optavam por Fortran por ser mais simples! Dê uma procurada no livro Numerical Recipes, pois la existe inumeras rotinas para integracao de funcao, etc.

T+

H

Pois é, sempre ouvi o C como referência viu para isso viu.

Dizem que java é chato por causa do arredondamento…

Boa sorte ae! =/

L

Olá

Bem, sou engenheiro civil, passei meus primeiros 15 anos como desenvolvedor desenvolvendo quase que exclusivamente sistemas usados no cálculo e desenho de estruturas (CAE, CAD). Usava 99% de Fortran com um pouco de assembler, calculadoras HP e até linguagem de máquina no caso de maquininhas de calcular antigas que ninguém aqui já viu alguma)

Programei muito também em C e até me achava muito bom nisto. Mas como meus programas de engenharia são mais antigos do que meus conhecimentos de C, até hoje ainda uso Fortran para cálculos de engenharia. Uso Fortran 95 sem nada de orientação a objetos. Manipulo a memória na raça como se toda a memória do computador fosse um vetorzão imenso. Sofro com o Fortran na questão de manipulação de texto que a linguagem não foi feita para isto.

C/C++ são linguagens que se enquadram melhor na classificação como de linguagem de proósito geral. Fortran é mais especializado. Aliás acho que C/C++ constituem a linguagem que mais pode ser chamada de GPL, isto é, servem para tudo.

Dependendo do que você pretende fazer, a escolha da linguagem ficará mais claro. Se é só para cálculos como por exemplo resolução de grandes sistemas de equaçoes, análise de estruturas por meio do métodos dos elementos finitos e assemelhados, o Fortran ainda é muito interessante e tem um monte de coisas prontas por aí (em livros ou em bibliotecas open source). Se você pretende fazer gráficos 3D, provavelmente acabará se interessando por OpenGL e então C/C++ podem ser melhor opção. Se você pesquisar, encontrará muita tese de mestrado e doutorado que escreveram código em C/C++

Se seus cálculos serão estatísticos, aí não há a menor dúvida. O caminho é usar R e integrar com sua linguagem favorita.

Mesmo em Java se pode fazer muita coisa para engenharia. Há um livro de um autor russo (o livro é em inglês) ensinando elementos finitos com Java e ainda usa Java2D e Java3D. Eu ando com vontade de converter para Java umas rotinas em Fortran para renumeração otimizada de nós de estruturas (renumeração de grafos).

Como já desenvolvi MUITO para engenharia, meu conselho final é o seguinte: o mais importante é a escolha do algoritmo mais adequado. Implementar em alguma linguagem é apenas um detalhe menos importante e os pesquisadores costumam usar as que eles mais dominam.

Alternativasl:
Fortran -> IDE marromeno baseada no Visual Studio é paga, compilador gratuito não permite grandes sonhos como computação paralela, MPI, etc.
C/C++ -> IDE é o Visual Studio ou coisa pior
Java -> Ambiente de desenvolvimento muito mais produtivo e de graça
R -> programa meio na raça mas com poucos comandos faz um monte de coisas
Outras alternativas:
Delphi e Pascal -> tinha gente que usava isto, principalmente Pascal que antigamente era usado na eng. civil da USP
Python -> para pequenos cálculos é muito produtivo e tem melhor suporte para engenharia do que Ruby

Ficou meio confuso, se não entendeu algo, pergunte.

[]s
Luca

B

Python + SciPy

http://www.scipy.org/

L

Agradeço a todos pelas respostas,

Fiz a pergunta com relação a linguagem, pois gostaria de encontrar uma linguagem que além de atender as minhas necessidades seja uma linguagem que tenha um certo nicho. É o famoso “unir o útil ao agradável”.

Com as opiniões de vocês, acredito que já posso ter uma ideia de onde posso “startar”.

Luca, você teria o nome do livro e do autor para que eu possa ler alguma review?

Boa semana a todos!
Abs

L

Olá

LedRenan:
Luca, você teria o nome do livro e do autor para que eu possa ler alguma review?

Programming Finite Elements in Java

Gennadiy Nikishkov, mesmo autor do PDF Object oriented design of a finite element code in Java
Springer, 2010

The main aspects of finite element techniques are considered:
? finite element solution;
? generation of finite element meshes; and
? visualization of finite element models and results with Java 3D?.

The step-by-step presentation includes algorithm programming and code explanation at each point. Problems and exercises are provided for each chapter, with Java? source code and problem data sets available from the book?s webpage at springer.com/978-1-84882-971-8.

início do livro:

Objective
This book focuses on algorithms of the finite element method and their program- ming. First, general equations of the finite element method for solving solid me- chanics and thermal conductivity problems are introduced. Then, algorithms of the finite element method and their programming in JavaTM are considered. In addition to solution methods, the book presents algorithms and programming approaches for mesh generation and visualization.

Why Java?
The Java language is selected for its numerous advantages: an object-oriented paradigm, multiplatform support, ease of development, reliability and stability, the ability to use legacy C or C++ code, good documentation, development-tool avail- ability, etc. The Java runtime environment always checks subscript legitimacy to ensure that each subscript is equal to or greater than zero and less than the num- ber of elements in the array. Even this simple feature means a lot to developers. As a result, Java programs are less susceptible to bugs and security flaws. Java also provides application programming interfaces (APIs) for development of GUI, and three-dimensional graphics applications.

Você não disse para qual área de engenharia pretende programar. Fica meio difícil ajudar os outros sem saber direito o que eles precisam.

[]s
Luca

L

Luca,

A área que estou pretendendo atuar é de cálculos hidráulicos e de saneamento (Dimensionamento de Estações Elevatórias e de Tratamento de Esgotos).

Sei que o Autocad 2010 tem suporte para o VB.Net e o Object ARX (não tenho certeza) e, portanto, poderia desenvolver algum projeto utilizando as funções do AUTOCAD, porém, não encontro nenhuma referência sobre o assunto.

Penso que o VB.net seja mais adequado, pois, possibilita utiliza-lá em outros projetos fora do ambiente do CAD.

Agradeço a sua atenção.

A

Para calculos ? Use Matlab !

L

Olá

LedRenan:
Pretendendo atuar é de cálculos hidráulicos e de saneamento (Dimensionamento de Estações Elevatórias e de Tratamento de Esgotos).

Sei que o Autocad 2010 tem suporte para o VB.Net e o Object ARX (não tenho certeza) e, portanto, poderia desenvolver algum projeto utilizando as funções do AUTOCAD, porém, não encontro nenhuma referência sobre o assunto.

Penso que o VB.net seja mais adequado, pois, possibilita utiliza-lá em outros projetos fora do ambiente do CAD.

Fui no google e constatei que o Autocad agora suporta o VB.NET. O antigo VBA era um lixo que não merecia 5 minutos da gasto de neurônios com ele e li que os próximos Autocads não mais suportarão VBA.

Só que VB.NET não é lá estas coisas para cálculos científicos. Até já usei BASIC em PCs em 1983/84 quando não havia outra alternativa porque nem C havia. Mas não voltaria a usar. Mas meus cálculos são de estruturas. Preciso sempre resolver grandes sistemas de equações. Não me lembro mais como se calculam tubulações, estações elevatórias, bombas, etc. E era bom nisto na faculdade há uns poucos 40 anos atrás…

Minha dica: consulte seus professores, veja teses de mestrado e TCCs da sua escola. Procure usar a linguagem que você encontra o maior número de coisas prontas em papers, teses, revistas, etc.

[]s
Luca

L

Olá

Dois problemas:

  1. Comprar o Matlab. Não consegui saber o preço mas já me disseram que é caro.

  2. Não é uma linguagem de uso geral. Serve apenas para cálculos. Precisa de outra linguagem para apresentar resultados para humanos

Estou errado?

[]s
Luca

Criado 16 de julho de 2010
Ultima resposta 19 de jul. de 2010
Respostas 10
Participantes 6