miniatura|250px|dereita|Tableta de arxila babilónica YBC 7289 (c. 1800–1600 a.C.) na que está impresa unha aproximación da raíz cadrada de 2 mediante o número sexaxesimal (1 24 51 10), cunha exactitude ata as cenmilésimas decimais, xa que: e

A análise numérica ou cálculo numérico é a rama das matemáticas que concirne coa derivación, descrición e análise de ferramentas e métodos para obter solucións numéricas de problemas matemáticos. A análise numérica está interesada en métodos matemáticos construtivos, isto é, aqueles métodos que mostran como construír solucións de problemas matemáticos. Por exemplo, unha proba construtiva da existencia dunha solución dun problema non só mostra que a solución existe, senón que tamén describe como debe ser determinada esa solución. Unha demostración da existencia dunha solución por redución ao absurdo non é construtiva.

Durante moito tempo a palabra algoritmo usouse como sinónimo de "método" no contexto de construír a solución dun problema matemático. Recentemente deseñouse unha definición matemática máis axeitada de algoritmo, en gran parte debida ao traballo de Alan Mathison Turing (1912-54), que deu unha definición baseada nun concepto abstracto dun computador. Para os propósitos deste artigo, consideraremos un algoritmo como a descrición completa e sen ambigüidades dun método de construción da solución dun problema matemático; deste xeito, podemos definir a análise numérica como o estudo de algoritmos que empregan a aproximación numérica (no canto da computación simbólica) para os problemas da análise matemática (a diferenza das matemáticas discretas).

Aínda que hoxe en día se deseñan moitos algoritmos numéricos para seren usados nos ordenadores dixitais, a análise numérica non debe confundirse coa programación computacional nin co procesamento de datos. A programación computacional concirne primariamente co problema de codificar algoritmos (non necesariamente numéricos) dunha forma axeitada para un ordenador; mentres que o procesamento de datos ten que ver cos problemas relativos a organizar un ordenador para que poidan ser manipulados os datos, os cales non teñen por que seren numéricos.

Campos relacionados coa análise numérica son a computación científica, que estuda a aplicación de técnicas numéricas e arquitectura de ordenadores a problemas concretos xurdidos nas ciencias e enxeñarías; a teoría da complexidade, que analiza o número de "operacións" e a cantidade de memoria do ordenador necesarias para resolver un problema; e a computación paralela, que concirne coa organización de procedementos computacionais de maneira que sexa posible executar varias partes dos procedementos simultaneamente en diferentes procesadores.

Os problemas que resolve a análise numérica aparecen en moitas disciplinas: ciencias naturais, ciencias sociais, enxeñaría, medicina, e nos negocios. Desde a metade do século XX, o crecemento en potencia e dispoñibilidade dos ordenadores dixitais levou a un incremento no uso de modelos matemáticos realistas en ciencia e enxeñaría; e é necesaria unha análise matemática cada vez máis sofisticada para resolveren aqueles modelos máis detallados do mundo.

A análise numérica continúa esta longa tradición de cálculos matemáticos prácticos. Ao xeito da aproximación babilónica de , a análise numérica moderna non busca respostas exactas, xa que asume que estas son imposibles de obter na práctica. No canto disto, a análise numérica preocúpase de obter solucións aproximadas mantendo unhas marxes razoables de erro.

Un concepto paralelo á análise numérica é o da representación, tanto dos números como doutros conceptos matemáticos como os vectores, polinomios etc. Por exemplo, para a representación en ordenadores de números reais, emprégase o concepto de coma flotante que dista moito do empregado pola matemática convencional. En xeral, estes métodos aplícanse cando se precisa un valor numérico como solución a un problema matemático, e os procedementos "exactos" ou "analíticos" son incapaces de dar unha resposta. Debido a isto, son procedementos de uso frecuente por físicos e enxeñeiros, e o seu desenvolvemento viuse favorecido pola necesidade destes de obter solucións, aínda que a precisión non sexa total. A física experimental, por exemplo, non ofrece nunca valores exactos senón intervalos que abranguen a maioría dos resultados experimentais obtidos, xa que non é habitual que dúas medidas do mesmo fenómeno dean valores exactamente iguais.

Historia miniatura|Explicación gráfica animada do método da regula falsi para aproximar solucións dunha ecuación. Os algoritmos numéricos son case tan antigos coma a civilización humana. Os babilonios, vinte séculos antes de Cristo, xa posuían táboas de cadrados de todos os enteiros entre 1 e 60. Un dos primeiros escritos matemáticos, tamén de autoría babilonia, é a taboíña YBC 7289, que dá unha aproximación numérica sesaxesimal de , considerándoa coma a lonxitude da diagonal do cadrado de lado a unidade. Esta destreza segue a ter hoxe en día a súa aplicación práctica, por exemplo, en carpintería e construción.

Os exípcios, que xa usaban fraccións, inventaron o chamado método da regula falsi para aproximar solucións dunha ecuación, descrito no papiro de Rhind (c. 1650 a.C.).

Na Grecia antiga foron moitos os matemáticos que contribuíron ao pulo desta disciplina. Así, Arquímedes (278-212 a.C.) demostrou que:

e presentou o chamado método exhaustivo para calcular lonxitudes, áreas e volumes de figuras xeométricas, moi próximo ao que hoxe se fai en análise numérica. Así mesmo foi tamén un precursor do desenvolvemento do cálculo integral de Isaac Newton (1643-1729) e Gottfried Wilhelm Leibniz (1646-1716).

Herón de Alexandría ideou no século I un método para calcular un valor aproximado da raíz cadrada dun número a, partindo dunha aproximación inicial x0 e mediante a iteración:

