Computação científica vs análise numérica

9

Sou formado em ciências da computação e matemática. Eu amo os dois assuntos. Estou pensando em fazer uma carreira de pós-graduação, talvez em computação científica. Qual é a diferença real entre computação científica e análise numérica? Eles são estudados como carreiras?

lâmina
fonte

Respostas:

18

Wikipedia dá uma boa definição

A análise numérica é o estudo de algoritmos que usam aproximação numérica (em oposição a manipulações simbólicas gerais) para os problemas da análise matemática (em oposição à matemática discreta).

Analistas numéricos geralmente estão interessados ​​em provar resultados matemáticos sobre seus algoritmos, incluindo limites de erro (quão grande pode ser o erro na aproximação), convergência de esquemas iterativos (a aproximação se aproxima do limite correto), ordem e taxa de convergência (com que rapidez o algoritmo converge) e a complexidade computacional (limitando o número de operações exigidas por um algoritmo). É possível fazer pesquisas nessas áreas sem nunca usar um computador, e alguns resultados importantes são anteriores ao desenvolvimento de computadores digitais nos anos 50.

A Wikipedia também possui uma definição para "Computação científica"

A ciência computacional (também computação científica ou computação científica (SC)) é um campo multidisciplinar em rápido crescimento que utiliza recursos avançados de computação para entender e resolver problemas complexos. A ciência computacional funde três elementos distintos: [1] Algoritmos (numéricos e não numéricos) e software de modelagem e simulação desenvolvidos para resolver problemas de ciência (por exemplo, biológicos, físicos e sociais), engenharia e humanidades; Ciência da computação e da informação que desenvolve e otimiza os componentes avançados de hardware, software, rede e gerenciamento de dados do sistema, necessários para solucionar problemas exigentes computacionalmente. A infraestrutura de computação que suporta a solução de problemas de ciência e engenharia e a informática de desenvolvimento e ciência da informação.

A computação científica é muito mais sobre aspectos práticos da obtenção de soluções precisas dos computadores. Obviamente, isso se baseia nos resultados da análise numérica, mas também se baseia fortemente na arquitetura de computadores e na engenharia de software. Embora a pesquisa em computação científica seja frequentemente feita por si só e para desenvolver hardware e software que serão úteis em muitos aplicativos, também há muitas pesquisas em computação científica que são motivadas pela necessidade de resolver problemas específicos de ciência e engenharia. Por exemplo, o desenvolvimento de modelos climáticos globais para estudar as mudanças climáticas também avançou a computação científica.

A análise numérica é mais comumente encontrada nos departamentos de matemática e matemática aplicada, enquanto a computação científica é um campo interdisciplinar que pode ser encontrado nos departamentos de ciência da computação, departamentos de matemática e nas várias disciplinas de engenharia e ciências.

Brian Borchers
fonte
11
Nos bons velhos tempos, havia muitas análises numéricas (professores, alunos, turmas, pesquisas) em alguns departamentos de ciência da computação. Grande parte desse trabalho foi dedicada ao desenvolvimento de algoritmos e softwares que funcionaram bem para resolver problemas reais em ciências, engenharia, estatística (computação estatística), gerenciamento / pesquisa operacional, etc. Não se tratava de provar teoremas por si só.
Mark L. Stone
A matemática aplicada seria um bom ponto de partida para qualquer uma delas?
blade
11
Sim, um conhecimento em matemática aplicada seria útil em qualquer direção. A verdadeira questão é o que você deseja adicionar ao que você já tem. A amplitude (ciência da computação e alguma área de ciência ou engenharia na qual a ciência computacional é usada) é muito útil em um campo interdisciplinar como a ciência computacional.
Brian Borchers
6

Como alguém que mudou da Engenharia para a Computação Científica durante a pós-graduação como uma necessidade incidental do tipo de trabalho que eu estava fazendo aqui são meus dois centavos:

  • A análise numérica se concentraria no lado da matemática e dos algoritmos. Descobrir quais técnicas usar para resolver um problema matemático específico que não possui uma solução analítica, por exemplo, Otimização de Manipulações de Matrizes do PDE da ODE etc.
  • Atualmente, a Análise Numérica envolve frequentemente quantidades significativas de programação, mas ainda assim está traduzindo as idéias matemáticas de um algoritmo eficiente em código de computador.
  • Tradicionalmente, o FORTRAN era o pilar. Mas você também pode esperar trabalhar com C / C ++ e hoje em dia com Python. Algumas coisas também podem envolver pacotes como Mathematica ou MATLAB
  • Chegando à Computação Científica, é mais uma área aplicada em que se tenta usar recursos de computação para resolver algum problema científico. Isso pode envolver muito trabalho das porcas e parafusos. por exemplo, compilar códigos, instalar sistemas operacionais e bibliotecas, configurar opções para fazer o código científico funcionar etc.
  • Como hoje em dia, um pouco de computação científica envolve cálculos paralelos, você provavelmente terá alguma exposição a clusters, supercomputadores, computação em nuvem, etc.
  • Na computação científica, enquanto você trabalha com linguagens de programação como C / FORTRAN etc., espere trabalhar muito com as linguagens de "colagem" / script como bash / perl etc.
  • Você provavelmente trabalhará muito com sistemas Linux-ey e acabará trabalhando bastante na linha de comando e com ferramentas como sed / awk etc. Algumas pessoas acabam sendo administradores de sistemas.
  • Muita computação científica envolve visualização e armazenamento / recuperação de dados. Muitas pessoas acabam se tornando especialistas em Big Data / Hadoop / Map Reduce etc.
  • A Análise Numérica é essencialmente um trabalho especializado. Você é bom em matemática e codificação e resolve um problema específico com muita eficiência. Às vezes, inventando um algoritmo ou dois ao longo do caminho. A computação científica é, em certo sentido, um trabalho generalista. Relativamente falando. Você costuma usar diversas ferramentas juntas para resolver um problema aplicado específico.
  • Muita computação científica pode envolver o trabalho nas interfaces. por exemplo, interfaces entre dois programas. Onde você canaliza dados de uma ferramenta para outra para processamento. Com alguma manipulação de formato ao longo do caminho. Você está tentando obter diversas ferramentas para conversar entre si, onde as ferramentas não foram realmente projetadas para conversar entre si.
  • Um especialista em computação científica geralmente precisará dominar vários formatos de dados. Muitos instrumentos terão seus próprios formatos proprietários e alguém precisará decodificar os dados em um formato que o algoritmo numérico goste.
  • Alguns caras da Computação Científica acabam contratando "helpdesks" de natureza muito especializada (bem remunerados também), onde um essencialmente ajuda um pesquisador / aluno / professor genérico a usar os recursos de computação de uma instituição para resolver qualquer problema que possa surgir. ou seja, o especialista em computação científica é aquele familiarizado com uma variedade de códigos e pacotes e capaz de aconselhar um usuário sobre qual ferramenta usar para melhor resolver o problema computacionalmente.
  • Você pode acabar portando códigos para outro hardware. Ou paralelo de códigos legados que foram gravados no modo serial. Ou otimizar códigos para executar mais rapidamente. Alguns caras convertem códigos para rodar em GPUs / CUDA etc. para fazê-los rodar mais rápido.
  • Uma boa parte da computação científica envolve solução de problemas. Muitas vezes, códigos que outras pessoas escreveram. Para descobrir por que eles travam em determinados hardwares, etc.
  • Muitas vezes você é o intermediário entre os especialistas. Por exemplo, tive que trabalhar em equipes com programadores hardcore, biólogos que precisam de computação, mas que não conseguem codificar muito, administradores de sistemas, gurus de rede, técnicos que gerenciam data centers etc.
  • Os funcionários da Scientific Computing podem ser solicitados a fornecer contribuições significativas quando um novo hardware é comprado ou a arquitetura de um sistema de computação é decidida. Nessas tarefas, você acaba trabalhando em estreita colaboração com engenheiros de vendas e tecnólogos da Dell / Cray / IBM / Infiniband / Cisco etc.

Espero que isso lhe dê uma idéia sobre os campos!

Um último conselho (leve-o com uma pitada enorme de sal!): Se você é bom em matemática, gosta de precisão e detalhes, lê papéis e descobre detalhes após um esforço significativo e concentrado, em que a inteligência individual é importante e envolve longos períodos de tempo. esforço então vá para Análise Numérica.

Por outro lado, se você gosta de ser generalista, troque de área, compense a genialidade com muito trabalho, seja uma pessoa de todas as profissões, esteja disposto a trabalhar com recomendações difusas e vagas, muitas vezes conflitantes, como trabalhar com equipes e lidar com conflitos. , prazos apertados, lidar com MBAs, etc., em seguida, tornar-se um cara da Computação Científica.

Mais uma vez, tome isso com uma pitada enorme de sal. A circunstância de cada pessoa é especial. E a maioria de nós aterrissou onde fizemos por pura coincidência e não porque planejamos dessa maneira. :)

curious_cat
fonte
0

Você quer ser um matemático aplicado. Este é um curso importante disponível em muitas universidades da escola de engenharia e também como doutorado. Embora, na minha experiência, a matemática seja a habilidade mais importante, alguma formação técnica em ciência da computação formal pode ser útil e talvez você não a encontre em outro lugar. Apenas tome cuidado para não ir muito longe na toca do coelho de CS ou você pode acabar fazendo uma pesquisa de CS que tende a afastar você de aplicações práticas.

Para responder sua pergunta específica, um matemático aplicado fará pesquisas em métodos e análises numéricos e, possivelmente, fará parceria com pesquisadores científicos para fazer computação científica em diversas áreas. Se você deseja buscar a computação científica especificamente, pode entrar em uma disciplina de pesquisa científica, como química computacional, biofísica, clima, bioinformática, etc.

user21387
fonte
Se você ler minha pergunta, verá que sou um major duplo. Na verdade, dedico mais tempo ao meu curso de matemática do que ao meu curso de cs. Eu não estou preocupado em tudo sobre ir a fundo em cs
lâmina
Eu li sua pergunta e foi por isso que disse "e como doutorado". A resposta pretende ser útil para outras pessoas que talvez não tenham escolhido uma das principais. Boa sorte na sua pesquisa. Os doutores tendem a ser muito flexíveis; portanto, encontre um grupo fazendo algo que você gosta e não se preocupe muito em ficar preso a uma área.
user21387