No ano 250, Diofanto consegue un método para a determinación das solucións dunha ecuación cuadrática.

As maiores contribucións durante a Idade Media para o desenvolvemento da matemática algorítmica viñeran principalmente da India e a China. O máis salientable é, sen dúbida, a introdución da chamada numeración hindú-árabe. miniatura|Animación que mostra a interpretación xeométrica do método de Newton para calcular unha solución dunha ecuación. Coa aparición do cálculo e o descubrimento dos logaritmos no século XVII, os novos modelos matemáticos propostos non podían resolverse de forma explícita, facéndose necesario o desenvolvemento de métodos numéricos para obter solucións aproximadas. Por exemplo, Newton desenvolveu varios métodos para a resolución de moitos problemas, métodos que hoxe levan o seu nome. Esta técnica continuou desenvolvéndose nos séculos XVIII e XIX, podéndose destacar na construción de métodos numéricos a Leonhard Euler (1707-1783), Joseph Louis Lagrange (1736-1813) e Carl Friedrich Gauss (1777-1875).

A aparición dos ordenadores contribuíu decisivamente ao desenvolvemento da análise numérica. A pesar de que tanto Pascal coma Leibniz xa construíran no século XVII as primeiras máquinas de calcular e de que Charles Babbage construíu o considerado primeiro ordenador que nunca funcionou, non foi ata a década dos 40 do século XX cando aparece o primeiro ordenador coa construción do ENIAC, ao que seguiron moitos máis que evolucionaron ata chegar aos modernos ordenadores electrónicos.

Antes da chegada das computadoras modernas, os métodos numéricos adoitaban depender de interpolacións manuais en longas táboas impresas. Desde mediados do século XX as computadoras calculan as funcións requiridas. Porén, os algoritmos de interpolación pódense usar coma parte do software para resolver ecuacións diferenciais.

A análise numérica atopa aplicacións en tódolos campos da enxeñaría e as ciencias naturais, mais no século XXI, as ciencias sociais e incluso as artes adoptaron elementos do cálculo científico. As ecuacións diferenciais ordinarias aparecen nos movementos dos corpos celestes (planetas, estrelas e galaxias); a optimización ten lugar na xestión de catálogos; a álxebra lineal numérica é importante para a análise de datos; as ecuacións diferenciais estocásticas e as cadeas de Markov son esenciais na simulación de células vivas na medicina e a bioloxía.

Problemas que trata e tipos de erros Os problemas desta disciplina pódense dividir en dous grupos fundamentais:

Problemas en dimensión finita: aqueles de natureza numérica nos que interveñen números en cantidade finita, como o cálculo de solucións de ecuacións alxébricas, cálculo de determinantes, resolución de sistemas de ecuacións, inversión de matrices, cálculo de autovalores e autovectores etc.

En todos estes problemas, a análise numérica debe proporcionar algoritmos que permitan o cálculo exacto ou aproximado da solución.

Problemas en dimensión infinita: problemas nos que interveñen elementos con infinitos graos de liberdade (por exemplo, funcións), como a interpolación e aproximación, a integración e a derivación numéricas, a resolucións de ecuacións diferenciais, a interpolación etc.

A análise numérica debe ocuparse da aproximación dun problema deste segundo tipo por outros do primeiro, de maneira que serán estes últimos os que se resolvan coa axuda dos ordenadores. O proceso de aproximación dun problema en dimensión infinita polo paso a dimensión finita coñécese como discretización e realízase principalmente coa axuda da teoría da interpolación e aproximación de funcións. En xeral, a discretización será boa cando a solución do problema aproximado converxa á do problema inicial, cando a dimensión tenda a infinito.

Neste problema de convexencia é importante a estimación do erro cometido ao substituír a solución exacta pola aproximada, isto é, o chamado erro de discretización. Unha vez reducido o problema en dimensión infinita a un en dimensión finita, hai que describir e analizar os algoritmos numéricos que se van utilizar na súa resolución. Con frecuencia preséntanse problemas que non poden resolverse mediante métodos directos (aqueles que nun número finito de operacións chégase á solución exacta), sendo necesario o uso de métodos iterativos: constrúese unha sucesión infinita de iterantes que no límite converxe á solución exacta, aínda que na práctica só se poderán calcular un número finito de iterantes. O erro que se comete ao deter o proceso infinito nun paso determinado, chamado erro de truncamento, ou erro de converxencia, debe considerarse cuidadosamente.

De especial importancia no cálculo a gran escale é un terceiro tipo de erro, o erro de arredondamento, debido á imposibilidade de representar exactamente nun ordenador todas as cifras dun número, tanto real coma complexo. Se a isto engadimos que a aritmética utilizada polo ordenador é diferente á que manexamos habitualmente, comprenderase a importancia deste erro cando se realizan un número elevado de cálculos.

Un algoritmo numericamente inestable, é dicir, aquel que é moi sensible aos erros de arredondamento, debe ser desbotado, xa que os resultados que proporcione poden diferir totalmente da solución real do problema. Para estudar a propagación dos erros precísase coñecer o condicionamento do problema, é dicir, a sesibilidade dos resultados do problema fronte a pequenos cambios nos datos de partida. A resolución dun problema mal condicionado leva a un funcionamento incerto dos algoritmos. Nestes casos haberá que mellorar o condicionamento, dalgunha maneira equilibrar o problema. Todas estas razóns fan necesaria a busca de algoritmos co menor número posible de operacións, ou algoritmos de baixo custo.

Tendo en conta estas consideracións, pódense distinguir tres tipos de problemas nos que intervén a análise numérica: