<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pt-BR">
	<id>http://fiscomp.if.ufrgs.br/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ejagnes</id>
	<title>Física Computacional - Contribuições do usuário [pt-br]</title>
	<link rel="self" type="application/atom+xml" href="http://fiscomp.if.ufrgs.br/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ejagnes"/>
	<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Especial:Contribui%C3%A7%C3%B5es/Ejagnes"/>
	<updated>2026-05-06T17:54:06Z</updated>
	<subtitle>Contribuições do usuário</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=%C3%81rea_3&amp;diff=211</id>
		<title>Área 3</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=%C3%81rea_3&amp;diff=211"/>
		<updated>2011-11-29T17:32:51Z</updated>

		<summary type="html">&lt;p&gt;Ejagnes: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A) Interpolação e Extrapolação&lt;br /&gt;
--------------------------------------------&lt;br /&gt;
&lt;br /&gt;
1 - Explique a ideia do algoritmo de Neville (linhas gerais).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2 - Em aula fizemos um algoritmo que interpola um conjunto de pontos usando o algoritmo de Neville.&lt;br /&gt;
Na ocasião, eu propus que os polinômios fossem mapeados em uma matriz quadrada A de dimensão NxN, onde os elementos da primeira coluna eram os pontos P11, P22, P33, etc e os demais elementos eram colocados nas demais colunas...&lt;br /&gt;
Agora eu quero propor uma outra maneira de mapear e isto implica uma outra maneira de construir o algoritmo. O objetivo é que você ENTENDA os passos, construa o seu algortimo com calma. &lt;br /&gt;
Mapeie da seguinte maneira:&lt;br /&gt;
os polinômios P11, P22, P33, etc (os quais são dados do problema) são colocados na diagonal principal da matrix A (A[1][1], A[2][2], etc). Em seguida, os polinômios P12, P23, P34, etc, são colocados na diagonal seguinte (A[1][2], A[2][3], etc) . Os poliômios P123, P234, etc na outra diagonal (A[1][3], A[2][4], etc) e assim sucessivamente.&lt;br /&gt;
Este algoritmo terá uma fórmula de recorrência difente daquele feito em aula e também a maneira de variar os índices será outra.&lt;br /&gt;
&lt;br /&gt;
Use os seguintes N=4 pontos como dados de entrada:&lt;br /&gt;
&lt;br /&gt;
0.000000 0.000000&lt;br /&gt;
&lt;br /&gt;
1.500000 0.997495&lt;br /&gt;
&lt;br /&gt;
3.000000 0.141120&lt;br /&gt;
&lt;br /&gt;
4.500000 -0.977530&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Uma vez que o algoritmo esteja funcionando para N=4, use os seguintes N=9 pontos:&lt;br /&gt;
&lt;br /&gt;
0.000000 0.000000&lt;br /&gt;
 &lt;br /&gt;
0.750000 0.681639&lt;br /&gt;
&lt;br /&gt;
1.500000 0.997495&lt;br /&gt;
&lt;br /&gt;
2.250000 0.778073&lt;br /&gt;
&lt;br /&gt;
3.000000 0.141120&lt;br /&gt;
&lt;br /&gt;
3.750000 -0.571561&lt;br /&gt;
&lt;br /&gt;
4.500000 -0.977530&lt;br /&gt;
&lt;br /&gt;
5.250000 -0.858935&lt;br /&gt;
&lt;br /&gt;
6.000000 -0.279415&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
O ideal é fazer um programa que leia estes dados de dentro de um arquivo de entrada e faça a interpolação para um valor de N qualquer que o usuário queira.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3 - Use o algorimo construído em 8 para interpolar os seguintes N=11 pontos:&lt;br /&gt;
&lt;br /&gt;
0.000000 -0.200000&lt;br /&gt;
&lt;br /&gt;
0.600000 -0.227273&lt;br /&gt;
&lt;br /&gt;
1.200000 -0.263158&lt;br /&gt;
&lt;br /&gt;
1.800000 -0.312500&lt;br /&gt;
&lt;br /&gt;
2.400000 -0.384615&lt;br /&gt;
&lt;br /&gt;
3.000000 -0.500000&lt;br /&gt;
&lt;br /&gt;
3.600000 -0.714286&lt;br /&gt;
&lt;br /&gt;
4.200000 -1.250000&lt;br /&gt;
&lt;br /&gt;
4.800000 -4.999993&lt;br /&gt;
&lt;br /&gt;
5.400000 2.500002&lt;br /&gt;
&lt;br /&gt;
6.000000 1.000000&lt;br /&gt;
&lt;br /&gt;
Desenhe no gnuplot estes pontos e os valores interpolados pelo seu programa. Varie x entre 0 e 6 varrendo x a cada 0.2.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
B) Zeros de Funções&lt;br /&gt;
------------------------------&lt;br /&gt;
&lt;br /&gt;
Legenda para esta seção: &lt;br /&gt;
F(x) = f(x) + x&lt;br /&gt;
&lt;br /&gt;
F&#039;(x) é a derivada de F(x) com relação à x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Considere a função &amp;lt;math&amp;gt;f(x) = exp(-0.1*x)*sin(2*x)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4 - Faça no gnuplot um gráfico desta função dentro do intervalo pedido [-5:5]. Desenhe junto a linha y=0 para que você possa visualizar graficamente quantas raízes há neste intervalo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5 - Retome o programa (fornecido em aula e que está no moodle) que calcula zeros de funções usando o método de Newton-Raphson e adapte-do para encotrar TODOS os zeros da função f(x) no intervalo [-5:5]. Imprima estas raízes num arquivo chamado raizes.dat.&lt;br /&gt;
Fundamental se dar conta de alguns &amp;quot;detalhes&amp;quot; antes de executar esta tarefa:&lt;br /&gt;
* Como o método de Newton-Raphson encontra apenas uma raiz para cada valor &amp;quot;chute&amp;quot; de x (&amp;quot;x_init&amp;quot;), então você deverá relançar o método várias vezes até encontrar todas as raízes do intervalo. Isto exige que você faça um loop variando &amp;quot;x_init&amp;quot; e, para cada x_init, você aplica o método de iteração.&lt;br /&gt;
* Note que o método pode (e provavelmente vai) encontrar a mesma raiz mais de uma vez. Você não deve estocar raízes repedidas! e isto implica que você deve pensar em uma maneira de fazer isto (dicas no final da lista para os que quiserem)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
6 - Faça exatamente o mesmo procedimento que fizeste no problema 5 com o método de iteração simples. Uma vez feito o algoritmo do problema 5, basta você alterar a parte que calcula a iteração para usar o método de iteração simples visto em aula. &lt;br /&gt;
Usando este método, quantas raízes você consegue encontrar? &lt;br /&gt;
Calcule F&#039;(x) para cada raiz encontrada no problema 5 e interprete o resultado que você acaba de obter à luz do que foi discutido em aula sobre a estabalidade do método de iteração simples.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
7- método de bissecção: discuta brevemente as desvantagens deste método.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dicas para o problema 5 (no ponto onde você vai verificar se a nova raiz encontrada já foi calculada)&lt;br /&gt;
a) você pode estocar as raízes em uma matriz (ex raizes[] ) e, a cada vez que o algoritmo encontra uma raiz, ele deve comparar com as demais raízes já estocadas na matriz raizes[].&lt;br /&gt;
b) quando você for comparar a nova raiz encontrada (digamos x) com os elementos da matriz raizes[] (digamos raizes[i]), perceba que você estará comparando números reais. Então cuidado com os operadores de igual (==) ou diferente (!=), pois um número será diferente do outro se e somente se todas os algarismos significativos o forem! portanto, ao invés de comparar se x!=raizes[i], faça fabs(x-raizes[i]) &amp;lt; PRECISAO, onde fmod(a) é o módulo de a.&lt;br /&gt;
c) não hesite em &amp;quot;debugar&amp;quot; o seu programa ! Isto vai ajudá-la(o) a entender o que há de errado.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
C) Ajuste de curvas usando o método dos mínimos quadrados&lt;br /&gt;
------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
8)  Dados os pontos;&lt;br /&gt;
&lt;br /&gt;
x: 0.10    0.20    0.30    0.40    0.50    0.60    0.70   0.80    0.90  1.00&lt;br /&gt;
&lt;br /&gt;
y:  0.62    0.63    0.64    0.66    0.68    0.71   0.76    0.81    0.89  1.00&lt;br /&gt;
&lt;br /&gt;
Ajuste uma função do tipo f(x) = a0+a1*x+a2*x2 usando o método dos mínimos quadrados. Depois faça um gráfico usando os pontos da tabela e compare com a curva teórica que você calculou.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
9) A resistência à compressão do concreto ( chamada de sigma ), decresce com o aumento da razão água/cimento (w/c, cuja unidade é em galões de água por saco de cimento). A resistência à compressão de várias amostras  é dada na tabela a seguir:&lt;br /&gt;
&lt;br /&gt;
w/c:         4.5       5.0     5.5      6.0         6.5      7.0       7.5      8.0       8.5     9.0&lt;br /&gt;
&lt;br /&gt;
sigma:     7000  6125  5237    4665     4123   3810   3107     3070     2580     2287&lt;br /&gt;
&lt;br /&gt;
Usando o método dos mínimos quadrados e utilizando uma função do tipo f(x)= a0*exp(-a1* w/c ), ajuste sigma aos dados da tabela. Grafique os pontos da tabela e a função obtida.&lt;/div&gt;</summary>
		<author><name>Ejagnes</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=%C3%81rea_3&amp;diff=210</id>
		<title>Área 3</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=%C3%81rea_3&amp;diff=210"/>
		<updated>2011-11-29T17:30:35Z</updated>

		<summary type="html">&lt;p&gt;Ejagnes: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A) Interpolação e Extrapolação&lt;br /&gt;
--------------------------------------------&lt;br /&gt;
&lt;br /&gt;
1 - Explique a ideia do algoritmo de Neville (linhas gerais).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2 - Em aula fizemos um algoritmo que interpola um conjunto de pontos usando o algoritmo de Neville.&lt;br /&gt;
Na ocasião, eu propus que os polinômios fossem mapeados em uma matriz quadrada A de dimensão NxN, onde os elementos da primeira coluna eram os pontos P11, P22, P33, etc e os demais elementos eram colocados nas demais colunas...&lt;br /&gt;
Agora eu quero propor uma outra maneira de mapear e isto implica uma outra maneira de construir o algoritmo. O objetivo é que você ENTENDA os passos, construa o seu algortimo com calma. &lt;br /&gt;
Mapeie da seguinte maneira:&lt;br /&gt;
os polinômios P11, P22, P33, etc (os quais são dados do problema) são colocados na diagonal principal da matrix A (A[1][1], A[2][2], etc). Em seguida, os polinômios P12, P23, P34, etc, são colocados na diagonal seguinte (A[1][2], A[2][3], etc) . Os poliômios P123, P234, etc na outra diagonal (A[1][3], A[2][4], etc) e assim sucessivamente.&lt;br /&gt;
Este algoritmo terá uma fórmula de recorrência difente daquele feito em aula e também a maneira de variar os índices será outra.&lt;br /&gt;
&lt;br /&gt;
Use os seguintes N=4 pontos como dados de entrada:&lt;br /&gt;
&lt;br /&gt;
0.000000 0.000000&lt;br /&gt;
&lt;br /&gt;
1.500000 0.997495&lt;br /&gt;
&lt;br /&gt;
3.000000 0.141120&lt;br /&gt;
&lt;br /&gt;
4.500000 -0.977530&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Uma vez que o algoritmo esteja funcionando para N=4, use os seguintes N=9 pontos:&lt;br /&gt;
&lt;br /&gt;
0.000000 0.000000&lt;br /&gt;
 &lt;br /&gt;
0.750000 0.681639&lt;br /&gt;
&lt;br /&gt;
1.500000 0.997495&lt;br /&gt;
&lt;br /&gt;
2.250000 0.778073&lt;br /&gt;
&lt;br /&gt;
3.000000 0.141120&lt;br /&gt;
&lt;br /&gt;
3.750000 -0.571561&lt;br /&gt;
&lt;br /&gt;
4.500000 -0.977530&lt;br /&gt;
&lt;br /&gt;
5.250000 -0.858935&lt;br /&gt;
&lt;br /&gt;
6.000000 -0.279415&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
O ideal é fazer um programa que leia estes dados de dentro de um arquivo de entrada e faça a interpolação para um valor de N qualquer que o usuário queira.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3 - Use o algorimo construído em 8 para interpolar os seguintes N=11 pontos:&lt;br /&gt;
&lt;br /&gt;
0.000000 -0.200000&lt;br /&gt;
&lt;br /&gt;
0.600000 -0.227273&lt;br /&gt;
&lt;br /&gt;
1.200000 -0.263158&lt;br /&gt;
&lt;br /&gt;
1.800000 -0.312500&lt;br /&gt;
&lt;br /&gt;
2.400000 -0.384615&lt;br /&gt;
&lt;br /&gt;
3.000000 -0.500000&lt;br /&gt;
&lt;br /&gt;
3.600000 -0.714286&lt;br /&gt;
&lt;br /&gt;
4.200000 -1.250000&lt;br /&gt;
&lt;br /&gt;
4.800000 -4.999993&lt;br /&gt;
&lt;br /&gt;
5.400000 2.500002&lt;br /&gt;
&lt;br /&gt;
6.000000 1.000000&lt;br /&gt;
&lt;br /&gt;
Desenhe no gnuplot estes pontos e os valores interpolados pelo seu programa. Varie x entre 0 e 6 varrendo x a cada 0.2.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
B) Zeros de Funções&lt;br /&gt;
------------------------------&lt;br /&gt;
&lt;br /&gt;
Legenda para esta seção: &lt;br /&gt;
:&amp;lt;math&amp;gt;F(x) = f(x) + x &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;F&#039;(x)&amp;lt;/math&amp;gt; é a derivada de &amp;lt;math&amp;gt;F(x)&amp;lt;/math&amp;gt; com relação à &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Considere a função &amp;lt;math&amp;gt;f(x) = exp(-0.1*x)*sin(2*x)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4 - Faça no gnuplot um gráfico desta função dentro do intervalo pedido [-5:5]. Desenhe junto a linha &amp;lt;math&amp;gt;y=0&amp;lt;/math&amp;gt; para que você possa visualizar graficamente quantas raízes há neste intervalo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5 - Retome o programa (fornecido em aula e que está no moodle) que calcula zeros de funções usando o método de Newton-Raphson e adapte-do para encotrar TODOS os zeros da função &amp;lt;math&amp;gt;f(x)&amp;lt;/math&amp;gt; no intervalo [-5:5]. Imprima estas raízes num arquivo chamado raizes.dat.&lt;br /&gt;
Fundamental se dar conta de alguns &amp;quot;detalhes&amp;quot; antes de executar esta tarefa:&lt;br /&gt;
* Como o método de Newton-Raphson encontra apenas uma raiz para cada valor &amp;quot;chute&amp;quot; de x (&amp;quot;x_init&amp;quot;), então você deverá relançar o método várias vezes até encontrar todas as raízes do intervalo. Isto exige que você faça um loop variando &amp;quot;x_init&amp;quot; e, para cada x_init, você aplica o método de iteração.&lt;br /&gt;
* Note que o método pode (e provavelmente vai) encontrar a mesma raiz mais de uma vez. Você não deve estocar raízes repedidas! e isto implica que você deve pensar em uma maneira de fazer isto (dicas no final da lista para os que quiserem)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
6 - Faça exatamente o mesmo procedimento que fizeste no problema 5 com o método de iteração simples. Uma vez feito o algoritmo do problema 5, basta você alterar a parte que calcula a iteração para usar o método de iteração simples visto em aula. &lt;br /&gt;
Usando este método, quantas raízes você consegue encontrar? &lt;br /&gt;
Calcule &amp;lt;math&amp;gt;F&#039;(x)&amp;lt;/math&amp;gt; para cada raiz encontrada no problema 5 e interprete o resultado que você acaba de obter à luz do que foi discutido em aula sobre a estabalidade do método de iteração simples.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
7- método de bissecção: discuta brevemente as desvantagens deste método.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dicas para o problema 5 (no ponto onde você vai verificar se a nova raiz encontrada já foi calculada)&lt;br /&gt;
a) você pode estocar as raízes em uma matriz (ex raizes[] ) e, a cada vez que o algoritmo encontra uma raiz, ele deve comparar com as demais raízes já estocadas na matriz raizes[].&lt;br /&gt;
b) quando você for comparar a nova raiz encontrada (digamos x) com os elementos da matriz raizes[] (digamos raizes[i]), perceba que você estará comparando números reais. Então cuidado com os operadores de igual (==) ou diferente (!=), pois um número será diferente do outro se e somente se todas os algarismos significativos o forem! portanto, ao invés de comparar se x!=raizes[i], faça fabs(x-raizes[i]) &amp;lt; PRECISAO, onde fmod(a) é o módulo de a.&lt;br /&gt;
c) não hesite em &amp;quot;debugar&amp;quot; o seu programa ! Isto vai ajudá-la(o) a entender o que há de errado.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
C) Ajuste de curvas usando o método dos mínimos quadrados&lt;br /&gt;
------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
8)  Dados os pontos;&lt;br /&gt;
&lt;br /&gt;
x: 0.10    0.20    0.30    0.40    0.50    0.60    0.70   0.80    0.90  1.00&lt;br /&gt;
&lt;br /&gt;
y:  0.62    0.63    0.64    0.66    0.68    0.71   0.76    0.81    0.89  1.00&lt;br /&gt;
&lt;br /&gt;
Ajuste uma função do tipo &amp;lt;math&amp;lt;f(x) = a0+a1*x+a2*x2&amp;lt;/math&amp;gt; usando o método dos mínimos quadrados. Depois faça um gráfico usando os pontos da tabela e compare com a curva teórica que você calculou.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
9) A resistência à compressão do concreto ( chamada de sigma ), decresce com o aumento da razão água/cimento (w/c, cuja unidade é em galões de água por saco de cimento). A resistência à compressão de várias amostras  é dada na tabela a seguir:&lt;br /&gt;
&lt;br /&gt;
w/c:         4.5       5.0     5.5      6.0         6.5      7.0       7.5      8.0       8.5     9.0&lt;br /&gt;
&lt;br /&gt;
sigma:     7000  6125  5237    4665     4123   3810   3107     3070     2580     2287&lt;br /&gt;
&lt;br /&gt;
Usando o método dos mínimos quadrados e utilizando uma função do tipo &amp;lt;math&amp;gt;f(x)= a0*exp(-a1* w/c )&amp;lt;/math&amp;gt;, ajuste sigma aos dados da tabela. Grafique os pontos da tabela e a função obtida.&lt;/div&gt;</summary>
		<author><name>Ejagnes</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=%C3%81rea_2&amp;diff=209</id>
		<title>Área 2</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=%C3%81rea_2&amp;diff=209"/>
		<updated>2011-11-29T17:26:12Z</updated>

		<summary type="html">&lt;p&gt;Ejagnes: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A) &amp;quot;tecnicalidades&amp;quot;&lt;br /&gt;
--------------------------&lt;br /&gt;
&lt;br /&gt;
O que estes programas escrevem na tela?&lt;br /&gt;
&lt;br /&gt;
1)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
j=0;&lt;br /&gt;
do{&lt;br /&gt;
j++;&lt;br /&gt;
i = 4*j ;&lt;br /&gt;
printf(&amp;quot;i=%d j=%d \n&amp;quot;, i, j) ;&lt;br /&gt;
}while(i&amp;lt;=10) ;&lt;br /&gt;
printf(&amp;quot;\n j=%d \n&amp;quot;, j) ; &lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
for(j=0 ; j&amp;lt;3 ; j++)&lt;br /&gt;
{ &lt;br /&gt;
printf(&amp;quot; j=%d \n\n&amp;quot;, j );&lt;br /&gt;
for(i=j; i&amp;lt;3 ; i++)&lt;br /&gt;
{&lt;br /&gt;
k=i+j ;&lt;br /&gt;
printf(&amp;quot;i=%d k=%d\n&amp;quot;, i, k);&lt;br /&gt;
}&lt;br /&gt;
} &lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3) Abaixo você encontra partes de programas. Eles contêm erros. Identifique-os e pense no que você faria para resolvê-los.&lt;br /&gt;
&lt;br /&gt;
3.a) Ponto a ser observado: uso de variáreis globais e/ou locais &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
float A ;&lt;br /&gt;
void main()&lt;br /&gt;
{ &lt;br /&gt;
float B ;&lt;br /&gt;
operações dentro da função main() ...&lt;br /&gt;
}&lt;br /&gt;
float Soma()&lt;br /&gt;
{&lt;br /&gt;
return (A+B);&lt;br /&gt;
}&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Como você faria para construir uma função que retornasse a soma de dois números reais? &lt;br /&gt;
&lt;br /&gt;
3.b) Ponto a ser observado: alocação estática de memória&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
main()&lt;br /&gt;
{ &lt;br /&gt;
int i;&lt;br /&gt;
float mat1[ i ] ;&lt;br /&gt;
&lt;br /&gt;
for (i=0; i&amp;lt;10; i++)&lt;br /&gt;
mat1[ i ] = (float)rand()/RAND_MAX ; &lt;br /&gt;
}&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
B) Derivação e integração numéricas&lt;br /&gt;
------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Legenda para esta seção:&lt;br /&gt;
&lt;br /&gt;
f&#039;(x) : derivada primeira da função f(x)&lt;br /&gt;
h = (xb-xa)/N , xa, xb são início e fim do intervalo de intregação respectivamente e N é o número de vezes que este intervalo é dividido.&lt;br /&gt;
Considere as seguintes funções&lt;br /&gt;
&lt;br /&gt;
f(x) = x2 + 6x&lt;br /&gt;
&lt;br /&gt;
g(x) = 1/(x+3)&lt;br /&gt;
&lt;br /&gt;
p(x)=ex/(x3-1)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1- Usando o método da derivada à direita, calcule f&#039;(x) nos pontos x=-2 e 2. &lt;br /&gt;
Como você sabe se o valor encontrado é correto sem calcular o valor analítico de f&#039;(x) ?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2- Use o mesmo programa feito em (1) para calcular g&#039;(-10), g&#039;(-2).&lt;br /&gt;
Faça h variar de h=10^-10 até h=1.&lt;br /&gt;
O intervalo de h durante o qual g&#039;(x) é constante é o mesmo para x=-10 e para x=-2? Como você interpreta isto?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3- Informação: o erro associado ao método da derivada à direita é linear em h, enquanto o método da derivada centrada tem um erro da ordem de h2. &lt;br /&gt;
&lt;br /&gt;
3a - O que significa isto?&lt;br /&gt;
&lt;br /&gt;
3b - Mostre analiticamente (dica: se baseia no que está feito na complex-wiki e foi discutido em aula)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4 - Use o método da derivada centrada para calcular a derivada da função p(x) nos pontos x: -2, 0.5, 2 e 5. Para cada um destes pontos, faça &amp;quot;h&amp;quot; variar bastante (digamos, entre 10-10 e 1) e compare os resultatos num gráfico feito em gnuplot. Faça um gráfico com as curvas p&#039;(x) em todos os pontos pedidos com seus respectivos valores analíticos comparativos. Note que o intervalo para o qual a derivada numérica converge para o seu valor analítico depende da proximidade do valor de x ao ponto de divergência da função g(x). Por quê?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5 - Construa um programa usando o método de Simpson para calcular a integral de g(x) entre -10 e -4.&lt;br /&gt;
Compare a precisão do resultado obtido com o programa feito em aula onde aplicamos o método do trapézio.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
6 - Aplique o método de Simpson para diversos valores de N. Calcule o erro usando Erro(N) = |Int(N)-Int(N-1)|/|Int(N)|, onde Int(N) é o valor da integral de g(x) para um dado N. Faça este processo até que o erro atinja um valor mínimo estipulado pelo usuário.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
7 - Mostre analiticamente que o método do trapézio tem um erro da ordem de f&#039;&#039;(x)*h3. &lt;br /&gt;
Dica para fazer esta demonstração:&lt;br /&gt;
&lt;br /&gt;
1- escreva a expressão da regra do trapézio para a f(x) E compare-a com o valor exato de uma integral da f(x)&lt;br /&gt;
&lt;br /&gt;
2- expanda a expressão f(x) na expressão do trapézio E na expressão do valor exato&lt;br /&gt;
&lt;br /&gt;
3- compare termo a termo as duas expressões. Você verá que os termos são idênticos até a ordem h2. A partir de h3 eles têm uma diferença.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
PS: O algoritmo de Simpson tem um erro da ordem de h5*f(4). O procedimento para demonstração é o mesmo, mas neste é mais longo. Faça se quiser, mas o importante é que você entenda a idéia.&lt;/div&gt;</summary>
		<author><name>Ejagnes</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=%C3%81rea_1&amp;diff=208</id>
		<title>Área 1</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=%C3%81rea_1&amp;diff=208"/>
		<updated>2011-11-29T17:21:15Z</updated>

		<summary type="html">&lt;p&gt;Ejagnes: Criou página com &amp;#039;Abaixo há  exercícios e/ou problemas bem diversos, com vários níveis de dificuldade. Tente fazer todos ou pelo menos pensar sobre todos. Os  primeiros são os mesmos do traba...&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Abaixo há  exercícios e/ou problemas bem diversos, com vários níveis de dificuldade. Tente fazer todos ou pelo menos pensar sobre todos. Os  primeiros são os mesmos do trabalho 4 e  voce já deve ter feito  2 deles; pense e tente fazer os demais.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
1) Faça um algoritmo para calcular a mensalidade pelos alunos de uma acedmia de ginástica que tem como mensalidade básica R$85 e aplica os seguintes descontos&lt;br /&gt;
&lt;br /&gt;
- mulheres com idade igual ou inferior a 15 anos terão desconto de 15%&lt;br /&gt;
&lt;br /&gt;
- mulheres com idade superior a 15 anos terão desconto de 10%&lt;br /&gt;
&lt;br /&gt;
- homens com idade inferior a 22 anos não terão desconto&lt;br /&gt;
&lt;br /&gt;
- homens com idade igual ou superior a 22 anos terão desconto de 20%&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2) Faça um algoritmo para calcular a nota resultante de um aluno que fez 3 provas. A nota é definida como sendo a média aritmética das 3 provas.&lt;br /&gt;
&lt;br /&gt;
Considere a seguinte tabela:&lt;br /&gt;
&lt;br /&gt;
- aprovado se nota &amp;gt;= 7&lt;br /&gt;
&lt;br /&gt;
- em exame se  5 &amp;lt;= nota &amp;lt; 7&lt;br /&gt;
&lt;br /&gt;
- reprovado se nota &amp;lt; 5&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3) Faça um algoritmo que determine se um dado número [escolhido pelo usuário e lido pelo algoritmo] é par.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4) Faça um algoritmo que determine se um dado número [escolhido pelo usuário e lido pelo algoritmo] é primo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5) Faça um algoritmo que leia 3 números da tela e os retorne em &lt;br /&gt;
&lt;br /&gt;
5.1- ordem crescente&lt;br /&gt;
&lt;br /&gt;
5.2- ordem decrescente&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
6) Faça um algortimo para determinar todos os divisores  do número N que estão entre os inteiros  i1 e i2&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
7) Peça para o usuário entrar com um valor de temperatura em Celsius, transforme para Fahrenheit e coloque o valor na tela.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
8) Calcule os zeros de uma função de segundo grau (ax2+bx+c=0). &lt;br /&gt;
&lt;br /&gt;
a) na primeira versão, peça para o usuário entrar com os valores de &amp;quot;a&amp;quot; e &amp;quot;b&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
b) na segunda versão, crie um arquivo com os parâmetros &amp;quot;a&amp;quot; e &amp;quot;b&amp;quot; e leia-os a partir de um arquivo externo ao  programa&lt;br /&gt;
&lt;br /&gt;
Em ambos os casos, não esqueça de verificar as limitações e ambiguidades do algoritmo que fará este cálculo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
9) Peça para o usuário escolher um número N. Determine se este número N é primo ou não e diga para o usuário. &lt;br /&gt;
Use o algoritmo  feito em 4) para fazer um  programa em C.&lt;br /&gt;
Coloque o programa num arquivo de latex. Use o comando &amp;quot;verbatim&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
10) Construa duas matrizes de duas dimensões de inteiros, digamos A[N][M] e B[M][N]. Elas não precisam ter mesma dimensão, ou seja, N e M não são necessariamente os mesmos. &lt;br /&gt;
Primeiramente escolha M e N pequenos (em torno de 2 ou 3) para que você possa imprimi-las na tela.&lt;br /&gt;
Depois calcule o produto de A por B e mostre a matriz resultante na tela tb.&lt;br /&gt;
Crie de dentro do seu programa um arquivo de saída que contenha as matrizes A, B e o produto das duas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
11) Leia o arquivo &amp;quot;dados.dat&amp;quot; que está no moodle  e coloque-os numa matriz do tipo &amp;quot;float&amp;quot; que se chama, por exemplo X.&lt;br /&gt;
Considerando a sequência de números X[i], faça:&lt;br /&gt;
&lt;br /&gt;
a) Encontre o valor máximo desta sequencia de números &lt;br /&gt;
&lt;br /&gt;
b) Ordene esta sequência de menor à maior&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
12) Números de Fibonacci são uma sequência definida como recursiva pela fórmula abaixo:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;F(n) =\left\{ \begin{matrix} 0\,,\qquad\qquad\qquad\quad\,\ \ \,&amp;amp;&amp;amp;\mbox{se }n=0\,;\ \ \\ 1,\qquad\qquad\qquad\qquad\,&amp;amp;&amp;amp;\mbox{se }n=1;\ \ \,\\ F(n-1)+F(n-2)&amp;amp;&amp;amp;\mbox{outros casos.} \end{matrix} \right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Na prática: você começa com 0 e 1, e então produz o próximo número de Fibonacci somando os dois anteriores para formar o próximo. Os primeiros Números de Fibonacci para n = 0, 1,… são&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
0,1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946… &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Faça um programa que gera uma sequência de Fibonacci. Peça para o usuário escolher quantos termos da série serão mostrados.&lt;br /&gt;
Coloque a sequência num arquivo (você deve abri-lo e escrever nele de dentro do programa). Chame este arquivo usando um script em gnuplot e faça um gráfico em eps.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
13) Faça um programa que calcule o log(1+x), |x| &amp;lt; 1 com base na expansão em serie de Taylor: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note: num programa você não poderá somar termos infinitamente. O somatório deverá ser de 1 até N. Teste vários valores de N para verificar quando o log(1+x) converge. Você pode comparar com o valor que você obtém se fizer o cálculo na calculadora.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
O usuário deve fornecer os valores de x e N e você deve verificar no seu programa que o |x| é menor do que 1&lt;/div&gt;</summary>
		<author><name>Ejagnes</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=%C3%81rea_2&amp;diff=207</id>
		<title>Área 2</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=%C3%81rea_2&amp;diff=207"/>
		<updated>2011-11-29T17:17:40Z</updated>

		<summary type="html">&lt;p&gt;Ejagnes: Criou página com &amp;#039;A) &amp;quot;tecnicalidades&amp;quot; --------------------------  O que este programa escreve na tela?  1) &amp;lt;pre&amp;gt; ... j=0; do{ j++; i = 4*j ; printf(&amp;quot;i=%d j=%d \n&amp;quot;, i, j) ; }while(i&amp;lt;=10) ; printf(&amp;quot;...&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A) &amp;quot;tecnicalidades&amp;quot;&lt;br /&gt;
--------------------------&lt;br /&gt;
&lt;br /&gt;
O que este programa escreve na tela?&lt;br /&gt;
&lt;br /&gt;
1)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
j=0;&lt;br /&gt;
do{&lt;br /&gt;
j++;&lt;br /&gt;
i = 4*j ;&lt;br /&gt;
printf(&amp;quot;i=%d j=%d \n&amp;quot;, i, j) ;&lt;br /&gt;
}while(i&amp;lt;=10) ;&lt;br /&gt;
printf(&amp;quot;\n j=%d \n&amp;quot;, j) ; &lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
for(j=0 ; j&amp;lt;3 ; j++)&lt;br /&gt;
{ &lt;br /&gt;
printf(&amp;quot; j=%d \n\n&amp;quot;, j );&lt;br /&gt;
for(i=j; i&amp;lt;3 ; i++)&lt;br /&gt;
{&lt;br /&gt;
k=i+j ;&lt;br /&gt;
printf(&amp;quot;i=%d k=%d\n&amp;quot;, i, k);&lt;br /&gt;
}&lt;br /&gt;
} &lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3) Abaixo você encontra partes de programas. Eles contêm erros. Identifique-os e pense no que você faria para resolvê-los.&lt;br /&gt;
&lt;br /&gt;
3.a) Ponto a ser observado: uso de variáreis globais e/ou locais &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
float A ;&lt;br /&gt;
void main()&lt;br /&gt;
{ &lt;br /&gt;
float B ;&lt;br /&gt;
operações dentro da função main() ...&lt;br /&gt;
}&lt;br /&gt;
float Soma()&lt;br /&gt;
{&lt;br /&gt;
return (A+B);&lt;br /&gt;
}&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Como você faria para construir uma função que retornasse a soma de dois números reais? &lt;br /&gt;
&lt;br /&gt;
3.b) Ponto a ser observado: alocação estática de memória&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
main()&lt;br /&gt;
{ &lt;br /&gt;
int i;&lt;br /&gt;
float mat1[ i ] ;&lt;br /&gt;
&lt;br /&gt;
for (i=0; i&amp;lt;10; i++)&lt;br /&gt;
mat1[ i ] = (float)rand()/RAND_MAX ; &lt;br /&gt;
}&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
B) Derivação e integração numéricas&lt;br /&gt;
------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Legenda para esta seção:&lt;br /&gt;
&lt;br /&gt;
f&#039;(x) : derivada primeira da função f(x)&lt;br /&gt;
h = (xb-xa)/N , xa, xb são início e fim do intervalo de intregação respectivamente e N é o número de vezes que este intervalo é dividido.&lt;br /&gt;
Considere as seguintes funções&lt;br /&gt;
&lt;br /&gt;
f(x) = x2 + 6x&lt;br /&gt;
&lt;br /&gt;
g(x) = 1/(x+3)&lt;br /&gt;
&lt;br /&gt;
p(x)=ex/(x3-1)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1- Usando o método da derivada à direita, calcule f&#039;(x) nos pontos x=-2 e 2. &lt;br /&gt;
Como você sabe se o valor encontrado é correto sem calcular o valor analítico de f&#039;(x) ?&lt;br /&gt;
&lt;br /&gt;
2- Use o mesmo programa feito em (1) para calcular g&#039;(-10), g&#039;(-2).&lt;br /&gt;
Faça h variar de h=10^-10 até h=1.&lt;br /&gt;
O intervalo de h durante o qual g&#039;(x) é constante é o mesmo para x=-10 e para x=-2? Como você interpreta isto?&lt;br /&gt;
&lt;br /&gt;
3- Informação: o erro associado ao método da derivada à direita é linear em h, enquanto o método da derivada centrada tem um erro da ordem de h2. &lt;br /&gt;
3a - O que significa isto?&lt;br /&gt;
3b - Mostre analiticamente (dica: se baseia no que está feito na complex-wiki e foi discutido em aula)&lt;br /&gt;
&lt;br /&gt;
4 - Use o método da derivada centrada para calcular a derivada da função p(x) nos pontos x: -2, 0.5, 2 e 5. Para cada um destes pontos, faça &amp;quot;h&amp;quot; variar bastante (digamos, entre 10-10 e 1) e compare os resultatos num gráfico feito em gnuplot. Faça um gráfico com as curvas p&#039;(x) em todos os pontos pedidos com seus respectivos valores analíticos comparativos. Note que o intervalo para o qual a derivada numérica converge para o seu valor analítico depende da proximidade do valor de x ao ponto de divergência da função g(x). Por quê?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5 - Construa um programa usando o método de Simpson para calcular a integral de g(x) entre -10 e -4.&lt;br /&gt;
Compare a precisão do resultado obtido com o programa feito em aula onde aplicamos o método do trapézio.&lt;br /&gt;
&lt;br /&gt;
6 - Aplique o método de Simpson para diversos valores de N. Calcule o erro usando Erro(N) = |Int(N)-Int(N-1)|/|Int(N)|, onde Int(N) é o valor da integral de g(x) para um dado N. Faça este processo até que o erro atinja um valor mínimo estipulado pelo usuário.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
7 - Mostre analiticamente que o método do trapézio tem um erro da ordem de f&#039;&#039;(x)*h3. &lt;br /&gt;
Dica para fazer esta demonstração:&lt;br /&gt;
&lt;br /&gt;
1- escreva a expressão da regra do trapézio para a f(x) E compare-a com o valor exato de uma integral da f(x)&lt;br /&gt;
&lt;br /&gt;
2- expanda a expressão f(x) na expressão do trapézio E na expressão do valor exato&lt;br /&gt;
&lt;br /&gt;
3- compare termo a termo as duas expressões. Você verá que os termos são idênticos até a ordem h2. A partir de h3 eles têm uma diferença.&lt;br /&gt;
&lt;br /&gt;
PS: O algoritmo de Simpson tem um erro da ordem de h5*f(4). O procedimento para demonstração é o mesmo, mas neste é mais longo. Faça se quiser, mas o importante é que você entenda a idéia.&lt;/div&gt;</summary>
		<author><name>Ejagnes</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Listas_de_exerc%C3%ADcios&amp;diff=206</id>
		<title>Listas de exercícios</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Listas_de_exerc%C3%ADcios&amp;diff=206"/>
		<updated>2011-11-29T17:05:03Z</updated>

		<summary type="html">&lt;p&gt;Ejagnes: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Aqui estão as listas de exercícios propostos para estudos em cada área.&lt;br /&gt;
&lt;br /&gt;
Lista da [[Área 1]]&lt;br /&gt;
&lt;br /&gt;
Lista da [[Área 2]]&lt;br /&gt;
&lt;br /&gt;
Lista da [[Área 3]]&lt;/div&gt;</summary>
		<author><name>Ejagnes</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Listas_de_exerc%C3%ADcios&amp;diff=205</id>
		<title>Listas de exercícios</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Listas_de_exerc%C3%ADcios&amp;diff=205"/>
		<updated>2011-11-29T17:04:35Z</updated>

		<summary type="html">&lt;p&gt;Ejagnes: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Aqui estão as listas de exercícios propostos para estudos em cada área.&lt;br /&gt;
&lt;br /&gt;
Área 1.&lt;br /&gt;
&lt;br /&gt;
[[Área 1]]&lt;br /&gt;
&lt;br /&gt;
Área 2.&lt;br /&gt;
&lt;br /&gt;
[[Área 2]]&lt;br /&gt;
&lt;br /&gt;
Área 3.&lt;br /&gt;
&lt;br /&gt;
[[Área 3]]&lt;/div&gt;</summary>
		<author><name>Ejagnes</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Listas_de_exerc%C3%ADcios&amp;diff=204</id>
		<title>Listas de exercícios</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Listas_de_exerc%C3%ADcios&amp;diff=204"/>
		<updated>2011-11-29T17:03:56Z</updated>

		<summary type="html">&lt;p&gt;Ejagnes: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Aqui estão as listas de exercícios propostos para estudos em cada área.&lt;br /&gt;
&lt;br /&gt;
Área 1.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:lista1.pdf]]&lt;br /&gt;
&lt;br /&gt;
Área 2.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:lista2.pdf]]&lt;br /&gt;
&lt;br /&gt;
Área 3.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:lista3.pdf]]&lt;/div&gt;</summary>
		<author><name>Ejagnes</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=%C3%81rea_3&amp;diff=203</id>
		<title>Área 3</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=%C3%81rea_3&amp;diff=203"/>
		<updated>2011-11-29T17:03:04Z</updated>

		<summary type="html">&lt;p&gt;Ejagnes: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A) Interpolação e Extrapolação&lt;br /&gt;
--------------------------------------------&lt;br /&gt;
&lt;br /&gt;
1 - Explique a ideia do algoritmo de Neville (linhas gerais).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2 - Em aula fizemos um algoritmo que interpola um conjunto de pontos usando o algoritmo de Neville.&lt;br /&gt;
Na ocasião, eu propus que os polinômios fossem mapeados em uma matriz quadrada A de dimensão NxN, onde os elementos da primeira coluna eram os pontos P11, P22, P33, etc e os demais elementos eram colocados nas demais colunas...&lt;br /&gt;
Agora eu quero propor uma outra maneira de mapear e isto implica uma outra maneira de construir o algoritmo. O objetivo é que você ENTENDA os passos, construa o seu algortimo com calma. &lt;br /&gt;
Mapeie da seguinte maneira:&lt;br /&gt;
os polinômios P11, P22, P33, etc (os quais são dados do problema) são colocados na diagonal principal da matrix A (A[1][1], A[2][2], etc). Em seguida, os polinômios P12, P23, P34, etc, são colocados na diagonal seguinte (A[1][2], A[2][3], etc) . Os poliômios P123, P234, etc na outra diagonal (A[1][3], A[2][4], etc) e assim sucessivamente.&lt;br /&gt;
Este algoritmo terá uma fórmula de recorrência difente daquele feito em aula e também a maneira de variar os índices será outra.&lt;br /&gt;
&lt;br /&gt;
Use os seguintes N=4 pontos como dados de entrada:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;0.000000 \; \; \; 0.000000&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt;1.500000 \; \; \; 0.997495&amp;lt;/math&amp;gt; &lt;br /&gt;
:&amp;lt;math&amp;gt;3.000000 \; \; \; 0.141120&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt;4.500000 \; \; \; -0.977530&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Uma vez que o algoritmo esteja funcionando para N=4, use os seguintes N=9 pontos:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;0.000000 \; \; \; 0.000000&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt;0.750000 \; \; \; 0.681639&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt;1.500000 \; \; \; 0.997495&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt;2.250000 \; \; \; 0.778073&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt;3.000000 \; \; \; 0.141120&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt;3.750000 \; \; \; -0.571561&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt;4.500000 \; \; \; -0.977530&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt;5.250000 \; \; \; -0.858935&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt;6.000000 \; \; \; -0.279415&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O ideal é fazer um programa que leia estes dados de dentro de um arquivo de entrada e faça a interpolação para um valor de N qualquer que o usuário queira.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3 - Use o algorimo construído em 8 para interpolar os seguintes N=11 pontos:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;0.000000 \; \; \; -0.200000 &amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt;0.600000 \; \; \; -0.227273 &amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt;1.200000 \; \; \; -0.263158 &amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt;1.800000 \; \; \; -0.312500 &amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt;2.400000 \; \; \; -0.384615 &amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt;3.000000 \; \; \; -0.500000 &amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt;3.600000 \; \; \; -0.714286 &amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt;4.200000 \; \; \; -1.250000 &amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt;4.800000 \; \; \; -4.999993 &amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt;5.400000 \; \; \; 2.500002 &amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt;6.000000 \; \; \; 1.000000 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Desenhe no gnuplot estes pontos e os valores interpolados pelo seu programa. Varie x entre 0 e 6 varrendo x a cada 0.2.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
B) Zeros de Funções&lt;br /&gt;
------------------------------&lt;br /&gt;
&lt;br /&gt;
Legenda para esta seção: &lt;br /&gt;
:&amp;lt;math&amp;gt;F(x) = f(x) + x &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;F&#039;(x)&amp;lt;/math&amp;gt; é a derivada de &amp;lt;math&amp;gt;F(x)&amp;lt;/math&amp;gt; com relação à &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Considere a função &amp;lt;math&amp;gt;f(x) = exp(-0.1*x)*sin(2*x)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
4 - Faça no gnuplot um gráfico desta função dentro do intervalo pedido [-5:5]. Desenhe junto a linha &amp;lt;math&amp;gt;y=0&amp;lt;/math&amp;gt; para que você possa visualizar graficamente quantas raízes há neste intervalo.&lt;br /&gt;
&lt;br /&gt;
5 - Retome o programa (fornecido em aula e que está no moodle) que calcula zeros de funções usando o método de Newton-Raphson e adapte-do para encotrar TODOS os zeros da função &amp;lt;math&amp;gt;f(x)&amp;lt;/math&amp;gt; no intervalo [-5:5]. Imprima estas raízes num arquivo chamado raizes.dat.&lt;br /&gt;
Fundamental se dar conta de alguns &amp;quot;detalhes&amp;quot; antes de executar esta tarefa:&lt;br /&gt;
* Como o método de Newton-Raphson encontra apenas uma raiz para cada valor &amp;quot;chute&amp;quot; de x (&amp;quot;x_init&amp;quot;), então você deverá relançar o método várias vezes até encontrar todas as raízes do intervalo. Isto exige que você faça um loop variando &amp;quot;x_init&amp;quot; e, para cada x_init, você aplica o método de iteração.&lt;br /&gt;
* Note que o método pode (e provavelmente vai) encontrar a mesma raiz mais de uma vez. Você não deve estocar raízes repedidas! e isto implica que você deve pensar em uma maneira de fazer isto (dicas no final da lista para os que quiserem)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
6 - Faça exatamente o mesmo procedimento que fizeste no problema 5 com o método de iteração simples. Uma vez feito o algoritmo do problema 5, basta você alterar a parte que calcula a iteração para usar o método de iteração simples visto em aula. &lt;br /&gt;
Usando este método, quantas raízes você consegue encontrar? &lt;br /&gt;
Calcule &amp;lt;math&amp;gt;F&#039;(x)&amp;lt;/math&amp;gt; para cada raiz encontrada no problema 5 e interprete o resultado que você acaba de obter à luz do que foi discutido em aula sobre a estabalidade do método de iteração simples.&lt;br /&gt;
&lt;br /&gt;
7- método de bissecção: discuta brevemente as desvantagens deste método.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dicas para o problema 5 (no ponto onde você vai verificar se a nova raiz encontrada já foi calculada)&lt;br /&gt;
a) você pode estocar as raízes em uma matriz (ex raizes[] ) e, a cada vez que o algoritmo encontra uma raiz, ele deve comparar com as demais raízes já estocadas na matriz raizes[].&lt;br /&gt;
b) quando você for comparar a nova raiz encontrada (digamos x) com os elementos da matriz raizes[] (digamos raizes[i]), perceba que você estará comparando números reais. Então cuidado com os operadores de igual (==) ou diferente (!=), pois um número será diferente do outro se e somente se todas os algarismos significativos o forem! portanto, ao invés de comparar se x!=raizes[i], faça fabs(x-raizes[i]) &amp;lt; PRECISAO, onde fmod(a) é o módulo de a.&lt;br /&gt;
c) não hesite em &amp;quot;debugar&amp;quot; o seu programa ! Isto vai ajudá-la(o) a entender o que há de errado.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
C) Ajuste de curvas usando o método dos mínimos quadrados&lt;br /&gt;
------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
8)  Dados os pontos;&lt;br /&gt;
&lt;br /&gt;
x: 0.10    0.20    0.30    0.40    0.50    0.60    0.70   0.80    0.90  1.00&lt;br /&gt;
&lt;br /&gt;
y:  0.62    0.63    0.64    0.66    0.68    0.71   0.76    0.81    0.89  1.00&lt;br /&gt;
&lt;br /&gt;
Ajuste uma função do tipo &amp;lt;math&amp;lt;f(x) = a0+a1*x+a2*x2&amp;lt;/math&amp;gt; usando o método dos mínimos quadrados. Depois faça um gráfico usando os pontos da tabela e compare com a curva teórica que você calculou.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
9) A resistência à compressão do concreto ( chamada de sigma ), decresce com o aumento da razão água/cimento (w/c, cuja unidade é em galões de água por saco de cimento). A resistência à compressão de várias amostras  é dada na tabela a seguir:&lt;br /&gt;
&lt;br /&gt;
w/c:         4.5       5.0     5.5      6.0         6.5      7.0       7.5      8.0       8.5     9.0&lt;br /&gt;
&lt;br /&gt;
sigma:     7000  6125  5237    4665     4123   3810   3107     3070     2580     2287&lt;br /&gt;
&lt;br /&gt;
Usando o método dos mínimos quadrados e utilizando uma função do tipo &amp;lt;math&amp;gt;f(x)= a0*exp(-a1* w/c )&amp;lt;/math&amp;gt;, ajuste sigma aos dados da tabela. Grafique os pontos da tabela e a função obtida.&lt;/div&gt;</summary>
		<author><name>Ejagnes</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=%C3%81rea_3&amp;diff=202</id>
		<title>Área 3</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=%C3%81rea_3&amp;diff=202"/>
		<updated>2011-11-29T17:01:36Z</updated>

		<summary type="html">&lt;p&gt;Ejagnes: Criou página com &amp;#039;A) Interpolação e Extrapolação --------------------------------------------  1 - Explique a ideia do algoritmo de Neville (linhas gerais).   2 - Em aula fizemos um algoritmo ...&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A) Interpolação e Extrapolação&lt;br /&gt;
--------------------------------------------&lt;br /&gt;
&lt;br /&gt;
1 - Explique a ideia do algoritmo de Neville (linhas gerais).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2 - Em aula fizemos um algoritmo que interpola um conjunto de pontos usando o algoritmo de Neville.&lt;br /&gt;
Na ocasião, eu propus que os polinômios fossem mapeados em uma matriz quadrada A de dimensão NxN, onde os elementos da primeira coluna eram os pontos P11, P22, P33, etc e os demais elementos eram colocados nas demais colunas...&lt;br /&gt;
Agora eu quero propor uma outra maneira de mapear e isto implica uma outra maneira de construir o algoritmo. O objetivo é que você ENTENDA os passos, construa o seu algortimo com calma. &lt;br /&gt;
Mapeie da seguinte maneira:&lt;br /&gt;
os polinômios P11, P22, P33, etc (os quais são dados do problema) são colocados na diagonal principal da matrix A (A[1][1], A[2][2], etc). Em seguida, os polinômios P12, P23, P34, etc, são colocados na diagonal seguinte (A[1][2], A[2][3], etc) . Os poliômios P123, P234, etc na outra diagonal (A[1][3], A[2][4], etc) e assim sucessivamente.&lt;br /&gt;
Este algoritmo terá uma fórmula de recorrência difente daquele feito em aula e também a maneira de variar os índices será outra.&lt;br /&gt;
&lt;br /&gt;
Use os seguintes N=4 pontos como dados de entrada:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;0.000000 \; \; \; 0.000000&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt;1.500000 \; \; \; 0.997495&amp;lt;/math&amp;gt; &lt;br /&gt;
:&amp;lt;math&amp;gt;3.000000 \; \; \; 0.141120&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt;4.500000 \; \; \; -0.977530&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Uma vez que o algoritmo esteja funcionando para N=4, use os seguintes N=9 pontos:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;0.000000 \; \; \; 0.000000&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt;0.750000 \; \; \; 0.681639&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt;1.500000 \; \; \; 0.997495&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt;2.250000 \; \; \; 0.778073&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt;3.000000 \; \; \; 0.141120&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt;3.750000 \; \; \; -0.571561&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt;4.500000 \; \; \; -0.977530&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt;5.250000 \; \; \; -0.858935&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt;6.000000 \; \; \; -0.279415&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O ideal é fazer um programa que leia estes dados de dentro de um arquivo de entrada e faça a interpolação para um valor de N qualquer que o usuário queira.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3 - Use o algorimo construído em 8 para interpolar os seguintes N=11 pontos:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;0.000000 \; \; \; -0.200000 &amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt;0.600000 \; \; \; -0.227273 &amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt;1.200000 \; \; \; -0.263158 &amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt;1.800000 \; \; \; -0.312500 &amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt;2.400000 \; \; \; -0.384615 &amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt;3.000000 \; \; \; -0.500000 &amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt;3.600000 \; \; \; -0.714286 &amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt;4.200000 \; \; \; -1.250000 &amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt;4.800000 \; \; \; -4.999993 &amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt;5.400000 \; \; \; 2.500002 &amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt;6.000000 \; \; \; 1.000000 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Desenhe no gnuplot estes pontos e os valores interpolados pelo seu programa. Varie x entre 0 e 6 varrendo x a cada 0.2.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
B) Zeros de Funções&lt;br /&gt;
------------------------------&lt;br /&gt;
&lt;br /&gt;
Legenda para esta seção: &lt;br /&gt;
:&amp;lt;math&amp;gt;F(x) = f(x) + x &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;F&#039;(x)&amp;lt;/math&amp;gt; é a derivada de &amp;lt;math&amp;gt;F(x)&amp;lt;/math&amp;gt; com relação à &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Considere a função &amp;lt;math&amp;gt;f(x) = exp(-0.1*x)*sin(2*x)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
4 - Faça no gnuplot um gráfico desta função dentro do intervalo pedido [-5:5]. Desenhe junto a linha &amp;lt;math&amp;gt;y=0&amp;lt;/math&amp;gt; para que você possa visualizar graficamente quantas raízes há neste intervalo.&lt;br /&gt;
&lt;br /&gt;
5 - Retome o programa (fornecido em aula e que está no moodle) que calcula zeros de funções usando o método de Newton-Raphson e adapte-do para encotrar TODOS os zeros da função &amp;lt;math&amp;gt;f(x)&amp;lt;/math&amp;gt; no intervalo [-5:5]. Imprima estas raízes num arquivo chamado raizes.dat.&lt;br /&gt;
Fundamental se dar conta de alguns &amp;quot;detalhes&amp;quot; antes de executar esta tarefa:&lt;br /&gt;
* Como o método de Newton-Raphson encontra apenas uma raiz para cada valor &amp;quot;chute&amp;quot; de x (&amp;quot;x_init&amp;quot;), então você deverá relançar o método várias vezes até encontrar todas as raízes do intervalo. Isto exige que você faça um loop variando &amp;quot;x_init&amp;quot; e, para cada x_init, você aplica o método de iteração.&lt;br /&gt;
* Note que o método pode (e provavelmente vai) encontrar a mesma raiz mais de uma vez. Você não deve estocar raízes repedidas! e isto implica que você deve pensar em uma maneira de fazer isto (dicas no final da lista para os que quiserem)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
6 - Faça exatamente o mesmo procedimento que fizeste no problema 5 com o método de iteração simples. Uma vez feito o algoritmo do problema 5, basta você alterar a parte que calcula a iteração para usar o método de iteração simples visto em aula. &lt;br /&gt;
Usando este método, quantas raízes você consegue encontrar? &lt;br /&gt;
Calcule &amp;lt;math&amp;gt;F&#039;(x)&amp;lt;/math&amp;gt; para cada raiz encontrada no problema 5 e interprete o resultado que você acaba de obter à luz do que foi discutido em aula sobre a estabalidade do método de iteração simples.&lt;br /&gt;
&lt;br /&gt;
7- método de bissecção: discuta brevemente as desvantagens deste método.&lt;br /&gt;
&lt;br /&gt;
* Dicas para o problema 5 (no ponto onde você vai verificar se a nova raiz encontrada já foi calculada)&lt;br /&gt;
a) você pode estocar as raízes em uma matriz (ex raizes[] ) e, a cada vez que o algoritmo encontra uma raiz, ele deve comparar com as demais raízes já estocadas na matriz raizes[].&lt;br /&gt;
b) quando você for comparar a nova raiz encontrada (digamos x) com os elementos da matriz raizes[] (digamos raizes[i]), perceba que você estará comparando números reais. Então cuidado com os operadores de igual (==) ou diferente (!=), pois um número será diferente do outro se e somente se todas os algarismos significativos o forem! portanto, ao invés de comparar se x!=raizes[i], faça fabs(x-raizes[i]) &amp;lt; PRECISAO, onde fmod(a) é o módulo de a.&lt;br /&gt;
c) não hesite em &amp;quot;debugar&amp;quot; o seu programa ! Isto vai ajudá-la(o) a entender o que há de errado.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
C) Ajuste de curvas usando o método dos mínimos quadrados&lt;br /&gt;
------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
8)  Dados os pontos;&lt;br /&gt;
&lt;br /&gt;
x: 0.10    0.20    0.30    0.40    0.50    0.60    0.70   0.80    0.90  1.00&lt;br /&gt;
&lt;br /&gt;
y:  0.62    0.63    0.64    0.66    0.68    0.71   0.76    0.81    0.89  1.00&lt;br /&gt;
&lt;br /&gt;
Ajuste uma função do tipo &amp;lt;math&amp;lt;f(x) = a0+a1*x+a2*x2&amp;lt;/math&amp;gt; usando o método dos mínimos quadrados. Depois faça um gráfico usando os pontos da tabela e compare com a curva teórica que você calculou.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
9) A resistência à compressão do concreto ( chamada de sigma ), decresce com o aumento da razão água/cimento (w/c, cuja unidade é em galões de água por saco de cimento). A resistência à compressão de várias amostras  é dada na tabela a seguir:&lt;br /&gt;
&lt;br /&gt;
w/c:         4.5       5.0     5.5      6.0         6.5      7.0       7.5      8.0       8.5     9.0&lt;br /&gt;
&lt;br /&gt;
sigma:     7000  6125  5237    4665     4123   3810   3107     3070     2580     2287&lt;br /&gt;
&lt;br /&gt;
Usando o método dos mínimos quadrados e utilizando uma função do tipo &amp;lt;math&amp;gt;f(x)= a0*exp(-a1* w/c )&amp;lt;/math&amp;gt;, ajuste sigma aos dados da tabela. Grafique os pontos da tabela e a função obtida.&lt;/div&gt;</summary>
		<author><name>Ejagnes</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=M%C3%A9todos_computacionais&amp;diff=201</id>
		<title>Métodos computacionais</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=M%C3%A9todos_computacionais&amp;diff=201"/>
		<updated>2011-11-29T16:51:44Z</updated>

		<summary type="html">&lt;p&gt;Ejagnes: /* Métodos Computacionais A */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Física computacional é uma abordagem da &#039;&#039;&#039;física teórica&#039;&#039;&#039; com o auxílio do computador essencialmente&lt;br /&gt;
quando a complexidade do problema impossibilita o avanço pela via analítica e/ou porque os cálculos&lt;br /&gt;
numéricos são longos demais para serem feitos sem automação.&lt;br /&gt;
Alguns consideram a &#039;&#039;&#039;física computacional&#039;&#039;&#039; um terceiro (e mais recente) vértice do triângulo da maneira de se fazer física, onde os outros dois vértices são a &#039;&#039;&#039;física teórica&#039;&#039;&#039; e a &#039;&#039;&#039;física experimental&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Métodos computacionais&#039;&#039;&#039; é a disciplina onde estudamos ferramentas, métodos e algoritmos numéricos para a resolução de problemas de física onde uma abordagem analítica é extremamente complexa ou impossível.&lt;br /&gt;
&lt;br /&gt;
Alguns exemplos de aplicação são: a solução numérica de equações diferenciais ordinárias, integração numérica via métodos de aproximação ou estatísticos como método de Monte Carlo, equações diferencias parciais como as equações de Maxwell e de Schroedinger, métodos matriciais para a solução de problemas de autovalor e autovetor como os encontrados na Mecânica Quântica.&lt;br /&gt;
&lt;br /&gt;
==Breve Historia da Computação==&lt;br /&gt;
&lt;br /&gt;
De Conrad Zuse (1941) ao IBM Blue/Gene (2006)&lt;br /&gt;
&lt;br /&gt;
==Arquitectura==&lt;br /&gt;
&lt;br /&gt;
[http://en.wikipedia.org/wiki/Image:Personal_computer%2C_exploded_5.svg Diagrama de PC]&lt;br /&gt;
&lt;br /&gt;
== Ferramentas ==&lt;br /&gt;
===== [[Comandos Unix/Linux]]  =====&lt;br /&gt;
===== [[Gnuplot]] e [[xmgrace]] =====&lt;br /&gt;
===== [[LaTex]] =====&lt;br /&gt;
===== [[FORTRAN]] =====&lt;br /&gt;
===== [[C]] =====&lt;br /&gt;
&lt;br /&gt;
== Métodos Computacionais A ==&lt;br /&gt;
===== [[Derivada Numérica]] =====&lt;br /&gt;
===== [[Integração Numérica]] =====&lt;br /&gt;
===== [[Interpolação e extrapolação]] =====&lt;br /&gt;
====== [[Fórmula de Lagrange]]======&lt;br /&gt;
====== [[Spline cúbico]]======&lt;br /&gt;
&amp;lt;!--- ===== [[Eliminação gaussiana e retro-substituição]] ===== ---&amp;gt;&lt;br /&gt;
===== [[Zeros de Funções]]=====&lt;br /&gt;
===== [[Mínimos Quadrados]] =====&lt;br /&gt;
===== [[Listas de exercícios]] =====&lt;br /&gt;
====== [[Área 1]] ======&lt;br /&gt;
====== [[Área 2]] ======&lt;br /&gt;
====== [[Área 3]] ======&lt;br /&gt;
&lt;br /&gt;
== Métodos Computacionais B ==&lt;br /&gt;
&lt;br /&gt;
===== [[Integração numérica de equações diferenciais ordinárias]] =====&lt;br /&gt;
&lt;br /&gt;
===== [[Métodos multipassos]]=====&lt;br /&gt;
&lt;br /&gt;
===== [[Métodos de passo variável]]=====&lt;br /&gt;
&lt;br /&gt;
===== [[Aplicações (Mapas)]]=====&lt;br /&gt;
&lt;br /&gt;
===== [[Números Aleatórios]]=====&lt;br /&gt;
&lt;br /&gt;
===== [[Histogramas e Densidade de Probabilidade ]] =====&lt;br /&gt;
&lt;br /&gt;
===== [[Método de Monte Carlo (integraçào numérica)]]=====&lt;/div&gt;</summary>
		<author><name>Ejagnes</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Listas_de_exerc%C3%ADcios&amp;diff=200</id>
		<title>Listas de exercícios</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Listas_de_exerc%C3%ADcios&amp;diff=200"/>
		<updated>2011-11-29T16:27:31Z</updated>

		<summary type="html">&lt;p&gt;Ejagnes: Criou página com &amp;#039;Aqui estão arquivos em PDF com as listas de exercícios propostos para estudos em cada área.  Área 1.  Arquivo:lista1.pdf  Área 2.  Arquivo:lista2.pdf  Área 3.  [[Ar...&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Aqui estão arquivos em PDF com as listas de exercícios propostos para estudos em cada área.&lt;br /&gt;
&lt;br /&gt;
Área 1.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:lista1.pdf]]&lt;br /&gt;
&lt;br /&gt;
Área 2.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:lista2.pdf]]&lt;br /&gt;
&lt;br /&gt;
Área 3.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:lista3.pdf]]&lt;/div&gt;</summary>
		<author><name>Ejagnes</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=M%C3%A9todos_computacionais&amp;diff=199</id>
		<title>Métodos computacionais</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=M%C3%A9todos_computacionais&amp;diff=199"/>
		<updated>2011-11-29T16:25:59Z</updated>

		<summary type="html">&lt;p&gt;Ejagnes: /* Métodos Computacionais A */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Física computacional é uma abordagem da &#039;&#039;&#039;física teórica&#039;&#039;&#039; com o auxílio do computador essencialmente&lt;br /&gt;
quando a complexidade do problema impossibilita o avanço pela via analítica e/ou porque os cálculos&lt;br /&gt;
numéricos são longos demais para serem feitos sem automação.&lt;br /&gt;
Alguns consideram a &#039;&#039;&#039;física computacional&#039;&#039;&#039; um terceiro (e mais recente) vértice do triângulo da maneira de se fazer física, onde os outros dois vértices são a &#039;&#039;&#039;física teórica&#039;&#039;&#039; e a &#039;&#039;&#039;física experimental&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Métodos computacionais&#039;&#039;&#039; é a disciplina onde estudamos ferramentas, métodos e algoritmos numéricos para a resolução de problemas de física onde uma abordagem analítica é extremamente complexa ou impossível.&lt;br /&gt;
&lt;br /&gt;
Alguns exemplos de aplicação são: a solução numérica de equações diferenciais ordinárias, integração numérica via métodos de aproximação ou estatísticos como método de Monte Carlo, equações diferencias parciais como as equações de Maxwell e de Schroedinger, métodos matriciais para a solução de problemas de autovalor e autovetor como os encontrados na Mecânica Quântica.&lt;br /&gt;
&lt;br /&gt;
==Breve Historia da Computação==&lt;br /&gt;
&lt;br /&gt;
De Conrad Zuse (1941) ao IBM Blue/Gene (2006)&lt;br /&gt;
&lt;br /&gt;
==Arquitectura==&lt;br /&gt;
&lt;br /&gt;
[http://en.wikipedia.org/wiki/Image:Personal_computer%2C_exploded_5.svg Diagrama de PC]&lt;br /&gt;
&lt;br /&gt;
== Ferramentas ==&lt;br /&gt;
===== [[Comandos Unix/Linux]]  =====&lt;br /&gt;
===== [[Gnuplot]] e [[xmgrace]] =====&lt;br /&gt;
===== [[LaTex]] =====&lt;br /&gt;
===== [[FORTRAN]] =====&lt;br /&gt;
===== [[C]] =====&lt;br /&gt;
&lt;br /&gt;
== Métodos Computacionais A ==&lt;br /&gt;
===== [[Derivada Numérica]] =====&lt;br /&gt;
===== [[Integração Numérica]] =====&lt;br /&gt;
===== [[Interpolação e extrapolação]] =====&lt;br /&gt;
====== [[Fórmula de Lagrange]]======&lt;br /&gt;
====== [[Spline cúbico]]======&lt;br /&gt;
&amp;lt;!--- ===== [[Eliminação gaussiana e retro-substituição]] ===== ---&amp;gt;&lt;br /&gt;
===== [[Zeros de Funções]]=====&lt;br /&gt;
===== [[Mínimos Quadrados]] =====&lt;br /&gt;
===== [[Listas de exercícios]] =====&lt;br /&gt;
&lt;br /&gt;
== Métodos Computacionais B ==&lt;br /&gt;
&lt;br /&gt;
===== [[Integração numérica de equações diferenciais ordinárias]] =====&lt;br /&gt;
&lt;br /&gt;
===== [[Métodos multipassos]]=====&lt;br /&gt;
&lt;br /&gt;
===== [[Métodos de passo variável]]=====&lt;br /&gt;
&lt;br /&gt;
===== [[Aplicações (Mapas)]]=====&lt;br /&gt;
&lt;br /&gt;
===== [[Números Aleatórios]]=====&lt;br /&gt;
&lt;br /&gt;
===== [[Histogramas e Densidade de Probabilidade ]] =====&lt;br /&gt;
&lt;br /&gt;
===== [[Método de Monte Carlo (integraçào numérica)]]=====&lt;/div&gt;</summary>
		<author><name>Ejagnes</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Zeros_de_Fun%C3%A7%C3%B5es&amp;diff=183</id>
		<title>Zeros de Funções</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Zeros_de_Fun%C3%A7%C3%B5es&amp;diff=183"/>
		<updated>2011-11-09T10:35:27Z</updated>

		<summary type="html">&lt;p&gt;Ejagnes: /* Iteração Simples */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;                                                                     &lt;br /&gt;
                                                                     &lt;br /&gt;
                                                                     &lt;br /&gt;
                                             &lt;br /&gt;
&amp;lt;!---&lt;br /&gt;
&lt;br /&gt;
---&amp;gt;&lt;br /&gt;
Calcular o zero de uma função significa encontrar  os valores da variável independente &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt; que fazem com que a função &amp;lt;math&amp;gt;f(x_i)&amp;lt;/math&amp;gt;&lt;br /&gt;
tenha o valor zero.&lt;br /&gt;
&lt;br /&gt;
Matematicamente pode ser formalizado assim: &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;x : f(x) = 0\,&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Os &#039;&#039;zeros&#039;&#039; da função &#039;&#039;f&#039;&#039; são também chamados de &#039;&#039;raízes&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Um exemplo simples é achar as raízes da função &amp;lt;math&amp;gt;1/(x + 1) - 2&amp;lt;/math&amp;gt;. &lt;br /&gt;
A simplicidade vem do fato dessa função ter inversa, com o qual a solução pode ser encontrada isolando o x: &amp;lt;math&amp;gt;x = -1/2&amp;lt;/math&amp;gt;&lt;br /&gt;
que é o zero dessa função ou equação.&lt;br /&gt;
&lt;br /&gt;
Outro exemplo clássico são as raízes de uma parábola:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;f(x)=ax^2+bx+c \,&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
da qual existe uma expressão para as raízes (cuja programação é um dos exercícios):&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;x = (-b +- \sqrt{b^2 - 4ac})/2a&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Porém, quando a função é mais complicada, o problema de achar os zeros pode não ter (é o mais comum) &lt;br /&gt;
solução analítica.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vale notar que ao tratar dos &#039;&#039;zeros&#039;&#039; podemos generalizar o conceito para qualquer outro valor.&lt;br /&gt;
Por exemplo, achar &#039;&#039;x&#039;&#039; tal que &amp;lt;math&amp;gt;f(x) = d&amp;lt;/math&amp;gt; é equivalente a achar os zeros de &amp;lt;math&amp;gt;f(x)-d&amp;lt;/math&amp;gt;.&lt;br /&gt;
De outra forma podemos dizer que trata-se do problema &#039;&#039;&#039;inverso:&#039;&#039;&#039; dado o valor da função queremos saber a qual valor da  variável independente ele corresponde.&lt;br /&gt;
&lt;br /&gt;
Numericamente, temos três métodos usuais que serão descritos aqui, os métodos da Iteração Simples, Newton-Raphson e Método da Bisecção.&lt;br /&gt;
&lt;br /&gt;
== Iteração Simples ==&lt;br /&gt;
&lt;br /&gt;
Para o método da iteração simples, utiliza-se uma nova função &amp;lt;math&amp;gt;F(x)&amp;lt;/math&amp;gt; para encontrar o zero da função original &amp;lt;math&amp;gt;f(x)&amp;lt;/math&amp;gt;, de modo que se define&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; F(x) = f(x) + x,&amp;lt;/math&amp;gt;&lt;br /&gt;
assim&lt;br /&gt;
:&amp;lt;math&amp;gt; F(x) = x \,\; para \,\; f(x) = 0.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Utilizamos a própria função para definir o valor de &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; nas iterações, tendo que existir um &amp;quot;chute&amp;quot; inicial para o valor &amp;lt;math&amp;gt;x_0&amp;lt;/math&amp;gt;. Assim, a iteração pode ser definida como&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; x_{n+1} = F(x_n) &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Itera-se a equação até atingir-se um valor fixo, ou seja, &amp;lt;math&amp;gt;x_{n+1} = x_n &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
As duas principais destavantagens deste método devem-se ao fato de ele ser mais lento que demais métodos e por existir funções que apresentam raízes &amp;quot;instáveis&amp;quot; de iteração. Ou seja,  são raízes que este método não é capaz de encontrar. &lt;br /&gt;
Para descobrir se haverá raízes instáveis de convergência, utilizamos a condição de convergência do método, perturbando a solução &amp;lt;math&amp;gt;x_{n+1} = x_n = x^*&amp;lt;/math&amp;gt; e expandindo em série de Taylor:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;x^*+\delta = F(x^*+\delta) = F(x^*) + \frac{dF(x^*)}{dx}\delta+ ...&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note que para&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\|\frac{dF(x^*)}{dx}\| \leqslant 1&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
o efeito da perturbação decai, indicando que a raíz &amp;lt;math&amp;gt;x^*&amp;lt;/math&amp;gt; é estável por este método. Ao contrário, se expressão acima for maior do 1, isto implica que uma  pequena perturbação faria com que os valores da função se afastassem do valor de &amp;lt;math&amp;gt; F(x^*) &amp;lt;/math&amp;gt; mesmo se estivéssemos calculando um valor da função em&lt;br /&gt;
&amp;lt;math&amp;gt;x^*+\delta&amp;lt;/math&amp;gt; com &amp;lt;math&amp;gt;\delta&amp;lt;/math&amp;gt; muito pequeno.   Se este for o caso, então o método de iteração simples não consegue encontrar a raiz &lt;br /&gt;
&amp;lt;math&amp;gt;x^*&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[Image:iterasimp.png|650px]]&lt;br /&gt;
&lt;br /&gt;
== Newton-Raphson ==&lt;br /&gt;
&lt;br /&gt;
O método de &#039;&#039;&#039;Newton-Raphson&#039;&#039;&#039; é um procedimento para encontrar zeros de funções de maneira iterativa, assim como o método da iteração simples. Partindo de um ponto qualquer da função vamos ao próximo ponto com deslocamento dado pela derivada no ponto inicial:&lt;br /&gt;
&lt;br /&gt;
[[Image:newton.png|right|frame|Método de Newton-Raphson com &amp;lt;math&amp;gt;x_0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;x_1&amp;lt;/math&amp;gt;.]]&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;f&#039;(x_{n}) = \frac{ f( x_{n} ) - 0 }{ x_{n} - x_{n+1} } = \frac{0 - f(x_{n})}{(x_{n+1} - x_{n})}\,\!&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Desta forma o próximo ponto está dado por:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;x_{n+1} = x_n - \frac{f(x_n)}{f&#039;(x_n)}\,\!&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
e o processo é repetido até a precisão desejada.&lt;br /&gt;
Note que numericamente não temos garantia de achar exatamente a raiz. Devemos fixar um &amp;lt;math&amp;gt;\epsilon&amp;lt;/math&amp;gt;&lt;br /&gt;
que determina a tolerância com que vamos a aceitar o zero. Ou seja quando &amp;lt;math&amp;gt;|f(x)| &amp;lt; \epsilon&amp;lt;/math&amp;gt; paramos a procura.&lt;br /&gt;
&lt;br /&gt;
Por outra parte o método não garante a convergência, isto é, pode acontecer que o processo entre num ciclo infinito&lt;br /&gt;
pipocando de uma lado para outro da raiz, sem poder encontrar uma solução.&lt;br /&gt;
&lt;br /&gt;
Geometricamente, como mostrado na figura ao lado, tendo sido escolhido o ponto &amp;lt;math&amp;gt;x_0&amp;lt;/math&amp;gt;, queremos que o ponto &amp;lt;math&amp;gt;x_1&amp;lt;/math&amp;gt; seja o encontro da reta tangente (ou da derivada) da função no ponto &amp;lt;math&amp;gt;x_0&amp;lt;/math&amp;gt; com a reta das abcissas. Sendo&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;f&#039;(x_0)=tan(\theta)&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
temos que&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;x_0 - x_1 = \frac{f(x_0)}{f&#039;(x_0)}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
A figura abaixo mostra as iterações do método de Newton-Raphson (retirado da Wikipedia [http://en.wikipedia.org/wiki/Newton&#039;s_method])&lt;br /&gt;
&lt;br /&gt;
[[Imagem:newtoniteration.gif|500px|]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bissecção ==&lt;br /&gt;
&lt;br /&gt;
O método da bissecção consiste em utilizar um intervalo de valores de &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; que é sabido que contenha uma raíz. Note que temos que ter uma noção prévia da função para utilizar este método. Definindo um intervalo&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; a \leqslant x \leqslant b &amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
temos a condição &amp;lt;math&amp;gt;f(a)f(b) &amp;lt; 0 &amp;lt;/math&amp;gt;, indicando que há pelo menos um zero contido neste intervalo, ou seja, que a função &amp;quot;corta&amp;quot; o eixo das abcissas, de modo que um valor da função seja maior que zero e outro menor.&lt;br /&gt;
&lt;br /&gt;
Definindo o intervalo inicial &amp;lt;math&amp;gt;[a,b]&amp;lt;/math&amp;gt;, dividimos este por dois, encontrando o valor médio &amp;lt;math&amp;gt;x_m&amp;lt;/math&amp;gt;, dado por&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; x_m = a + \frac{b-a}{2} = \frac{a+b}{2}.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note que estamos com dois intervalos de &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt;, primeiro &amp;lt;math&amp;gt;[a,x_m]&amp;lt;/math&amp;gt; e segundo &amp;lt;math&amp;gt;[x_m,b]&amp;lt;/math&amp;gt;. Agora precisamos descobrir em qual desses dois intervalos há uma raíz. Para isso calculamos o produto das funções nos pontos específicos. Se &amp;lt;math&amp;gt;f(a)f(x_m)&amp;lt;0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;f(x_m)f(b)&amp;gt;0&amp;lt;/math&amp;gt;, continuamos com o primeiro intervalo (que contém um raíz), caso contrário com o segundo. Prosseguindo com o algoritmo, dividimos o novo intervalo que contém a raiz novamente&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; x_{m2} = \frac{x_m+a}{2}.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Repetimos o processo anterior, verificando em qual dos dois novos intervalos, &amp;lt;math&amp;gt;[a,x_{m2}]&amp;lt;/math&amp;gt; ou &amp;lt;math&amp;gt;[x_{m2},x_m]&amp;lt;/math&amp;gt; está a raiz.&lt;br /&gt;
&lt;br /&gt;
O algoritmo é repetido até encontrarmos a raíz, com a precisão &amp;lt;math&amp;gt;\eta&amp;lt;/math&amp;gt; ou seja, até que &amp;lt;math&amp;gt;-\eta^2 \leqslant f(a)f(b) \leqslant 0&amp;lt;/math&amp;gt;. O ideal é ao final ficar com o valor intermediário das funções.&lt;br /&gt;
&lt;br /&gt;
Abaixo há uma figura com duas iterações do método da bissecção, assim como descrito acima.&lt;br /&gt;
&lt;br /&gt;
[[Imagem:bisseccao.png|800px|]]&lt;br /&gt;
&lt;br /&gt;
== Programação ==&lt;br /&gt;
Para programá-lo em FORTRAN o mais prático é definir como funções tanto a própria função como a sua derivada.&lt;br /&gt;
Sejam elas f(x) e g(x) respectivamente, o trecho de código com a implementação do método fica:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
x = x0&lt;br /&gt;
Do&lt;br /&gt;
   if (g(x)==0) then&lt;br /&gt;
     print*, &amp;quot;em x=&amp;quot;, x, &amp;quot;a derivada é zero&amp;quot;&lt;br /&gt;
   else&lt;br /&gt;
     x = x - f(x)/g(x)&lt;br /&gt;
     if (abs(f(x)) &amp;lt; eps) then&lt;br /&gt;
        print*, &amp;quot;raiz em x=&amp;quot;, x, &amp;quot;f(x)=&amp;quot;, f(x)&lt;br /&gt;
        exit&lt;br /&gt;
     endif&lt;br /&gt;
   endif&lt;br /&gt;
endo&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Plano Complexo ==&lt;br /&gt;
O método pode ser estendido a funções f(z) onde z, e f(z) pertencem a C (domínio dos números complexos).&lt;br /&gt;
Dessa forma todas as raízes de um polinômio podem em princípio ser encontradas.&lt;br /&gt;
O método tem a mesma formulação teórica. Só muda o programa pois precisamos usar complexos.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Complex f, z&lt;br /&gt;
Real x,y&lt;br /&gt;
Read*, x,y&lt;br /&gt;
&lt;br /&gt;
z = CMPLX(x,y) ! função FORTRAN intrínseca para converter un par x,y de variáveis reais numa variável complexa&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
if (abs(f(z)&amp;lt;eps) print*, z&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ejagnes</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Zeros_de_Fun%C3%A7%C3%B5es&amp;diff=182</id>
		<title>Zeros de Funções</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Zeros_de_Fun%C3%A7%C3%B5es&amp;diff=182"/>
		<updated>2011-11-09T10:33:16Z</updated>

		<summary type="html">&lt;p&gt;Ejagnes: /* Iteração Simples */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;                                                                     &lt;br /&gt;
                                                                     &lt;br /&gt;
                                                                     &lt;br /&gt;
                                             &lt;br /&gt;
&amp;lt;!---&lt;br /&gt;
&lt;br /&gt;
---&amp;gt;&lt;br /&gt;
Calcular o zero de uma função significa encontrar  os valores da variável independente &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt; que fazem com que a função &amp;lt;math&amp;gt;f(x_i)&amp;lt;/math&amp;gt;&lt;br /&gt;
tenha o valor zero.&lt;br /&gt;
&lt;br /&gt;
Matematicamente pode ser formalizado assim: &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;x : f(x) = 0\,&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Os &#039;&#039;zeros&#039;&#039; da função &#039;&#039;f&#039;&#039; são também chamados de &#039;&#039;raízes&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Um exemplo simples é achar as raízes da função &amp;lt;math&amp;gt;1/(x + 1) - 2&amp;lt;/math&amp;gt;. &lt;br /&gt;
A simplicidade vem do fato dessa função ter inversa, com o qual a solução pode ser encontrada isolando o x: &amp;lt;math&amp;gt;x = -1/2&amp;lt;/math&amp;gt;&lt;br /&gt;
que é o zero dessa função ou equação.&lt;br /&gt;
&lt;br /&gt;
Outro exemplo clássico são as raízes de uma parábola:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;f(x)=ax^2+bx+c \,&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
da qual existe uma expressão para as raízes (cuja programação é um dos exercícios):&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;x = (-b +- \sqrt{b^2 - 4ac})/2a&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Porém, quando a função é mais complicada, o problema de achar os zeros pode não ter (é o mais comum) &lt;br /&gt;
solução analítica.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vale notar que ao tratar dos &#039;&#039;zeros&#039;&#039; podemos generalizar o conceito para qualquer outro valor.&lt;br /&gt;
Por exemplo, achar &#039;&#039;x&#039;&#039; tal que &amp;lt;math&amp;gt;f(x) = d&amp;lt;/math&amp;gt; é equivalente a achar os zeros de &amp;lt;math&amp;gt;f(x)-d&amp;lt;/math&amp;gt;.&lt;br /&gt;
De outra forma podemos dizer que trata-se do problema &#039;&#039;&#039;inverso:&#039;&#039;&#039; dado o valor da função queremos saber a qual valor da  variável independente ele corresponde.&lt;br /&gt;
&lt;br /&gt;
Numericamente, temos três métodos usuais que serão descritos aqui, os métodos da Iteração Simples, Newton-Raphson e Método da Bisecção.&lt;br /&gt;
&lt;br /&gt;
== Iteração Simples ==&lt;br /&gt;
&lt;br /&gt;
[[Image:iterasimp.png|right|frame|Método de iteração simples.|200 px]]&lt;br /&gt;
&lt;br /&gt;
Para o método da iteração simples, utiliza-se uma nova função &amp;lt;math&amp;gt;F(x)&amp;lt;/math&amp;gt; para encontrar o zero da função original &amp;lt;math&amp;gt;f(x)&amp;lt;/math&amp;gt;, de modo que se define&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; F(x) = f(x) + x,&amp;lt;/math&amp;gt;&lt;br /&gt;
assim&lt;br /&gt;
:&amp;lt;math&amp;gt; F(x) = x \,\; para \,\; f(x) = 0.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Utilizamos a própria função para definir o valor de &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; nas iterações, tendo que existir um &amp;quot;chute&amp;quot; inicial para o valor &amp;lt;math&amp;gt;x_0&amp;lt;/math&amp;gt;. Assim, a iteração pode ser definida como&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; x_{n+1} = F(x_n) &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Itera-se a equação até atingir-se um valor fixo, ou seja, &amp;lt;math&amp;gt;x_{n+1} = x_n &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
As duas principais destavantagens deste método devem-se ao fato de ele ser mais lento que demais métodos e por existir funções que apresentam raízes &amp;quot;instáveis&amp;quot; de iteração. Ou seja,  são raízes que este método não é capaz de encontrar. &lt;br /&gt;
Para descobrir se haverá raízes instáveis de convergência, utilizamos a condição de convergência do método, perturbando a solução &amp;lt;math&amp;gt;x_{n+1} = x_n = x^*&amp;lt;/math&amp;gt; e expandindo em série de Taylor:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;x^*+\delta = F(x^*+\delta) = F(x^*) + \frac{dF(x^*)}{dx}\delta+ ...&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note que para&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\|\frac{dF(x^*)}{dx}\| \leqslant 1&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
o efeito da perturbação decai, indicando que a raíz &amp;lt;math&amp;gt;x^*&amp;lt;/math&amp;gt; é estável por este método. Ao contrário, se expressão acima for maior do 1, isto implica que uma  pequena perturbação faria com que os valores da função se afastassem do valor de &amp;lt;math&amp;gt; F(x^*) &amp;lt;/math&amp;gt; mesmo se estivéssemos calculando um valor da função em&lt;br /&gt;
&amp;lt;math&amp;gt;x^*+\delta&amp;lt;/math&amp;gt; com &amp;lt;math&amp;gt;\delta&amp;lt;/math&amp;gt; muito pequeno.   Se este for o caso, então o método de iteração simples não consegue encontrar a raiz &lt;br /&gt;
&amp;lt;math&amp;gt;x^*&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Newton-Raphson ==&lt;br /&gt;
&lt;br /&gt;
O método de &#039;&#039;&#039;Newton-Raphson&#039;&#039;&#039; é um procedimento para encontrar zeros de funções de maneira iterativa, assim como o método da iteração simples. Partindo de um ponto qualquer da função vamos ao próximo ponto com deslocamento dado pela derivada no ponto inicial:&lt;br /&gt;
&lt;br /&gt;
[[Image:newton.png|right|frame|Método de Newton-Raphson com &amp;lt;math&amp;gt;x_0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;x_1&amp;lt;/math&amp;gt;.]]&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;f&#039;(x_{n}) = \frac{ f( x_{n} ) - 0 }{ x_{n} - x_{n+1} } = \frac{0 - f(x_{n})}{(x_{n+1} - x_{n})}\,\!&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Desta forma o próximo ponto está dado por:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;x_{n+1} = x_n - \frac{f(x_n)}{f&#039;(x_n)}\,\!&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
e o processo é repetido até a precisão desejada.&lt;br /&gt;
Note que numericamente não temos garantia de achar exatamente a raiz. Devemos fixar um &amp;lt;math&amp;gt;\epsilon&amp;lt;/math&amp;gt;&lt;br /&gt;
que determina a tolerância com que vamos a aceitar o zero. Ou seja quando &amp;lt;math&amp;gt;|f(x)| &amp;lt; \epsilon&amp;lt;/math&amp;gt; paramos a procura.&lt;br /&gt;
&lt;br /&gt;
Por outra parte o método não garante a convergência, isto é, pode acontecer que o processo entre num ciclo infinito&lt;br /&gt;
pipocando de uma lado para outro da raiz, sem poder encontrar uma solução.&lt;br /&gt;
&lt;br /&gt;
Geometricamente, como mostrado na figura ao lado, tendo sido escolhido o ponto &amp;lt;math&amp;gt;x_0&amp;lt;/math&amp;gt;, queremos que o ponto &amp;lt;math&amp;gt;x_1&amp;lt;/math&amp;gt; seja o encontro da reta tangente (ou da derivada) da função no ponto &amp;lt;math&amp;gt;x_0&amp;lt;/math&amp;gt; com a reta das abcissas. Sendo&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;f&#039;(x_0)=tan(\theta)&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
temos que&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;x_0 - x_1 = \frac{f(x_0)}{f&#039;(x_0)}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
A figura abaixo mostra as iterações do método de Newton-Raphson (retirado da Wikipedia [http://en.wikipedia.org/wiki/Newton&#039;s_method])&lt;br /&gt;
&lt;br /&gt;
[[Imagem:newtoniteration.gif|500px|]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bissecção ==&lt;br /&gt;
&lt;br /&gt;
O método da bissecção consiste em utilizar um intervalo de valores de &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; que é sabido que contenha uma raíz. Note que temos que ter uma noção prévia da função para utilizar este método. Definindo um intervalo&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; a \leqslant x \leqslant b &amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
temos a condição &amp;lt;math&amp;gt;f(a)f(b) &amp;lt; 0 &amp;lt;/math&amp;gt;, indicando que há pelo menos um zero contido neste intervalo, ou seja, que a função &amp;quot;corta&amp;quot; o eixo das abcissas, de modo que um valor da função seja maior que zero e outro menor.&lt;br /&gt;
&lt;br /&gt;
Definindo o intervalo inicial &amp;lt;math&amp;gt;[a,b]&amp;lt;/math&amp;gt;, dividimos este por dois, encontrando o valor médio &amp;lt;math&amp;gt;x_m&amp;lt;/math&amp;gt;, dado por&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; x_m = a + \frac{b-a}{2} = \frac{a+b}{2}.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note que estamos com dois intervalos de &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt;, primeiro &amp;lt;math&amp;gt;[a,x_m]&amp;lt;/math&amp;gt; e segundo &amp;lt;math&amp;gt;[x_m,b]&amp;lt;/math&amp;gt;. Agora precisamos descobrir em qual desses dois intervalos há uma raíz. Para isso calculamos o produto das funções nos pontos específicos. Se &amp;lt;math&amp;gt;f(a)f(x_m)&amp;lt;0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;f(x_m)f(b)&amp;gt;0&amp;lt;/math&amp;gt;, continuamos com o primeiro intervalo (que contém um raíz), caso contrário com o segundo. Prosseguindo com o algoritmo, dividimos o novo intervalo que contém a raiz novamente&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; x_{m2} = \frac{x_m+a}{2}.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Repetimos o processo anterior, verificando em qual dos dois novos intervalos, &amp;lt;math&amp;gt;[a,x_{m2}]&amp;lt;/math&amp;gt; ou &amp;lt;math&amp;gt;[x_{m2},x_m]&amp;lt;/math&amp;gt; está a raiz.&lt;br /&gt;
&lt;br /&gt;
O algoritmo é repetido até encontrarmos a raíz, com a precisão &amp;lt;math&amp;gt;\eta&amp;lt;/math&amp;gt; ou seja, até que &amp;lt;math&amp;gt;-\eta^2 \leqslant f(a)f(b) \leqslant 0&amp;lt;/math&amp;gt;. O ideal é ao final ficar com o valor intermediário das funções.&lt;br /&gt;
&lt;br /&gt;
Abaixo há uma figura com duas iterações do método da bissecção, assim como descrito acima.&lt;br /&gt;
&lt;br /&gt;
[[Imagem:bisseccao.png|800px|]]&lt;br /&gt;
&lt;br /&gt;
== Programação ==&lt;br /&gt;
Para programá-lo em FORTRAN o mais prático é definir como funções tanto a própria função como a sua derivada.&lt;br /&gt;
Sejam elas f(x) e g(x) respectivamente, o trecho de código com a implementação do método fica:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
x = x0&lt;br /&gt;
Do&lt;br /&gt;
   if (g(x)==0) then&lt;br /&gt;
     print*, &amp;quot;em x=&amp;quot;, x, &amp;quot;a derivada é zero&amp;quot;&lt;br /&gt;
   else&lt;br /&gt;
     x = x - f(x)/g(x)&lt;br /&gt;
     if (abs(f(x)) &amp;lt; eps) then&lt;br /&gt;
        print*, &amp;quot;raiz em x=&amp;quot;, x, &amp;quot;f(x)=&amp;quot;, f(x)&lt;br /&gt;
        exit&lt;br /&gt;
     endif&lt;br /&gt;
   endif&lt;br /&gt;
endo&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Plano Complexo ==&lt;br /&gt;
O método pode ser estendido a funções f(z) onde z, e f(z) pertencem a C (domínio dos números complexos).&lt;br /&gt;
Dessa forma todas as raízes de um polinômio podem em princípio ser encontradas.&lt;br /&gt;
O método tem a mesma formulação teórica. Só muda o programa pois precisamos usar complexos.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Complex f, z&lt;br /&gt;
Real x,y&lt;br /&gt;
Read*, x,y&lt;br /&gt;
&lt;br /&gt;
z = CMPLX(x,y) ! função FORTRAN intrínseca para converter un par x,y de variáveis reais numa variável complexa&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
if (abs(f(z)&amp;lt;eps) print*, z&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ejagnes</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Iterasimp.png&amp;diff=181</id>
		<title>Arquivo:Iterasimp.png</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Iterasimp.png&amp;diff=181"/>
		<updated>2011-11-09T10:32:06Z</updated>

		<summary type="html">&lt;p&gt;Ejagnes: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Ejagnes</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Zeros_de_Fun%C3%A7%C3%B5es&amp;diff=180</id>
		<title>Zeros de Funções</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Zeros_de_Fun%C3%A7%C3%B5es&amp;diff=180"/>
		<updated>2011-11-09T10:27:48Z</updated>

		<summary type="html">&lt;p&gt;Ejagnes: /* Iteração Simples */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;                                                                     &lt;br /&gt;
                                                                     &lt;br /&gt;
                                                                     &lt;br /&gt;
                                             &lt;br /&gt;
&amp;lt;!---&lt;br /&gt;
&lt;br /&gt;
---&amp;gt;&lt;br /&gt;
Calcular o zero de uma função significa encontrar  os valores da variável independente &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt; que fazem com que a função &amp;lt;math&amp;gt;f(x_i)&amp;lt;/math&amp;gt;&lt;br /&gt;
tenha o valor zero.&lt;br /&gt;
&lt;br /&gt;
Matematicamente pode ser formalizado assim: &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;x : f(x) = 0\,&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Os &#039;&#039;zeros&#039;&#039; da função &#039;&#039;f&#039;&#039; são também chamados de &#039;&#039;raízes&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Um exemplo simples é achar as raízes da função &amp;lt;math&amp;gt;1/(x + 1) - 2&amp;lt;/math&amp;gt;. &lt;br /&gt;
A simplicidade vem do fato dessa função ter inversa, com o qual a solução pode ser encontrada isolando o x: &amp;lt;math&amp;gt;x = -1/2&amp;lt;/math&amp;gt;&lt;br /&gt;
que é o zero dessa função ou equação.&lt;br /&gt;
&lt;br /&gt;
Outro exemplo clássico são as raízes de uma parábola:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;f(x)=ax^2+bx+c \,&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
da qual existe uma expressão para as raízes (cuja programação é um dos exercícios):&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;x = (-b +- \sqrt{b^2 - 4ac})/2a&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Porém, quando a função é mais complicada, o problema de achar os zeros pode não ter (é o mais comum) &lt;br /&gt;
solução analítica.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vale notar que ao tratar dos &#039;&#039;zeros&#039;&#039; podemos generalizar o conceito para qualquer outro valor.&lt;br /&gt;
Por exemplo, achar &#039;&#039;x&#039;&#039; tal que &amp;lt;math&amp;gt;f(x) = d&amp;lt;/math&amp;gt; é equivalente a achar os zeros de &amp;lt;math&amp;gt;f(x)-d&amp;lt;/math&amp;gt;.&lt;br /&gt;
De outra forma podemos dizer que trata-se do problema &#039;&#039;&#039;inverso:&#039;&#039;&#039; dado o valor da função queremos saber a qual valor da  variável independente ele corresponde.&lt;br /&gt;
&lt;br /&gt;
Numericamente, temos três métodos usuais que serão descritos aqui, os métodos da Iteração Simples, Newton-Raphson e Método da Bisecção.&lt;br /&gt;
&lt;br /&gt;
== Iteração Simples ==&lt;br /&gt;
&lt;br /&gt;
Para o método da iteração simples, utiliza-se uma nova função &amp;lt;math&amp;gt;F(x)&amp;lt;/math&amp;gt; para encontrar o zero da função original &amp;lt;math&amp;gt;f(x)&amp;lt;/math&amp;gt;, de modo que se define&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; F(x) = f(x) + x,&amp;lt;/math&amp;gt;&lt;br /&gt;
assim&lt;br /&gt;
:&amp;lt;math&amp;gt; F(x) = x \,\; para \,\; f(x) = 0.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Utilizamos a própria função para definir o valor de &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; nas iterações, tendo que existir um &amp;quot;chute&amp;quot; inicial para o valor &amp;lt;math&amp;gt;x_0&amp;lt;/math&amp;gt;. Assim, a iteração pode ser definida como&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; x_{n+1} = F(x_n) &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Itera-se a equação até atingir-se um valor fixo, ou seja, &amp;lt;math&amp;gt;x_{n+1} = x_n &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
As duas principais destavantagens deste método devem-se ao fato de ele ser mais lento que demais métodos e por existir funções que apresentam raízes &amp;quot;instáveis&amp;quot; de iteração. Ou seja,  são raízes que este método não é capaz de encontrar. &lt;br /&gt;
Para descobrir se haverá raízes instáveis de convergência, utilizamos a condição de convergência do método, perturbando a solução &amp;lt;math&amp;gt;x_{n+1} = x_n = x^*&amp;lt;/math&amp;gt; e expandindo em série de Taylor:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;x^*+\delta = F(x^*+\delta) = F(x^*) + \frac{dF(x^*)}{dx}\delta+ ...&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note que para&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\|\frac{dF(x^*)}{dx}\| \leqslant 1&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
o efeito da perturbação decai, indicando que a raíz &amp;lt;math&amp;gt;x^*&amp;lt;/math&amp;gt; é estável por este método. Ao contrário, se expressão acima for maior do 1, isto implica que uma  pequena perturbação faria com que os valores da função se afastassem do valor de &amp;lt;math&amp;gt; F(x^*) &amp;lt;/math&amp;gt; mesmo se estivéssemos calculando um valor da função em&lt;br /&gt;
&amp;lt;math&amp;gt;x^*+\delta&amp;lt;/math&amp;gt; com &amp;lt;math&amp;gt;\delta&amp;lt;/math&amp;gt; muito pequeno.   Se este for o caso, então o método de iteração simples não consegue encontrar a raiz &lt;br /&gt;
&amp;lt;math&amp;gt;x^*&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[Image:iterasimp.png|right|frame|Método de iteração simples.]]&lt;br /&gt;
&lt;br /&gt;
== Newton-Raphson ==&lt;br /&gt;
&lt;br /&gt;
O método de &#039;&#039;&#039;Newton-Raphson&#039;&#039;&#039; é um procedimento para encontrar zeros de funções de maneira iterativa, assim como o método da iteração simples. Partindo de um ponto qualquer da função vamos ao próximo ponto com deslocamento dado pela derivada no ponto inicial:&lt;br /&gt;
&lt;br /&gt;
[[Image:newton.png|right|frame|Método de Newton-Raphson com &amp;lt;math&amp;gt;x_0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;x_1&amp;lt;/math&amp;gt;.]]&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;f&#039;(x_{n}) = \frac{ f( x_{n} ) - 0 }{ x_{n} - x_{n+1} } = \frac{0 - f(x_{n})}{(x_{n+1} - x_{n})}\,\!&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Desta forma o próximo ponto está dado por:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;x_{n+1} = x_n - \frac{f(x_n)}{f&#039;(x_n)}\,\!&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
e o processo é repetido até a precisão desejada.&lt;br /&gt;
Note que numericamente não temos garantia de achar exatamente a raiz. Devemos fixar um &amp;lt;math&amp;gt;\epsilon&amp;lt;/math&amp;gt;&lt;br /&gt;
que determina a tolerância com que vamos a aceitar o zero. Ou seja quando &amp;lt;math&amp;gt;|f(x)| &amp;lt; \epsilon&amp;lt;/math&amp;gt; paramos a procura.&lt;br /&gt;
&lt;br /&gt;
Por outra parte o método não garante a convergência, isto é, pode acontecer que o processo entre num ciclo infinito&lt;br /&gt;
pipocando de uma lado para outro da raiz, sem poder encontrar uma solução.&lt;br /&gt;
&lt;br /&gt;
Geometricamente, como mostrado na figura ao lado, tendo sido escolhido o ponto &amp;lt;math&amp;gt;x_0&amp;lt;/math&amp;gt;, queremos que o ponto &amp;lt;math&amp;gt;x_1&amp;lt;/math&amp;gt; seja o encontro da reta tangente (ou da derivada) da função no ponto &amp;lt;math&amp;gt;x_0&amp;lt;/math&amp;gt; com a reta das abcissas. Sendo&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;f&#039;(x_0)=tan(\theta)&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
temos que&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;x_0 - x_1 = \frac{f(x_0)}{f&#039;(x_0)}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
A figura abaixo mostra as iterações do método de Newton-Raphson (retirado da Wikipedia [http://en.wikipedia.org/wiki/Newton&#039;s_method])&lt;br /&gt;
&lt;br /&gt;
[[Imagem:newtoniteration.gif|500px|]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bissecção ==&lt;br /&gt;
&lt;br /&gt;
O método da bissecção consiste em utilizar um intervalo de valores de &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; que é sabido que contenha uma raíz. Note que temos que ter uma noção prévia da função para utilizar este método. Definindo um intervalo&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; a \leqslant x \leqslant b &amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
temos a condição &amp;lt;math&amp;gt;f(a)f(b) &amp;lt; 0 &amp;lt;/math&amp;gt;, indicando que há pelo menos um zero contido neste intervalo, ou seja, que a função &amp;quot;corta&amp;quot; o eixo das abcissas, de modo que um valor da função seja maior que zero e outro menor.&lt;br /&gt;
&lt;br /&gt;
Definindo o intervalo inicial &amp;lt;math&amp;gt;[a,b]&amp;lt;/math&amp;gt;, dividimos este por dois, encontrando o valor médio &amp;lt;math&amp;gt;x_m&amp;lt;/math&amp;gt;, dado por&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; x_m = a + \frac{b-a}{2} = \frac{a+b}{2}.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note que estamos com dois intervalos de &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt;, primeiro &amp;lt;math&amp;gt;[a,x_m]&amp;lt;/math&amp;gt; e segundo &amp;lt;math&amp;gt;[x_m,b]&amp;lt;/math&amp;gt;. Agora precisamos descobrir em qual desses dois intervalos há uma raíz. Para isso calculamos o produto das funções nos pontos específicos. Se &amp;lt;math&amp;gt;f(a)f(x_m)&amp;lt;0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;f(x_m)f(b)&amp;gt;0&amp;lt;/math&amp;gt;, continuamos com o primeiro intervalo (que contém um raíz), caso contrário com o segundo. Prosseguindo com o algoritmo, dividimos o novo intervalo que contém a raiz novamente&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; x_{m2} = \frac{x_m+a}{2}.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Repetimos o processo anterior, verificando em qual dos dois novos intervalos, &amp;lt;math&amp;gt;[a,x_{m2}]&amp;lt;/math&amp;gt; ou &amp;lt;math&amp;gt;[x_{m2},x_m]&amp;lt;/math&amp;gt; está a raiz.&lt;br /&gt;
&lt;br /&gt;
O algoritmo é repetido até encontrarmos a raíz, com a precisão &amp;lt;math&amp;gt;\eta&amp;lt;/math&amp;gt; ou seja, até que &amp;lt;math&amp;gt;-\eta^2 \leqslant f(a)f(b) \leqslant 0&amp;lt;/math&amp;gt;. O ideal é ao final ficar com o valor intermediário das funções.&lt;br /&gt;
&lt;br /&gt;
Abaixo há uma figura com duas iterações do método da bissecção, assim como descrito acima.&lt;br /&gt;
&lt;br /&gt;
[[Imagem:bisseccao.png|800px|]]&lt;br /&gt;
&lt;br /&gt;
== Programação ==&lt;br /&gt;
Para programá-lo em FORTRAN o mais prático é definir como funções tanto a própria função como a sua derivada.&lt;br /&gt;
Sejam elas f(x) e g(x) respectivamente, o trecho de código com a implementação do método fica:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
x = x0&lt;br /&gt;
Do&lt;br /&gt;
   if (g(x)==0) then&lt;br /&gt;
     print*, &amp;quot;em x=&amp;quot;, x, &amp;quot;a derivada é zero&amp;quot;&lt;br /&gt;
   else&lt;br /&gt;
     x = x - f(x)/g(x)&lt;br /&gt;
     if (abs(f(x)) &amp;lt; eps) then&lt;br /&gt;
        print*, &amp;quot;raiz em x=&amp;quot;, x, &amp;quot;f(x)=&amp;quot;, f(x)&lt;br /&gt;
        exit&lt;br /&gt;
     endif&lt;br /&gt;
   endif&lt;br /&gt;
endo&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Plano Complexo ==&lt;br /&gt;
O método pode ser estendido a funções f(z) onde z, e f(z) pertencem a C (domínio dos números complexos).&lt;br /&gt;
Dessa forma todas as raízes de um polinômio podem em princípio ser encontradas.&lt;br /&gt;
O método tem a mesma formulação teórica. Só muda o programa pois precisamos usar complexos.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Complex f, z&lt;br /&gt;
Real x,y&lt;br /&gt;
Read*, x,y&lt;br /&gt;
&lt;br /&gt;
z = CMPLX(x,y) ! função FORTRAN intrínseca para converter un par x,y de variáveis reais numa variável complexa&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
if (abs(f(z)&amp;lt;eps) print*, z&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ejagnes</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Pathology.jpg&amp;diff=174</id>
		<title>Arquivo:Pathology.jpg</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Pathology.jpg&amp;diff=174"/>
		<updated>2011-10-25T10:56:03Z</updated>

		<summary type="html">&lt;p&gt;Ejagnes: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Ejagnes</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Implementa%C3%A7%C3%A3o_do_algoritmo_de_Neville&amp;diff=173</id>
		<title>Implementação do algoritmo de Neville</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Implementa%C3%A7%C3%A3o_do_algoritmo_de_Neville&amp;diff=173"/>
		<updated>2011-10-25T10:54:29Z</updated>

		<summary type="html">&lt;p&gt;Ejagnes: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Imagem:Neville.png]]&lt;br /&gt;
&lt;br /&gt;
Aqui é descrito um possível mapeamento para fazer o algoritmo de Neville, são descritas as fórmulas do algoritmo de Neville e seu correspondente mapeamento.&lt;br /&gt;
&lt;br /&gt;
Algoritmo de Neville:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;P_{12} = \frac{1}{x_1 - x_2}[(x - x_2)P_{11} - (x - x_1)P_{22}] &amp;lt;/math&amp;gt;&lt;br /&gt;
Olhando em termos da matriz:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;A_{12} = P_{12} = \frac{1}{X[1] - X[2]}[(x-X[2])A_{11} - (x-X[1])P_{22}].&amp;lt;/math&amp;gt;&lt;br /&gt;
Algoritmo de Neville:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;P_{23} = \frac{1}{x_2 - x_3}[(x-x_3)P_{22} - (x - x_2)P_{33}]&amp;lt;/math&amp;gt;&lt;br /&gt;
Mapeamento:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;A_{22} = P_{23} = \frac{1}{X[2] - X[3]}[(x-X[3])A_{21} - (x - X[2])A_{31}]&amp;lt;/math&amp;gt;&lt;br /&gt;
A. N.:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;P_{34} = \frac{1}{x_3 - x_4}[(x-x_4)P_{33} - (x-x_3)P_{44}]&amp;lt;/math&amp;gt;&lt;br /&gt;
M.:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;A_{32} = P_{34} = \frac{1}{X[3] - X[4]}[(x-X[4])A_{31} - (x-X[3])A_{41}]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Já é possível notar que&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;A_{ij} = \frac{1}{X[i] - X[k]}[(x - X[k])A_{i,j-1} - (x - X[i])A_{i+1,j-1}], k=j+i-1&amp;lt;/math&amp;gt;&lt;br /&gt;
Continuando com o A. N.:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;P_{123} = \frac{1}{x_1 - x_3}[(x-x_3)P_{12} - (x-x_1)P_{23}]&amp;lt;/math&amp;gt;&lt;br /&gt;
M.:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;A_{13} = P_{123} = \frac{1}{X[1] - X[3]}[(x-X[3])A_{12} - (x-X[1])A_{22}]&amp;lt;/math&amp;gt;&lt;br /&gt;
A. N.:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;P_{234} = \frac{1}{x_2-x_4}[(x-x_4)P_{23} - (x-x_3)P_{34}]&amp;lt;/math&amp;gt;&lt;br /&gt;
M.:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;A_{23} = P_{234} = \frac{1}{X[2]-X[4]}[(x-X[4])A_{22} - (x-X[3])A_{32}]&amp;lt;/math&amp;gt;&lt;br /&gt;
A. N.:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;P_{1234} = \frac{1}{x_1 - x_4}[(x-x_4)P_{123} - (x-x_1)P_{234}]&amp;lt;/math&amp;gt;&lt;br /&gt;
M.:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;A_{14} = P_{1234} = \frac{1}{X[1] - X[4]}[(x-X[4])A_{13} - (x-X[1])A_{23}]&amp;lt;/math&amp;gt;&lt;br /&gt;
Chegando finalmente a relação de recorrencia&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;A_{ij} = \frac{1}{X[i] - X[k]}[(x - X[k])A_{i,j-1} - (x - X[i])A_{i+1,j-1}]&amp;lt;/math&amp;gt;&lt;br /&gt;
onde&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;k = j + i - 1 &amp;lt;/math&amp;gt;&lt;br /&gt;
No final do processo, o polinômio interpolador é dado por&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;P(x) = A14.&amp;lt;/math&amp;gt;&lt;br /&gt;
A leitura dos pontos é dado pelos valores de X e da primeira coluna da matriz A.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;X,Y \rightarrow X[i],A[i][1]&amp;lt;/math&amp;gt;&lt;br /&gt;
A ordem do preenchimento é fundamental:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;j=1;\, i=1,2,3,4 &amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt;j=2;\, i=1,2,3 &amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt;j=3;\, i=1,2 &amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt;j=4;\, i=1 &amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt;j=1...N; \, i=1...(N-j+1) &amp;lt;/math&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ejagnes</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Neville.png&amp;diff=172</id>
		<title>Arquivo:Neville.png</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Neville.png&amp;diff=172"/>
		<updated>2011-10-25T10:54:24Z</updated>

		<summary type="html">&lt;p&gt;Ejagnes: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Ejagnes</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Implementa%C3%A7%C3%A3o_do_algoritmo_de_Neville&amp;diff=171</id>
		<title>Implementação do algoritmo de Neville</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Implementa%C3%A7%C3%A3o_do_algoritmo_de_Neville&amp;diff=171"/>
		<updated>2011-10-25T10:50:48Z</updated>

		<summary type="html">&lt;p&gt;Ejagnes: Criou página com &amp;#039;Imagem:Neville.png  Aqui é descrito um possível mapeamento para fazer o algoritmo de Neville, são descritas as fórmulas do algoritmo de Neville e seu correspondente mapea...&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Imagem:Neville.png]]&lt;br /&gt;
&lt;br /&gt;
Aqui é descrito um possível mapeamento para fazer o algoritmo de Neville, são descritas as fórmulas do algoritmo de Neville e seu correspondente mapeamento.&lt;br /&gt;
&lt;br /&gt;
Algoritmo de Neville:&lt;br /&gt;
&lt;br /&gt;
P_{12} = \frac{1}{x_1 - x_2}[(x - x_2)P_{11} - (x - x_1)P_{22}]&lt;br /&gt;
Olhando em termos da matriz:&lt;br /&gt;
&lt;br /&gt;
A_{12} = P_{12} = \frac{1}{X[1] - X[2]}[(x-X[2])A_{11} - (x-X[1])P_{22}].&lt;br /&gt;
Algoritmo de Neville:&lt;br /&gt;
&lt;br /&gt;
P_{23} = \frac{1}{x_2 - x_3}[(x-x_3)P_{22} - (x - x_2)P_{33}]&lt;br /&gt;
Mapeamento:&lt;br /&gt;
&lt;br /&gt;
A_{22} = P_{23} = \frac{1}{X[2] - X[3]}[(x-X[3])A_{21} - (x - X[2])A_{31}]&lt;br /&gt;
A. N.:&lt;br /&gt;
&lt;br /&gt;
P_{34} = \frac{1}{x_3 - x_4}[(x-x_4)P_{33} - (x-x_3)P_{44}]&lt;br /&gt;
M.:&lt;br /&gt;
&lt;br /&gt;
A_{32} = P_{34} = \frac{1}{X[3] - X[4]}[(x-X[4])A_{31} - (x-X[3])A_{41}]&lt;br /&gt;
&lt;br /&gt;
Já é possível notar que&lt;br /&gt;
&lt;br /&gt;
A_{ij} = \frac{1}{X[i] - X[k]}[(x - X[k])A_{i,j-1} - (x - X[i])A_{i+1,j-1}], k=j+i-1&lt;br /&gt;
Continuando com o A. N.:&lt;br /&gt;
&lt;br /&gt;
P_{123} = \frac{1}{x_1 - x_3}[(x-x_3)P_{12} - (x-x_1)P_{23}]&lt;br /&gt;
M.:&lt;br /&gt;
&lt;br /&gt;
A_{13} = P_{123} = \frac{1}{X[1] - X[3]}[(x-X[3])A_{12} - (x-X[1])A_{22}]&lt;br /&gt;
A. N.:&lt;br /&gt;
&lt;br /&gt;
P_{234} = \frac{1}{x_2-x_4}[(x-x_4)P_{23} - (x-x_3)P_{34}]&lt;br /&gt;
M.:&lt;br /&gt;
&lt;br /&gt;
A_{23} = P_{234} = \frac{1}{X[2]-X[4]}[(x-X[4])A_{22} - (x-X[3])A_{32}]&lt;br /&gt;
A. N.:&lt;br /&gt;
&lt;br /&gt;
P_{1234} = \frac{1}{x_1 - x_4}[(x-x_4)P_{123} - (x-x_1)P_{234}]&lt;br /&gt;
M.:&lt;br /&gt;
&lt;br /&gt;
A_{14} = P_{1234} = \frac{1}{X[1] - X[4]}[(x-X[4])A_{13} - (x-X[1])A_{23}]&lt;br /&gt;
Chegando finalmente a relação de recorrencia&lt;br /&gt;
&lt;br /&gt;
A_{ij} = \frac{1}{X[i] - X[k]}[(x - X[k])A_{i,j-1} - (x - X[i])A_{i+1,j-1}]&lt;br /&gt;
onde&lt;br /&gt;
&lt;br /&gt;
k = j + i − 1&lt;br /&gt;
No final do processo, o polinômio interpolador é dado por&lt;br /&gt;
&lt;br /&gt;
P(x) = A14.&lt;br /&gt;
A leitura dos pontos é dado pelos valores de X e da primeira coluna da matriz A.&lt;br /&gt;
&lt;br /&gt;
X,Y \rightarrow X[i],A[i][1]&lt;br /&gt;
A ordem do preenchimento é fundamental:&lt;br /&gt;
&lt;br /&gt;
j=1;\, i=1,2,3,4&lt;br /&gt;
j=2;\, i=1,2,3&lt;br /&gt;
j=3;\, i=1,2&lt;br /&gt;
j=4;\, i=1&lt;br /&gt;
j=1...N; \, i=1...(N-j+1)&lt;/div&gt;</summary>
		<author><name>Ejagnes</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=F%C3%B3rmula_de_Lagrange&amp;diff=170</id>
		<title>Fórmula de Lagrange</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=F%C3%B3rmula_de_Lagrange&amp;diff=170"/>
		<updated>2011-10-25T10:47:19Z</updated>

		<summary type="html">&lt;p&gt;Ejagnes: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==  Polinômios de Lagrange ==&lt;br /&gt;
&lt;br /&gt;
Baseado no fato de que sobre &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; pontos &amp;lt;math&amp;gt;(X_1,Y_1), (X_2,Y_2), \cdots, (X_N,Y_N)&amp;lt;/math&amp;gt; passa um &#039;&#039;único&#039;&#039; polinômio de grau &amp;lt;math&amp;gt;N-1&amp;lt;/math&amp;gt;, o &#039;&#039;&#039;Polinômio de Lagrange&#039;&#039;&#039; pode ser usado como fórmula de interpolação ou extrapolação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
P(x)=\sum_{i=1}^N Y_i L_i(x)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
L_i(x)=\prod_{j=1,j\ne i}^N\frac{x-X_j}{X_i-X_j}=\frac{x-X_1}{X_i-X_1}\cdots\frac{x-X_{i-1}}{X_i-X_{i-1}}&lt;br /&gt;
\frac{x-X_{i+1}}{X_i-X_{i+1}}\cdots\frac{x-X_N}{X_i-X_N}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
é um polinômio de grau &amp;lt;math&amp;gt;\;N-1&amp;lt;/math&amp;gt; em &amp;lt;math&amp;gt;\;x&amp;lt;/math&amp;gt;.&lt;br /&gt;
Tendo em vista que &amp;lt;math&amp;gt;L_i(X_j)=\delta_{i,j}\;,&amp;lt;/math&amp;gt; onde o delta de Kronecker&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;math&amp;gt;\delta_{ij} = \left\{\begin{matrix} &lt;br /&gt;
1, &amp;amp; \mbox{se } i=j  \\ &lt;br /&gt;
0, &amp;amp; \mbox{se } i \ne j \end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
é fácil verificar que, de fato,&amp;lt;math&amp;gt;\;P(X_i)=Y_i&amp;lt;/math&amp;gt;. Assim,&amp;lt;math&amp;gt;\;P(x)&amp;lt;/math&amp;gt; pode ser empregado para se estimar o valor de &amp;lt;math&amp;gt;\;Y(x)&amp;lt;/math&amp;gt; em pontos &amp;lt;math&amp;gt;\;x&amp;lt;/math&amp;gt; não tabulados.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Exemplo 1 ==&lt;br /&gt;
&lt;br /&gt;
[[Image:lagrangen2.png|right|frame|Fórmula de Lagrange para N=2.]]&lt;br /&gt;
&lt;br /&gt;
Para exemplificar a fórmula de Lagrange, consideramos primeiramente uma reta que passa pelos pontos &amp;lt;math&amp;gt;(X_1,Y_1) = (1,9)&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;(X_2,Y_2) = (2,13)&amp;lt;/math&amp;gt;, tendo assim &amp;lt;math&amp;gt;N = 2&amp;lt;/math&amp;gt;. Aplicando a fórmula de Lagrange, temos&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;L_1 = \frac{x-X_2}{X_1-X_2} = \frac{x-2}{1-2} = -(x-2)&amp;lt;/math&amp;gt;&lt;br /&gt;
e&lt;br /&gt;
:&amp;lt;math&amp;gt;L_2 = \frac{x-X_1}{X_2-X_1} = \frac{x-1}{2-1} = (x-1)&amp;lt;/math&amp;gt;,&lt;br /&gt;
assim, o polinômio de Lagrange que passa pelos pontos desejados é dado por:&lt;br /&gt;
:&amp;lt;math&amp;gt;P(x)=\sum_{i=1}^N Y_i L_i(x) = Y_1L_1 + Y_2L_2 = 9(-x+2) + 13(x-1) = 4x + 5 &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Note que substituindo na equação acima, &amp;lt;math&amp;gt;P(1) = 9&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;P(2) = 13&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Exemplo 2 ==&lt;br /&gt;
&lt;br /&gt;
[[Image:lagrangen3.png|right|frame|Fórmula de Lagrange para N=3.]]&lt;br /&gt;
&lt;br /&gt;
Verificando a fórmula de Lagrange para &amp;lt;math&amp;gt;N = 3&amp;lt;/math&amp;gt;. Suponhamos que desejamos encontrar qual é o polinômio que passa pelos pontos  &amp;lt;math&amp;gt;(X_1,Y_1) = (2,4)&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;(X_2,Y_2) = (3,9)&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;(X_3,Y_3) = (6,36)&amp;lt;/math&amp;gt;. Temos que:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;L_1 = \left(\frac{x-X_2}{X_1-X_2}\right) \left(\frac{x-X_3}{X_1-X_3}\right) = \left(\frac{x-3}{2-3}\right) \left(\frac{x-6}{2-6}\right) = \frac{x^2-9x+18}{4}&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;L_2 = \left(\frac{x-X_1}{X_2-X_1}\right) \left(\frac{x-X_3}{X_2-X_3}\right) = \left(\frac{x-2}{3-2}\right) \left(\frac{x-6}{3-6}\right) = -\frac{x^2-8x+12}{3}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
e&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;L_3 = \left(\frac{x-X_1}{X_3-X_1}\right) \left(\frac{x-X_2}{X_3-X_2}\right) = \left(\frac{x-2}{6-2}\right) \left(\frac{x-3}{6-3}\right) = \frac{x^2-5x+6}{12}&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
assim&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;P(x)=\sum_{i=1}^N Y_i L_i(x) = Y_1L_1 + Y_2L_2 + Y_3L_3 = 4\frac{x^2-9x+18}{4} - 9\frac{x^2-8x+12}{3} + 36\frac{x^2-5x+6}{12} = x^2 &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Exemplo 3 ==&lt;br /&gt;
&lt;br /&gt;
Para ilustrar graficamente o método da fórmula de Lagrange, usaremos um exemplo com &amp;lt;math&amp;gt;N=4&amp;lt;/math&amp;gt;. Considerando os quatro pontos &amp;lt;math&amp;gt;(X_1,Y_1) = (-1,5)&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;(X_2,Y_3) = (1,2)&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;(X_3,Y_3) = (-3,5)&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;(X_4,Y_4) = (7,4)&amp;lt;/math&amp;gt;, as equações &amp;lt;math&amp;gt;L_i&amp;lt;/math&amp;gt; ficam&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;L_1 = -\frac{1}{64}(x^3-11x^2+31x-21)&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;L_2 = \frac{1}{24}(x^3-9x^2+11x+21)&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;L_3 = -\frac{1}{32}(x^3-7x^2-x+7)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
e&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;L_4 = \frac{1}{192}(x^3-3x^2-x+3)&amp;lt;/math&amp;gt;.&lt;br /&gt;
 &lt;br /&gt;
O gráfico abaixo mostra os quatro pontos &amp;lt;math&amp;gt;(X_i,Y_i)&amp;lt;/math&amp;gt;, as curvas &amp;lt;math&amp;gt;L_iY_i&amp;lt;/math&amp;gt; e a curva final &amp;lt;math&amp;gt;P(x)&amp;lt;/math&amp;gt;. Lembre-se que &amp;lt;math&amp;gt;P(x)&amp;lt;/math&amp;gt; é a curva gerada pela soma dos polinômios &amp;lt;math&amp;gt;L_iY_i&amp;lt;/math&amp;gt;. Note que a curva &amp;lt;math&amp;gt;L_1Y_1&amp;lt;/math&amp;gt; passa pelo ponto &amp;lt;math&amp;gt;(X_1,Y_1)&amp;lt;/math&amp;gt;, assim como as demais e a curva &amp;lt;math&amp;gt;P(x)&amp;lt;/math&amp;gt; passa por todos os pontos.&lt;br /&gt;
&lt;br /&gt;
[[Imagem:lagrange.png|800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Numericamente  ==&lt;br /&gt;
&lt;br /&gt;
Na prática, a implementação numérica do polinômio de Lagrange é complicada.&lt;br /&gt;
Computacionalmente não é possível fazer um programa geral para interpolação de ordem arbitrária, isto é fazer um programa que, com os N pontos de entrada &amp;lt;math&amp;gt;{X_i,Y_i}&amp;lt;/math&amp;gt;, devolva um polinômio &amp;lt;math&amp;gt;P(x)&amp;lt;/math&amp;gt; interpolador de grau N. Isto envolve computação simbólica (do tipo utilizada em programas proprietários como o Mathematica, Maple, ou livres como Maxima). &lt;br /&gt;
Por outro lado a implementação numérica do método na força bruta envolve um duplo laço de ordem N:&lt;br /&gt;
devem ser somados N termos (os &amp;lt;math&amp;gt;L_i(x)&amp;lt;/math&amp;gt;) onde cada um deles é construído como um produto de N-1 termos; ao todo &amp;lt;math&amp;gt;N^2&amp;lt;/math&amp;gt; cálculos para cada ponto x (isto fica como exercício a partir da fórmula &lt;br /&gt;
geral do &amp;lt;math&amp;gt;P(x)&amp;lt;/math&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
O Algoritmo de Neville [http://www.physics.utah.edu/~detar/phys6720/handouts/interpolation/interpolation/node4.html], [[Implementação do algoritmo de Neville]], é muito útil na realização desta tarefa.Ao final, veremos que o polinômio interpolador de grau n pode ser reconstruído com polinômios de grau n-1. Este processo gera uma fórmula de recorrência,  que é um recurso  bastante comum em algoritmos computacionais. &lt;br /&gt;
&lt;br /&gt;
Para deduzirmos esta fórmula de recorrência, começamos  aproximando cada intervalo por um valor constante. Podemos representar esta aproximação por&lt;br /&gt;
&amp;lt;math&amp;gt;P_1(x)=Y_1,\; P_2(x)=Y_2,\; \cdots\,\; P_N(x)=Y_N&amp;lt;/math&amp;gt;. &lt;br /&gt;
Melhorando a descrição, empregando agora uma aproximação linear em cada intervalo &amp;lt;math&amp;gt;[X_i,\;X_{i+1}]&amp;lt;/math&amp;gt;, denotamos por &amp;lt;math&amp;gt;P_{12}(x),\;P_{23}(x),\; \cdots,\; P_{N-1,N}(x)&amp;lt;/math&amp;gt;, onde &amp;lt;math&amp;gt;P_{i,i+1}(x)\;&amp;lt;/math&amp;gt;é o polinômio que passa exatamente sobre&lt;br /&gt;
&amp;lt;math&amp;gt;(X_i,Y_i)\;&amp;lt;/math&amp;gt;e&amp;lt;math&amp;gt;\;(X_{i+1},Y_{i+1})&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
P_{i,i+1}(x)=\frac{x-X_{i+1}}{X_i-X_{i+1}}Y_i+\frac{x-X_i}{X_{i+1}-X_i}Y_{i+1}\;.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vemos que &amp;lt;math&amp;gt;P_{i, i+1}(x)\;&amp;lt;/math&amp;gt;pode ser escrito como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
P_{i,i+1}(x)=\frac{(x-X_{i+1})P_i(x)-(x-X_i)P_{i+1}(x)}{X_i-X_{i+1}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Isto sugere que há uma relação entre os polinômios de ordem &amp;lt;math&amp;gt;\;n&amp;lt;/math&amp;gt; com os de ordem &amp;lt;math&amp;gt;\;n+1&amp;lt;/math&amp;gt;.&lt;br /&gt;
Para verificar isto, vamos considerar, agora, uma parábola passando exatamente sobre&lt;br /&gt;
&amp;lt;math&amp;gt;(X_i,Y_i)\;,(X_{i+1},Y_{i+1})&amp;lt;/math&amp;gt; e&amp;lt;math&amp;gt;\;(X_{i+2},Y_{i+2})&amp;lt;/math&amp;gt;, que denotaremos por,&amp;lt;math&amp;gt;\;P_{i,i+1,i+2}(x)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
P_{i,i+1,i+2}(x)=\frac{x-X_{i+1}}{X_i-X_{i+1}}\frac{x-X_{i+2}}{X_i    -X_{i+2}}Y_i&lt;br /&gt;
             +\frac{x-X_i}{X_{i+1}-X_i}\frac{x-X_{i+2}}{X_{i+1}-X_{i+2}}Y_{i+1}&lt;br /&gt;
             +\frac{x-X_i}{X_{i+2}-X_i}\frac{x-X_{i+1}}{X_{i+2}-X_{i+1}}Y_{i+2}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Fatorando &amp;lt;math&amp;gt;\;1/(X_i-X_{i+2})&amp;lt;/math&amp;gt; e somando e subtraindo &amp;lt;math&amp;gt;\frac{x-X_i}{X_{i+1}-X_i}(x-X_{i+2})Y_{i+1}&amp;lt;/math&amp;gt;, obtemos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
P_{i,i+1,i+2}(x) =\frac{1}{X_i-X_{i+2}}\left[(x-X_{i+2})P_{i,i+1}(x)&lt;br /&gt;
-F(x)\right]&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
F(x)=(x-X_i)\left[\frac{x-X_{i+1}}{X_{i+2}-X_{i+1}}Y_{i+2}&lt;br /&gt;
-\frac{X_i-X_{i+2}}{X_{i+1}-X_i}\frac{x-X_{i+2}}{X_{i+1}-X_{i+2}}Y_{i+1} &lt;br /&gt;
+\frac{x-X_{i+2}}{X_{i+1}-X_i}Y_{i+1}\right]\;.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note que o último termo desta expressão corresponde àquele que foi subtraído após seu termo de sinal contrário ter&lt;br /&gt;
sido somado à expressão que levou a&amp;lt;math&amp;gt;\;P_{i,i+1}(x)&amp;lt;/math&amp;gt; na equação para&amp;lt;math&amp;gt;\;P_{i,i+1,i+2}(x)&amp;lt;/math&amp;gt;.&lt;br /&gt;
Rearranjando os termos acima, encontramos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
F(x)=(x-X_i)\left[\frac{x-X_{i+2}}{X_{i+1}-X_{i+2}}Y_{i+1}+\frac{x-X_{i+1}}{X_{i+2}-X_{i+1}}Y_{i+2}\right]&lt;br /&gt;
=(x-X_i)P_{i+1,i+2}(x)\;.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Substituindo este resultado na equação para&amp;lt;math&amp;gt;\;P_{i,i+1,i+2}(x)&amp;lt;/math&amp;gt;, obtemos finalmente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
P_{i,i+1,i+2}(x) =\frac{1}{X_i-X_{i+2}}\left[(x-X_{i+2})P_{i,i+1}(x)&lt;br /&gt;
-(x-X_i)P_{i+1,i+2}(x)\right]&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim, notamos que, de fato, há uma relação de recorrência bastante simples entre os polinômios que envolvem&lt;br /&gt;
&amp;lt;math&amp;gt;\;n&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;\;n+1&amp;lt;/math&amp;gt; pontos, cuja forma geral é dada por:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
P_{i,i+1,\cdots,i+k}(x) =\frac{1}{X_i-X_{i+k}}\left[(x-X_{i+k})P_{i,i+1,\cdots,i+k-1}(x)&lt;br /&gt;
-(x-X_i)P_{i+1,i+2,\cdots,i+k}(x)\right]&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Por ser muito mais simples de se implementar numericamente do que a expressão original para &amp;lt;math&amp;gt;\;P(x)&amp;lt;/math&amp;gt;,&lt;br /&gt;
é esta relação de recorrência que é, de fato, utilizada em cálculos numéricos. Os erros cometidos podem ser estimados calculando-se as diferenças entre as diferentes ordens do polinômio:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
D^{(1)}_{k,i}(x)=P_{i,i+1,\cdots,i+k}(x)-P_{i,i+1,\cdots,i+k-1}(x)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
e&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
D^{(2)}_{k,i}(x)=P_{i,i+1,\cdots,i+k}(x)-P_{i+1,i+2,\cdots,i+k}(x)\;.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ao invés de se gerar &amp;lt;math&amp;gt;\;P(x)&amp;lt;/math&amp;gt; a partir da relação de recorrência para &amp;lt;math&amp;gt;P_{i,i+1,\cdots,i+k}(x)&amp;lt;/math&amp;gt;, pode-se utilizar as equações acima e obter relações de recorrência para &amp;lt;math&amp;gt;\;D^{(1)} \mbox{ e } D^{(2)}&amp;lt;/math&amp;gt;. No final, obtemos &amp;lt;math&amp;gt;\;P(x)&amp;lt;/math&amp;gt; a partir destas quantidades. Este desenvolvimento é deixado como exercício.&lt;br /&gt;
&lt;br /&gt;
É importante notar que em nenhum ponto da discussão foi evocada a necessidade dos pontos &amp;lt;math&amp;gt;\;\{X_i\}&amp;lt;/math&amp;gt; serem igualmente espaçados. Portanto, as fórmulas apresentadas aqui podem ser aplicadas em situações bastante gerais.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Como discutido na seção [[Interpolação e extrapolação]], é desaconselhável o uso de polinômios de grau elevado. Por isto, apenas um pequeno subconjunto dos valores tabulados, nas vizinhanças do ponto de interesse &amp;lt;math&amp;gt;\;X&amp;lt;/math&amp;gt;, deve ser empregado.&lt;br /&gt;
Por exemplo, digamos que temos uma tabela com 100 pontos &amp;lt;math&amp;gt;\;\{(X_i,Y_i)\}&amp;lt;/math&amp;gt;. Se desejamos estimar o valor de &amp;lt;math&amp;gt;\;Y&amp;lt;/math&amp;gt; no interior da região &amp;lt;math&amp;gt;[X_1,\; X_N]&amp;lt;/math&amp;gt;, ao invés de construir um polinômio de grau 99, podemos, por exemplo, dividir o espaço em 25 sub-regiões e usar polinômios cúbicos em cada uma delas,&lt;br /&gt;
utilizando apenas &amp;lt;math&amp;gt;(X_{i-1},Y_{i-1}),\; (X_i,Y_i),\; (X_{i+1},Y_{i+1})&amp;lt;/math&amp;gt; e&amp;lt;math&amp;gt;\;(X_{i+2},Y_{i+2})&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Contudo, devemos notar que, embora a interpolação seja contínua nas interfaces das regiões, a continuidade das derivadas 1&amp;lt;sup&amp;gt;a&amp;lt;/sup&amp;gt; e 2&amp;lt;sup&amp;gt;a&amp;lt;/sup&amp;gt; não é garantida. Em situações em que estas propriedades importam, outras aproximações devem ser adotadas (veja, por exemplo, [[Spline cúbico]]).&lt;br /&gt;
&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Ejagnes</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Bisseccao.png&amp;diff=120</id>
		<title>Arquivo:Bisseccao.png</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Bisseccao.png&amp;diff=120"/>
		<updated>2011-10-18T15:10:03Z</updated>

		<summary type="html">&lt;p&gt;Ejagnes: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Ejagnes</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Newtoniteration.gif&amp;diff=119</id>
		<title>Arquivo:Newtoniteration.gif</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Newtoniteration.gif&amp;diff=119"/>
		<updated>2011-10-18T15:09:27Z</updated>

		<summary type="html">&lt;p&gt;Ejagnes: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Ejagnes</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Newton.png&amp;diff=118</id>
		<title>Arquivo:Newton.png</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Newton.png&amp;diff=118"/>
		<updated>2011-10-18T15:08:30Z</updated>

		<summary type="html">&lt;p&gt;Ejagnes: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Ejagnes</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Zeros_de_Fun%C3%A7%C3%B5es&amp;diff=117</id>
		<title>Zeros de Funções</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Zeros_de_Fun%C3%A7%C3%B5es&amp;diff=117"/>
		<updated>2011-10-18T15:06:17Z</updated>

		<summary type="html">&lt;p&gt;Ejagnes: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;                                                                     &lt;br /&gt;
                                                                     &lt;br /&gt;
                                                                     &lt;br /&gt;
                                             &lt;br /&gt;
&amp;lt;!---&lt;br /&gt;
&lt;br /&gt;
---&amp;gt;&lt;br /&gt;
Calcular o zero de uma função significa encontrar  os valores da variável independente &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt; que fazem com que a função &amp;lt;math&amp;gt;f(x_i)&amp;lt;/math&amp;gt;&lt;br /&gt;
tenha o valor zero.&lt;br /&gt;
&lt;br /&gt;
Matematicamente pode ser formalizado assim: &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;x : f(x) = 0\,&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Os &#039;&#039;zeros&#039;&#039; da função &#039;&#039;f&#039;&#039; são também chamados de &#039;&#039;raízes&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Um exemplo simples é achar as raízes da função &amp;lt;math&amp;gt;1/(x + 1) - 2&amp;lt;/math&amp;gt;. &lt;br /&gt;
A simplicidade vem do fato dessa função ter inversa, com o qual a solução pode ser encontrada isolando o x: &amp;lt;math&amp;gt;x = -1/2&amp;lt;/math&amp;gt;&lt;br /&gt;
que é o zero dessa função ou equação.&lt;br /&gt;
&lt;br /&gt;
Outro exemplo clássico são as raízes de uma parábola:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;f(x)=ax^2+bx+c \,&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
da qual existe uma expressão para as raízes (cuja programação é um dos exercícios):&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;x = (-b +- \sqrt{b^2 - 4ac})/2a&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Porem, quando a função é mais complicada, o problema de achar os zeros pode não ter (é o mais comum) &lt;br /&gt;
solução analítica.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vale notar que ao tratar dos &#039;&#039;zeros&#039;&#039; podemos generalizar o conceito para qualquer outro valor.&lt;br /&gt;
Por exemplo, achar &#039;&#039;x&#039;&#039; tal que &amp;lt;math&amp;gt;f(x) = d&amp;lt;/math&amp;gt; é equivalente a achar os zeros de &amp;lt;math&amp;gt;f(x)-d&amp;lt;/math&amp;gt;.&lt;br /&gt;
De outra forma podemos dizer que trata-se do problema &#039;&#039;&#039;inverso:&#039;&#039;&#039; dado o valor da função queremos saber a qual valor da  variável independente ele corresponde.&lt;br /&gt;
&lt;br /&gt;
Numericamente, temos três métodos usuais que serão descritos aqui, os métodos da Iteração Simples, Newton-Raphson e Método da Bisecção.&lt;br /&gt;
&lt;br /&gt;
== Iteração Simples ==&lt;br /&gt;
&lt;br /&gt;
Para o método da iteração simples, utiliza-se uma nova função &amp;lt;math&amp;gt;F(x)&amp;lt;/math&amp;gt; para encontrar-se o zero da função original &amp;lt;math&amp;gt;f(x)&amp;lt;/math&amp;gt;, de modo que se define&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; F(x) = f(x) + x,&amp;lt;/math&amp;gt;&lt;br /&gt;
assim&lt;br /&gt;
:&amp;lt;math&amp;gt; F(x) = x \,\; para \,\; f(x) = 0.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Utilizamos a própria função para definir o valor de &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; nas iterações, tendo que existir um &amp;quot;chute&amp;quot; inicial para o valor &amp;lt;math&amp;gt;x_0&amp;lt;/math&amp;gt;. Assim, a iteração pode ser definida como&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; x_{n+1} = F(x_n) &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Itera-se a equação até atingir-se um valor fixo, ou seja, &amp;lt;math&amp;gt;x_{n+1} = x_n &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
As duas principais destavantagens deste método devem-se ao fato de ele ser mais lento que demais métodos e por existir funções que apresentam raízes &amp;quot;instáveis&amp;quot; de iteração. Ou seja,  são raízes que este método não é capaz de encontrar. &lt;br /&gt;
Para descobrir se haverá raízes instáveis de convergência, utilizamos a condição de convergência do método, perturbando a solução &amp;lt;math&amp;gt;x_{n+1} = x_n = x^*&amp;lt;/math&amp;gt; e expandindo em série de Taylor:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;x^*+\delta = F(x^*+\delta) = F(x^*) + \frac{dF(x^*)}{dx}\delta+ ...&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note que para&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\|\frac{dF(x^*)}{dx}\| \leqslant 1&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
o efeito da perturbação decai, indicando que a raíz &amp;lt;math&amp;gt;x^*&amp;lt;/math&amp;gt; é estável por este método. Ao contrário, se expressão acima for maior do 1, isto implica que uma  pequena perturbação faria com que os valores da função se afastassem do valor de &amp;lt;math&amp;gt; F(x^*) &amp;lt;/math&amp;gt; mesmo se estivéssemos calculando um valor da função em&lt;br /&gt;
&amp;lt;math&amp;gt;x^*+\delta&amp;lt;/math&amp;gt; com &amp;lt;math&amp;gt;\delta&amp;lt;/math&amp;gt; muito pequeno.   Se este for o caso, então o método de iteração simples não consegue encontrar a raiz &lt;br /&gt;
&amp;lt;math&amp;gt;x^*&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Newton-Raphson ==&lt;br /&gt;
&lt;br /&gt;
O método de &#039;&#039;&#039;Newton-Raphson&#039;&#039;&#039; é um procedimento para encontrar zeros de funções de maneira iterativa, assim como o método da iteração simples. Partindo de um ponto qualquer da função vamos ao próximo ponto com deslocamento dado pela derivada no ponto inicial:&lt;br /&gt;
&lt;br /&gt;
[[Image:newton.png|right|frame|Método de Newton-Raphson com &amp;lt;math&amp;gt;x_0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;x_1&amp;lt;/math&amp;gt;.]]&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;f&#039;(x_{n}) = \frac{ f( x_{n} ) - 0 }{ x_{n} - x_{n+1} } = \frac{0 - f(x_{n})}{(x_{n+1} - x_{n})}\,\!&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Desta forma o próximo ponto está dado por:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;x_{n+1} = x_n - \frac{f(x_n)}{f&#039;(x_n)}\,\!&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
e o processo é repetido até a precisão desejada.&lt;br /&gt;
Note que numericamente não temos garantia de achar exatamente a raiz. Devemos fixar um &amp;lt;math&amp;gt;\epsilon&amp;lt;/math&amp;gt;&lt;br /&gt;
que determina a tolerância com que vamos a aceitar o zero. Ou seja quando &amp;lt;math&amp;gt;|f(x)| &amp;lt; \epsilon&amp;lt;/math&amp;gt; paramos a procura.&lt;br /&gt;
&lt;br /&gt;
Por outra parte o método não garante a convergência, isto é, pode acontecer que o processo entre num ciclo infinito&lt;br /&gt;
pipocando de uma lado para outro da raiz, sem poder encontrar uma solução.&lt;br /&gt;
&lt;br /&gt;
Geometricamente, como mostrado na figura ao lado, tendo sido escolhido o ponto &amp;lt;math&amp;gt;x_0&amp;lt;/math&amp;gt;, queremos que o ponto &amp;lt;math&amp;gt;x_1&amp;lt;/math&amp;gt; seja o encontro da reta tangente (ou da derivada) da função no ponto &amp;lt;math&amp;gt;x_0&amp;lt;/math&amp;gt; com a reta das abcissas. Sendo&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;f&#039;(x_0)=tan(\theta)&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
temos que&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;x_0 - x_1 = \frac{f(x_0)}{f&#039;(x_0)}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
A figura abaixo mostra as iterações do método de Newton-Raphson (retirado da Wikipedia [http://en.wikipedia.org/wiki/Newton&#039;s_method])&lt;br /&gt;
&lt;br /&gt;
[[Imagem:newtoniteration.gif|500px|]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bissecção ==&lt;br /&gt;
&lt;br /&gt;
O método da bissecção consiste em utilizar um intervalo de valores de &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; que é sabido que contenha uma raíz. Note que temos que ter uma noção prévia da função para utilizar este método. Definindo um intervalo&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; a \leqslant x \leqslant b &amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
temos a condição &amp;lt;math&amp;gt;f(a)f(b) &amp;lt; 0 &amp;lt;/math&amp;gt;, indicando que há pelo menos um zero contido neste intervalo, ou seja, que a função &amp;quot;corta&amp;quot; o eixo das abcissas, de modo que um valor da função seja maior que zero e outro menor.&lt;br /&gt;
&lt;br /&gt;
Definindo o intervalo inicial &amp;lt;math&amp;gt;[a,b]&amp;lt;/math&amp;gt;, dividimos este por dois, encontrando o valor médio &amp;lt;math&amp;gt;x_m&amp;lt;/math&amp;gt;, dado por&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; x_m = a + \frac{b-a}{2} = \frac{a+b}{2}.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note que estamos com dois intervalos de &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt;, primeiro &amp;lt;math&amp;gt;[a,x_m]&amp;lt;/math&amp;gt; e segundo &amp;lt;math&amp;gt;[x_m,b]&amp;lt;/math&amp;gt;. Agora precisamos descobrir em qual desses dois intervalos há uma raíz. Para isso calculamos o produto das funções nos pontos específicos. Se &amp;lt;math&amp;gt;f(a)f(x_m)&amp;lt;0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;f(x_m)f(b)&amp;gt;0&amp;lt;/math&amp;gt;, continuamos com o primeiro intervalo (que contém um raíz), caso contrário com o segundo. Prosseguindo com o algoritmo, dividimos o novo intervalo que contém a raiz novamente&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; x_{m2} = \frac{x_m+a}{2}.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Repetimos o processo anterior, verificando em qual dos dois novos intervalos, &amp;lt;math&amp;gt;[a,x_{m2}]&amp;lt;/math&amp;gt; ou &amp;lt;math&amp;gt;[x_{m2},x_m]&amp;lt;/math&amp;gt; está a raiz.&lt;br /&gt;
&lt;br /&gt;
O algoritmo é repetido até encontrarmos a raíz, com a precisão &amp;lt;math&amp;gt;\eta&amp;lt;/math&amp;gt; ou seja, até que &amp;lt;math&amp;gt;-\eta^2 \leqslant f(a)f(b) \leqslant 0&amp;lt;/math&amp;gt;. O ideal é ao final ficar com o valor intermediário das funções.&lt;br /&gt;
&lt;br /&gt;
Abaixo há uma figura com duas iterações do método da bissecção, assim como descrito acima.&lt;br /&gt;
&lt;br /&gt;
[[Imagem:bisseccao.png|800px|]]&lt;br /&gt;
&lt;br /&gt;
== Programação ==&lt;br /&gt;
Para programá-lo em FORTRAN o mais prático é definir como funções tanto a própria função como a sua derivada.&lt;br /&gt;
Sejam elas f(x) e g(x) respectivamente, o trecho de código com a implementação do método fica:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
x = x0&lt;br /&gt;
Do&lt;br /&gt;
   if (g(x)==0) then&lt;br /&gt;
     print*, &amp;quot;em x=&amp;quot;, x, &amp;quot;a derivada é zero&amp;quot;&lt;br /&gt;
   else&lt;br /&gt;
     x = x - f(x)/g(x)&lt;br /&gt;
     if (abs(f(x)) &amp;lt; eps) then&lt;br /&gt;
        print*, &amp;quot;raiz em x=&amp;quot;, x, &amp;quot;f(x)=&amp;quot;, f(x)&lt;br /&gt;
        exit&lt;br /&gt;
     endif&lt;br /&gt;
   endif&lt;br /&gt;
endo&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Plano Complexo ==&lt;br /&gt;
O método pode ser estendido a funções f(z) onde z, e f(z) pertencem a C (domínio dos números complexos).&lt;br /&gt;
Dessa forma todas as raízes de um polinômio podem em princípio ser encontradas.&lt;br /&gt;
O método tem a mesma formulação teórica. Só muda o programa pois precisamos usar complexos.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Complex f, z&lt;br /&gt;
Real x,y&lt;br /&gt;
Read*, x,y&lt;br /&gt;
&lt;br /&gt;
z = CMPLX(x,y) ! função FORTRAN intrínseca para converter un par x,y de variáveis reais numa variável complexa&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
if (abs(f(z)&amp;lt;eps) print*, z&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ejagnes</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Zeros_de_Fun%C3%A7%C3%B5es&amp;diff=116</id>
		<title>Zeros de Funções</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Zeros_de_Fun%C3%A7%C3%B5es&amp;diff=116"/>
		<updated>2011-10-18T15:00:22Z</updated>

		<summary type="html">&lt;p&gt;Ejagnes: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;O problema aqui é encontrar os valores da variável independente &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt; que fazem com a função &amp;lt;math&amp;gt;f(x_i)&amp;lt;/math&amp;gt;&lt;br /&gt;
tenha o valor zero.&lt;br /&gt;
&lt;br /&gt;
Matematicamente pode ser formalizado assim: &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;x : f(x) = 0\,&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Os &#039;&#039;zeros&#039;&#039; da função &#039;&#039;f&#039;&#039; são também chamados de &#039;&#039;raízes&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Um exemplo simples é achar as raízes da função &amp;lt;math&amp;gt;1/(x + 1) - 2&amp;lt;/math&amp;gt;. &lt;br /&gt;
A simplicidade vem do fato dessa função ter inversa, com o qual a solução pode ser encontrada isolando o x: &amp;lt;math&amp;gt;x = -1/2&amp;lt;/math&amp;gt;&lt;br /&gt;
que é o zero dessa função ou equação.&lt;br /&gt;
&lt;br /&gt;
Outro exemplo clássico são as raízes de uma parábola:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;f(x)=ax^2+bx+c \,&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
da qual existe uma expressão para as raízes (cuja programação é um dos exercícios):&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;x = (-b +- \sqrt{b^2 - 4ac})/2a&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Porem, quando a função é mais complicada, o problema de achar os zeros pode não ter (é o mais comum) &lt;br /&gt;
solução analítica.&lt;br /&gt;
&lt;br /&gt;
Vale notar que ao tratar dos &#039;&#039;zeros&#039;&#039; podemos generalizar o conceito para qualquer outro valor.&lt;br /&gt;
Por exemplo, achar &#039;&#039;x&#039;&#039; tal que &amp;lt;math&amp;gt;f(x) = d&amp;lt;/math&amp;gt; é equivalente a achar os zeros de &amp;lt;math&amp;gt;f(x)-d&amp;lt;/math&amp;gt;.&lt;br /&gt;
De outra forma podemos dizer que trata-se do problema &#039;&#039;&#039;inverso:&#039;&#039;&#039; dado o valor da função queremos saber de que valor da variável independente partiu.&lt;br /&gt;
&lt;br /&gt;
Numericamente, temos três métodos usuais que serão descritos aqui, os métodos da Iteração Simples, Newton-Raphson e Método da Bisecção.&lt;br /&gt;
&lt;br /&gt;
== Iteração Simples ==&lt;br /&gt;
&lt;br /&gt;
Para o método da iteração simples, utiliza-se uma nova função &amp;lt;math&amp;gt;F(x)&amp;lt;/math&amp;gt; para encontrar-se o zero da função original &amp;lt;math&amp;gt;f(x)&amp;lt;/math&amp;gt;, de modo que se define&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; F(x) = f(x) + x,&amp;lt;/math&amp;gt;&lt;br /&gt;
assim&lt;br /&gt;
:&amp;lt;math&amp;gt; F(x) = x \,\; para \,\; f(x) = 0.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Utilizamos a própria função para definir o valor de &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; nas iterações, tendo que existir um &amp;quot;chute&amp;quot; inicial para o valor &amp;lt;math&amp;gt;x_0&amp;lt;/math&amp;gt;. Assim, a iteração pode ser definida como&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; x_{n+1} = F(x_n) &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Itera-se a equação até atingir-se um valor fixo, ou seja, &amp;lt;math&amp;gt;x_{n+1} = x_n &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
As duas principais destavantagens deste método devem-se ao fato de ele ser mais lento que demais métodos e quando utlizados para encontrar raízes &amp;quot;instáveis&amp;quot; de iteração. Para descobrir se haverá raizes instáveis de convergência, utilizamos a condição de convergência do método, perturbando a solução &amp;lt;math&amp;gt;x_{n+1} = x_n = x^*&amp;lt;/math&amp;gt; e expandindo em série de Taylor:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;x^*+\delta = F(x^*+\delta) = F(x^*) + \frac{dF(x^*)}{dx}\delta+ ...&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note que para&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\|\frac{dF(x^*)}{dx}\| \leqslant 1&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
o efeito da perturbação decai, indicando que a raíz &amp;lt;math&amp;gt;x^*&amp;lt;/math&amp;gt; é estável por este método.&lt;br /&gt;
&lt;br /&gt;
== Newton-Raphson ==&lt;br /&gt;
&lt;br /&gt;
O método de &#039;&#039;&#039;Newton-Raphson&#039;&#039;&#039; é um procedimento para encontrar zeros de funções de maneira iterativa, assim como o método da iteração simples. Partindo de um ponto qualquer da função vamos ao próximo ponto com deslocamento dado pela derivada no ponto inicial:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;f&#039;(x_{n}) = \frac{ f( x_{n} ) - 0 }{ x_{n} - x_{n+1} } = \frac{0 - f(x_{n})}{(x_{n+1} - x_{n})}\,\!&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Desta forma o próximo ponto está dado por:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;x_{n+1} = x_n - \frac{f(x_n)}{f&#039;(x_n)}\,\!&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
e o processo é repetido até a precisão desejada.&lt;br /&gt;
Note que numericamente não temos garantia de achar exatamente a raiz. Devemos fixar um &amp;lt;math&amp;gt;\epsilon&amp;lt;/math&amp;gt;&lt;br /&gt;
que determina a tolerância com que vamos a aceitar o zero. Ou seja quando&lt;br /&gt;
&amp;lt;math&amp;gt;|f(x)| &amp;lt; \epsilon&amp;lt;/math&amp;gt; paramos a procura.&lt;br /&gt;
&lt;br /&gt;
Por outra parte o método não garante a convergência, isto é, pode acontecer que o processo entre num ciclo infinito&lt;br /&gt;
pipocando de uma lado para outro da raiz, sem poder encontrar uma solução.&lt;br /&gt;
&lt;br /&gt;
== Programação ==&lt;br /&gt;
Para programá-lo em FORTRAN o mais prático é definir como funções tanto a própria função como a sua derivada.&lt;br /&gt;
Sejam elas f(x) e g(x) respectivamente, o trecho de código com a implementação do método fica:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
x = x0&lt;br /&gt;
Do&lt;br /&gt;
   if (g(x)==0) then&lt;br /&gt;
     print*, &amp;quot;em x=&amp;quot;, x, &amp;quot;a derivada é zero&amp;quot;&lt;br /&gt;
   else&lt;br /&gt;
     x = x - f(x)/g(x)&lt;br /&gt;
     if (abs(f(x)) &amp;lt; eps) then&lt;br /&gt;
        print*, &amp;quot;raiz em x=&amp;quot;, x, &amp;quot;f(x)=&amp;quot;, f(x)&lt;br /&gt;
        exit&lt;br /&gt;
     endif&lt;br /&gt;
   endif&lt;br /&gt;
endo&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Plano Complexo ==&lt;br /&gt;
O método pode ser estendido a funções f(z) onde z, e f(z) pertencem a C (domínio dos números complexos).&lt;br /&gt;
Dessa forma todas as raízes de um polinômio podem em princípio ser encontradas.&lt;br /&gt;
O método tem a mesma formulação teórica. Só muda o programa pois precisamos usar complexos.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Complex f, z&lt;br /&gt;
Real x,y&lt;br /&gt;
Read*, x,y&lt;br /&gt;
&lt;br /&gt;
z = CMPLX(x,y) ! função FORTRAN intrínseca para converter un par x,y de variáveis reais numa variável complexa&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
if (abs(f(z)&amp;lt;eps) print*, z&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ejagnes</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Minquadquadratico.png&amp;diff=115</id>
		<title>Arquivo:Minquadquadratico.png</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Minquadquadratico.png&amp;diff=115"/>
		<updated>2011-10-18T14:57:22Z</updated>

		<summary type="html">&lt;p&gt;Ejagnes: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Ejagnes</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Minquadlinear.png&amp;diff=114</id>
		<title>Arquivo:Minquadlinear.png</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Minquadlinear.png&amp;diff=114"/>
		<updated>2011-10-18T14:57:07Z</updated>

		<summary type="html">&lt;p&gt;Ejagnes: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Ejagnes</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=M%C3%ADnimos_Quadrados&amp;diff=113</id>
		<title>Mínimos Quadrados</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=M%C3%ADnimos_Quadrados&amp;diff=113"/>
		<updated>2011-10-18T14:56:23Z</updated>

		<summary type="html">&lt;p&gt;Ejagnes: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!---&lt;br /&gt;
---&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Este o nome que se da ao ajuste ou &#039;&#039;fitting&#039;&#039; de uma função (polinômio) a um conjunto de dados.&lt;br /&gt;
&lt;br /&gt;
Se &amp;lt;math&amp;gt;(X_i, Y_i)&amp;lt;/math&amp;gt; com &amp;lt;math&amp;gt;i=1, N&amp;lt;/math&amp;gt; representam o conjunto de dados (N) obtidos de um experimento (instrumento) ou &lt;br /&gt;
de uma observação (por exemplo, em pesquisa de opinião ou censo) ou de uma simulação numérica.&lt;br /&gt;
E se suspeitamos que existe uma correlação entre os X (variável independente ou de entrada, controlada pelo experimento)&lt;br /&gt;
e os Y (cuja dependência com X queremos testar), primeiro colocamos os pontos num gráfico para ver se o conjunto forma&lt;br /&gt;
uma nuvem dispersa (quando não existe correlação aparente, isto é X e Y não conformam uma função), ou se existe &lt;br /&gt;
correlação (os pontos parecem estar sobre alguma curva). &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Equação linear=&lt;br /&gt;
&lt;br /&gt;
[[Image:minquadlinear.png|right|frame|Exemplo de ajuste linear para um conjunto de pontos.]]&lt;br /&gt;
&lt;br /&gt;
Sendo que um experimento foi realizado e temos &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; pontos, como descrito acima, e consideramos que um ajuste linear é coerente, uma reta deve ser construída para melhor representar estes pontos. Como mostrado na figura a baixo, para cada ponto, teremos um erro &amp;lt;math&amp;gt;\epsilon_i&amp;lt;/math&amp;gt;, que é definido como a distância entre o ponto experimental e a curva (reta neste caso) teórica que desejamos ajustar, ou seja,&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\epsilon_i = Y_i - f(X_i)&amp;lt;/math&amp;gt; ,&lt;br /&gt;
&lt;br /&gt;
onde&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!---&lt;br /&gt;
:&amp;lt;math&amp;gt;f(x) = \alpha_0 + \alpha_1x + \alpha_2x^2 + \alpha_3x^3 + .... + \alpha_nx^n&amp;lt;/math&amp;gt;&lt;br /&gt;
---&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;f(x) = \alpha_0 + \alpha_1x  &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
é a função que representa a curva de melhor ajuste. &lt;br /&gt;
&lt;br /&gt;
Para encontrar a reta que melhor se ajusta aos dados experimentais, desejamos minimizar o erro &amp;lt;math&amp;gt;\epsilon&amp;lt;/math&amp;gt;. Como o erro pode ter tanto valores negativos quanto positivos, o que importa é minimizar o valor absoluto  de &amp;lt;math&amp;gt;\epsilon_i&amp;lt;/math&amp;gt;. Isto poderia ser feito minimizando módulo de &amp;lt;math&amp;gt;\epsilon_i&amp;lt;/math&amp;gt;, mas como a função módulo tem uma descontinuidade, é mais fácil minimizar o quadrado do erro. Para isto, definimos: &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;S = \sum_{i=1}^N \epsilon_i^2&amp;lt;/math&amp;gt;,&lt;br /&gt;
assim&lt;br /&gt;
:&amp;lt;math&amp;gt;S = \sum_{i=1}^N [Y_i - f(X_i)]^2 = \sum_{i=1}^N [Y_i - f(X_i;\alpha_0,\alpha_1)]^2 &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Para obter a melhor reta que se ajusta aos dados experimentais, temos que minimizar &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; em relação às constantes da função &amp;lt;math&amp;gt;(\alpha_0,\alpha_1)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\frac{\partial S}{\partial \alpha_i} = 0&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Como a reta possui apenas dois coeficientes, para o ajuste linear temos duas equações:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\frac{\partial S}{\partial \alpha_0} = \frac{\partial}{\partial \alpha_0}\sum_{i=1}^N [Y_i - (\alpha_0 + \alpha_1X_i)]^2 = 0&amp;lt;/math&amp;gt;&lt;br /&gt;
e&lt;br /&gt;
:&amp;lt;math&amp;gt;\frac{\partial S}{\partial \alpha_1} = \frac{\partial}{\partial \alpha_1}\sum_{i=1}^N [Y_i - (\alpha_0 + \alpha_1X_i)]^2 = 0&amp;lt;/math&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
Derivando as equações acima, temos que&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\sum_{i=1}^N Y_i - \sum_{i=1}^N \alpha_0 - \sum_{i=1}^N \alpha_1X_i = 0&amp;lt;/math&amp;gt;&lt;br /&gt;
e&lt;br /&gt;
:&amp;lt;math&amp;gt;\sum_{i=1}^N Y_iX_i - \sum_{i=1}^N \alpha_0X_i - \sum_{i=1}^N \alpha_1X_i^2 = 0&amp;lt;/math&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
Assim,&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\alpha_0\underbrace{\sum_{i=1}^N 1}_N + \alpha_1\underbrace{\sum_{i=1}^N X_i}_X = \underbrace{\sum_{i=1}^N Y_i}_Y &amp;lt;/math&amp;gt;&lt;br /&gt;
e&lt;br /&gt;
:&amp;lt;math&amp;gt;\alpha_0\underbrace{\sum_{i=1}^N X_i}_X + \alpha_1\underbrace{\sum_{i=1}^N X_i^2}_{X^2} = \underbrace{\sum_{i=1}^N Y_iX_i}_{YX}&amp;lt;/math&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
Lembre-se de que os valores &amp;lt;math&amp;gt;X_i&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;Y_i&amp;lt;/math&amp;gt; são conhecidos (são dados do problema). Desse modo, terminamos com um sistema linear para resolver, que na notação matricial fica&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\begin{pmatrix}N &amp;amp; X \\ X &amp;amp; X^2\end{pmatrix} \begin{pmatrix} \alpha_0 \\ \alpha_1 \end{pmatrix} = \begin{pmatrix} Y \\ YX \end{pmatrix}&amp;lt;/math&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cuidado com o fato que &amp;lt;math&amp;gt;(X^2 \neq X*X)&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;(YX \neq Y*X)&amp;lt;/math&amp;gt;. Após construir a matriz, resolva com o método que mais lhe agrade (ha diversos métodos de solução de sistemas lineares, tais como a Regra de Cramer ou a eliminação Gaussiana).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Equação quadrática=&lt;br /&gt;
&lt;br /&gt;
[[Image:minquadquadratico.png|right|frame|Exemplo de ajuste quadrático para um conjunto de pontos.]]&lt;br /&gt;
&lt;br /&gt;
Utilizando o mesmo método descrito para um ajuste linear, considerando que o melhor ajuste para um conjunto de pontos seja uma curva proveniente de função quadrática, temos que a função é dada por&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;f(x) = \alpha_0 + \alpha_1x + \alpha_2x^2&amp;lt;/math&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
Desse modo, a soma do quadrado do erro fica&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;S = \sum_{i=1}^N \epsilon_i^2 = \sum_{i=1}^N [Y_i - (\alpha_0 + \alpha_1X_i + \alpha_2X_i^2)]^2&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Após algumas contas, como feito na seção anterior, temos o sistema linear de 3 equações e 3 incógnitas para resolver:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\begin{pmatrix} N &amp;amp; X &amp;amp; X^2 \\ X &amp;amp; X^2 &amp;amp; X^3 \\ X^2 &amp;amp; X^3 &amp;amp; X^4 \end{pmatrix} \begin{pmatrix} \alpha_0 \\ \alpha_1 \\ \alpha_2 \end{pmatrix} = \begin{pmatrix} Y \\ YX \\ YX^2 \end{pmatrix} &amp;lt;/math&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
Fique atento ao fato de que&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;X = \sum_{i=1}^N X_i\, , \, Y = \sum_{i=1}^N Y_i \, , \, X^2 = \sum_{i=1}^N X_i^2 \, , \, X^3 = \sum_{i=1}^N X_i^3 \, , \, X^4 = \sum_{i=1}^N X_i^4 \, , \, YX = \sum_{i=1}^N Y_iX_i \,\, e \,\, YX^2 = \sum_{i=1}^N Y_iX_i^2&amp;lt;/math&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Polinômio de grau n=&lt;br /&gt;
&lt;br /&gt;
Generalizando o procedimento acima, apresentado para polinômios de grau 1 e 2, podemos ajustar um conjunto de pontos com um polinômio de um grau específico &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt;. Assim, a função será descrita por&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;f(x) = \alpha_0 + \alpha_1x + \alpha_2x^2 + \alpha_3x^3 + ... + \alpha_nx^n&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
e a soma dos quadrados do erro é dada por&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;S = \sum_{i=1}^N \epsilon_i^2 = \sum_{i=1}^N [Y_i - f(X_i;\alpha_0,\alpha_1,...,\alpha_n)]^2&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Ao final do procedimento, teremos um sistema linear de &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; equações e &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; incógnitas para resolver. O resultado deste sistema são os coeficientes :&amp;lt;math&amp;gt;\alpha_0, \alpha_1, \alpha_2.. \alpha_n&amp;lt;/math&amp;gt; que compõem o polinômio que melhor se ajusta aos dados experimentais.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\begin{pmatrix}N &amp;amp; X &amp;amp; X^2 &amp;amp; \dots &amp;amp; X^n \\ X &amp;amp; X^2 &amp;amp; X^3 &amp;amp; \dots &amp;amp; X^{n+1} \\ X^2 &amp;amp; X^3 &amp;amp; X^4 &amp;amp; \dots &amp;amp; X^{n+2} \\ \vdots &amp;amp; \vdots &amp;amp; \vdots &amp;amp; \, &amp;amp; \vdots \\ X^n &amp;amp; X^{n+1} &amp;amp; X^{n+2} &amp;amp; \dots &amp;amp; X^{2n}\end{pmatrix} \begin{pmatrix} \alpha_0 \\ \alpha_1 \\ \alpha_2 \\ \vdots \\ \alpha_n \end{pmatrix} = \begin{pmatrix} Y \\ YX \\ YX^2 \\ \vdots \\ YX^n \end{pmatrix}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Outros tipos de funções=&lt;br /&gt;
&lt;br /&gt;
Dependendo do tipo de experimento, podem haver outras relações entre os pontos, como funções exponenciais.&lt;br /&gt;
&lt;br /&gt;
==Exponencial 1==&lt;br /&gt;
&lt;br /&gt;
Se os dados de um experimento se ajustarem bem  a uma função exponencial do tipo:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;f(x) = \alpha_1 e^{-\alpha_2x} \, , \, \, \, \alpha_1\, , \, \alpha_2 &amp;gt; 0 &amp;lt;/math&amp;gt; ,&lt;br /&gt;
&lt;br /&gt;
definimos uma nova  função :&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;f_2(x) = \ln(f(x)) = \ln(\alpha_1 e^{-\alpha_2 x}) = \ln(\alpha_1) - \alpha_2 x&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Assim, recaímos no problema do ajuste linear recém visto: &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;f_2(x) = c_1 + c_2x&amp;lt;/math&amp;gt;, com &amp;lt;math&amp;gt; c_1 = \ln(\alpha_1) &amp;lt;/math&amp;gt; e  &amp;lt;math&amp;gt; c_2 = - \alpha_2&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Exponencial 2==&lt;br /&gt;
&lt;br /&gt;
Se a função exponencial for do tipo:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;f(x) = \alpha_1 \alpha_2^x&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
supondo &amp;lt;math&amp;gt;f(x)&amp;gt;0&amp;lt;/math&amp;gt;, definimos:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;f_2(x) = \ln(f(x)) = \ln(\alpha_1) + x\ln(\alpha_2)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Assim, como no caso anterior, voltamos para o problema de ajuste linear:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;f_2(x) = c_1 + c_2x&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
com &amp;lt;math&amp;gt; c_1 = \ln(\alpha_1) &amp;lt;/math&amp;gt; e  &amp;lt;math&amp;gt; c_2=\ln(\alpha_2)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Algébrica==&lt;br /&gt;
&lt;br /&gt;
Se a função for do tipo:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;f(x) = \alpha_1 x^{\alpha_2}&amp;lt;/math&amp;gt; ,&lt;br /&gt;
&lt;br /&gt;
com &amp;lt;math&amp;gt;f(x)&amp;gt;0&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;x&amp;gt;0&amp;lt;/math&amp;gt;, definimos:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;f_2(x) = \ln(f(x)) = \ln(\alpha_1) + \alpha_2\ln(x)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
e assim&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;f_2(x) = c_1 + c_2\ln(x)&amp;lt;/math&amp;gt; ,&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;c_1 = \ln(\alpha_1)&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;c_2 = \alpha_2&amp;lt;/math&amp;gt;. Note também que os valores de x devem ser transformados em &amp;lt;math&amp;gt;\ln(x)&amp;lt;/math&amp;gt; para ajustar os pontos.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
=Código FORTRAN=&lt;br /&gt;
A seguir vemos uma possível implementação do método em linguagem F90.&amp;lt;br&amp;gt;&lt;br /&gt;
Observem a simplicidade do mesmo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 ! programa fortran para ajuste linear de conjunto de dados&lt;br /&gt;
 Implicit none&lt;br /&gt;
 Real :: xi,yi, x,y,xy,x2&lt;br /&gt;
 Real :: det,a,b&lt;br /&gt;
&lt;br /&gt;
 n = 0;  x = 0;  y = 0;  xy = 0;  x2 = 0&lt;br /&gt;
 Do&lt;br /&gt;
    Read(*,*,end=100) xi,yi&lt;br /&gt;
    n = n + 1                          ! soma do numero de pontosd&lt;br /&gt;
    x  = x  + xi;      y =  y + yi     ! somatorio dos x e y&lt;br /&gt;
    x2 = x2 + xi**2;  xy = xy + xi*y   ! somatorio dos x**2 e x*y &amp;lt;- cuidado ha um erro aqui (compila mas ...&lt;br /&gt;
 End Do&lt;br /&gt;
&lt;br /&gt;
 100 det = n*x2 - x**2&lt;br /&gt;
 a =  y*x2 - xy*x / det  ! &amp;lt;- outro erro aqui&lt;br /&gt;
 b = ...          / det  !    fica como exercicio&lt;br /&gt;
&lt;br /&gt;
 print*, &#039;a=&#039;, a, &#039;b=&#039;, b&lt;br /&gt;
 end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=Ajuste ponderado=&lt;br /&gt;
Dependendo da situação, convém fazer um ajuste levando em conta o erro associado a cada ponto, i.e., atribuindo maior peso para pontos com um erro baixo e menor peso para os pontos onde o erro é sabidamente maior.Ou seja, se definirmos &amp;lt;math&amp;gt;w_i&amp;lt;/math&amp;gt; como o peso associado ao ponto &amp;lt;math&amp;gt;(X_i,Y_i)&amp;lt;/math&amp;gt;, gostaríamos que ele seja maior quanto menor for o erro associado a este ponto.&lt;br /&gt;
Se &amp;lt;math&amp;gt;S_{y_i}&amp;lt;/math&amp;gt; é o erro associado a este ponto, e considerando que o ajuste proposto é tal que minimiza a distância quadrática, podemos definir então &amp;lt;math&amp;gt;w_i&amp;lt;/math&amp;gt; como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;w_i=S_{y_i}^{-2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E a variável &amp;lt;math&amp;gt;\chi&amp;lt;/math&amp;gt;, para o cálculo do ajuste ponderado, será dada por:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\chi = \sum_{i=1}^N (Y_i - a - b X_i)^{2}w_i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicando o mesmo procedimento anterior para minimizar &amp;lt;math&amp;gt; \chi &amp;lt;/math&amp;gt;, obtemos as equações&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \begin{bmatrix}&lt;br /&gt;
a[w] + b[Xw]   &amp;amp; = &amp;amp;[Yw] \\&lt;br /&gt;
a[Xw] + b[X^2w] &amp;amp; = &amp;amp; [XYw] &lt;br /&gt;
\end{bmatrix}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E, portanto, os valores de &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; são:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\Delta = [w][X^2w] - [Xw]^2&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;a = [Yw][X^2w] - [XYw][Xw] / \Delta&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;b = [w][XYw]  -  [Xw][Yw] / \Delta&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Erro dos coeficientes=&lt;br /&gt;
Vimos como obter os coeficientes (a e b para uma reta) do ajuste de um conjunto de dados.&amp;lt;br /&amp;gt; &lt;br /&gt;
Também como fazer esse ajuste quando os erros na variável dependente y não são todos iguais.&amp;lt;br /&amp;gt;&lt;br /&gt;
Mas como saber se esses coeficientes são &amp;quot;bons&amp;quot;. Ou seja, que margem de erro eles tem.&amp;lt;br /&amp;gt;&lt;br /&gt;
Intuitivamente sabemos que quanto maior seja a dispersão dos &amp;lt;math&amp;gt;y_i&amp;lt;/math&amp;gt; em volta&lt;br /&gt;
da curva do ajuste, maior será nossa incerteza sobre os coeficientes.&lt;br /&gt;
&lt;br /&gt;
Vamos ver como traduzir isso de forma quantitativa. Voltando as expressões dos coeficientes a e b,&lt;br /&gt;
eles são funções de &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;y_i&amp;lt;/math&amp;gt;, onde só os segundos são considerados como &lt;br /&gt;
fonte de erro. Assim para ver como o erro neles propaga-se para os coeficientes, escrevemos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;a = a(y_i) \Rightarrow \frac{\partial a}{\partial y_i} = \frac{1}{\Delta} \frac{\partial }{\partial y_i} \left\{[Yw][X^2w] - [XYw][Xw]\right\}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{\partial a}{\partial y_i} = \frac{1}{\Delta}\left\{ w_i[X^2w] - x_i w_i [Xw]\right\}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
pois só os termos com y contribuem para a derivada. e como os &amp;lt;math&amp;gt;y_i&amp;lt;/math&amp;gt; aparecem somados, ao derivar respeito do i-esimo&lt;br /&gt;
sobra apenas o que multiplica ele&lt;br /&gt;
&lt;br /&gt;
Para incluir o efeito do erro de cada y_i deveriamos somar i de 1 a N, mas como o erro pode ser para mais o menos&lt;br /&gt;
fazemos uma media quadrática deles:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\Delta a = \sqrt{\sum_{i=1}^N \left( \frac{\partial a}{\partial y_i} \Delta y_i \right)^2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde:&lt;br /&gt;
&amp;lt;math&amp;gt;\left(\frac{\partial a}{\partial y_i}\Delta y_i \right)^2 = \frac{1}{\Delta^2} \left\{ w_i^2[X^2w]^2 + x_i^2 w_i^2 [Xw]^2 - 2w_i[X^2w] x_i w_i [Xw]\right\}w_i^{-1}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
o somatório fica:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{1}{\Delta^2} \sum_{i=1}^N \left(w_i[X^2w]^2 + x_i^2 w_i [Xw]^2 - 2 [X^2w] x_i w_i [Xw]\right) = &lt;br /&gt;
\frac{1}{\Delta^2} \left([w][X^2w]^2 + [X^2w][Xw]^2 - 2 [X^2w][Xw][Xw]\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
e com mais algumas simplificações chegamos a simples relação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\Delta a = \sqrt{\frac{[X^2w]}{\Delta}}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Analogamente para o b (que resulta ser mais fácil), se chega a:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\Delta b = \sqrt{\frac{[w]}{\Delta}}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Podemos interpretar essa expressões no caso sem ponderar, ou seja quando todos os erros são iguais:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;w=1/(\Delta y)^2&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\Rightarrow \Delta = w^2 (N[X^2] - [X]^2)= (w N \sigma)^2&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;\sigma^2 = &amp;lt;x^2&amp;gt; - &amp;lt;x&amp;gt;^2&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
resultando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\Delta a = \Delta y \sqrt{\frac{&amp;lt;x^2&amp;gt;}{N\sigma^2}}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\Delta b = \Delta y \sqrt{\frac{1}{N\sigma^2}}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ou seja quanto maior o número e mais espalhadas no eixo X as medidas melhor&lt;/div&gt;</summary>
		<author><name>Ejagnes</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Integra%C3%A7%C3%A3o_Num%C3%A9rica&amp;diff=112</id>
		<title>Integração Numérica</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Integra%C3%A7%C3%A3o_Num%C3%A9rica&amp;diff=112"/>
		<updated>2011-10-18T14:18:21Z</updated>

		<summary type="html">&lt;p&gt;Ejagnes: /* Cálculo Numérico */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:integral.jpg|thumb|right|A integração numérica consiste em achar a aproximação numérica para o valor de &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Integração numérica&#039;&#039;&#039; é um termo amplo que abrange até a integração de equações diferenciais como é discutido&lt;br /&gt;
em Métodos Computacionais B. Aqui nos referimos exclusivamente ao cálculo numérico da &#039;&#039;&#039;integral definida&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; S = \int_{a}^{b} f(x) dx&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O termo &#039;&#039;&#039;definida&#039;&#039;&#039;, quer dizer que a integral se faz entre limites definidos, no caso &#039;&#039;&#039;a&#039;&#039;&#039; e &#039;&#039;&#039;b&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
O interesse de fazer esse cálculo numericamente se deve a:&lt;br /&gt;
&lt;br /&gt;
# existência de funções contínuas sem &#039;&#039;&#039;primitiva,&#039;&#039;&#039; o que inviabiliza a conta analítica.&lt;br /&gt;
# funções descontinuas ou definidas por trechos mas para as quais a integral não existe (no fundo é a falta de uma primitiva)&lt;br /&gt;
# funções (ou tabelas) provenientes de experimentos&lt;br /&gt;
# funções continuas e com primitiva de representação simbólica, porem de difícil avaliação na prática (mais difícil que avaliar a própria função)&lt;br /&gt;
 &lt;br /&gt;
== Definição ==&lt;br /&gt;
&lt;br /&gt;
Revisemos o conceito de &#039;&#039;&#039;integral&#039;&#039;&#039; do cálculo:&lt;br /&gt;
A &#039;&#039;&#039;integral&#039;&#039;&#039; definida de uma função f(x) no intervalo [a, b] se define como:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;S = \int_a^b f(x)\, dx = \lim_{N\to\infty} \sum_{i=0}^{N} f(x_i) \Delta x &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A integral de f(x) pode ser entendida como a soma de pequenos retângulos de base dx e altura f(x), onde o produto f(x) dx é a área deste retângulo.&amp;lt;br&amp;gt;&lt;br /&gt;
A soma de todas estas pequenas áreas, ou áreas infinitesimais, fornece a área total abaixo da curva.&amp;lt;br&amp;gt;&lt;br /&gt;
Mais precisamente podemos dizer que a integral acima é o valor limite da soma:&lt;br /&gt;
: &amp;lt;math&amp;gt; \sum_{i=0}^{N} f(x_i) \Delta x. &amp;lt;/math&amp;gt; &lt;br /&gt;
onde:&lt;br /&gt;
:&amp;lt;math&amp;gt;\Delta x = \frac{b-a}{N}&amp;lt;/math&amp;gt; &lt;br /&gt;
é o comprimento dos pequenos intervalos nos quais dividimos o intervalo (b-a), &amp;lt;math&amp;gt;f(x_i)&amp;lt;/math&amp;gt; &lt;br /&gt;
é o valor da função em algum ponto deste intervalo.&amp;lt;br&amp;gt;&lt;br /&gt;
Quando &amp;lt;math&amp;gt;N \to \infty&amp;lt;/math&amp;gt; o valor da soma acima é igual a área abaixo da curva.&lt;br /&gt;
&lt;br /&gt;
A integral também é conhecida como antiderivada: &lt;br /&gt;
:&amp;lt;math&amp;gt; \int f(x)dx = F(x)  \Leftrightarrow \frac{dF(x)}{dx}= f(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
Relembremos porque:&lt;br /&gt;
&lt;br /&gt;
== Teorema Fundamental do Cálculo ==&lt;br /&gt;
&lt;br /&gt;
Se resolvermos a integral acima entre os limites &#039;&#039;a&#039;&#039; e &#039;&#039;b&#039;&#039;, o resultado pode ser escrito como dependendo só dos extremos:&lt;br /&gt;
 &lt;br /&gt;
:&amp;lt;math&amp;gt; S =  \int_{a}^{b} f(x) dx = F(b) - F(a) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vamos ver agora como se isso for válido, então F(x) é a primitiva procurada.&lt;br /&gt;
&lt;br /&gt;
Calculando a integral entre &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;x + \Delta x&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \int_{x}^{x+\Delta x} f(x&#039;) dx&#039; = F(x + \Delta x) - F(x) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pela definição da integral entre limites definidos podemos escrevê-la como:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \int_{x}^{x+\Delta x} f(x&#039;) dx&#039; = f(x&#039;&#039;) \Delta x = F(x + \Delta x) - F(x) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt; x&#039;&#039;&amp;lt;/math&amp;gt; é um valor de &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; entre os extremos do intervalo.&lt;br /&gt;
&lt;br /&gt;
Passando o &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt; para a direita e tomando o limite quando ele vai para zero: &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \lim_{\Delta x \to 0 } f(x&#039;&#039;) = \lim_{\Delta x \to 0 } \frac{ F(x + \Delta x) - F(x) }{ \Delta x } \Rightarrow f(x) = \frac{d}{dx} F(x) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Demonstramos que a derivada de F(x) resulta ser a função f(x) que queremos integrar. Em outras palavras, o &#039;&#039;&#039;Teorema fundamental do Cálculo&#039;&#039;&#039;&lt;br /&gt;
diz que resolver uma integral se resume a achar a &#039;&#039;primitiva&#039;&#039;, ou seja uma função cuja derivada seja o integrando.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;O problema prático é que não todas as funções tem primitiva.&#039;&#039;&#039;. &lt;br /&gt;
Vejamos então.&lt;br /&gt;
&lt;br /&gt;
== Cálculo Numérico ==&lt;br /&gt;
&lt;br /&gt;
[[Image:Trapezio.png|right|frame|Ilustração da regra do retângulo.]]&lt;br /&gt;
&lt;br /&gt;
[[Image:integrationtrapezio.png|right|frame|Ilustração da regra do trapézio.]]&lt;br /&gt;
&lt;br /&gt;
[[Image:Integrationsimpson.png|right|frame|Ilustração da regra de Simpson.]]&lt;br /&gt;
&lt;br /&gt;
O cálculo numérico de uma integral definida se baseia na própria definição acima.&lt;br /&gt;
Com a diferença que N é finito. Obviamente quanto maior, melhor.&amp;lt;br&amp;gt;&lt;br /&gt;
 -Temos que pelos retângulos definidos pelo extremo esquerdo de cada subintervalo:&lt;br /&gt;
:&amp;lt;math&amp;gt;\int_a^b f(x)\, dx \approx S_e = \sum_{i=0}^{N-1} f(x_i) \Delta x &amp;lt;/math&amp;gt; &lt;br /&gt;
 -E pelos retângulos definidos pelo extremo direito de cada subintervalo:&lt;br /&gt;
:&amp;lt;math&amp;gt;\int_a^b f(x)\, dx \approx S_d = \sum_{i=1}^{N} f(x_i) \Delta x &amp;lt;/math&amp;gt;   &lt;br /&gt;
&lt;br /&gt;
 Regra do Trapézio:&lt;br /&gt;
:&amp;lt;math&amp;gt;\int_a^b f(x)dx \approx S_t = \sum_{i=0}^{N-1} \frac{f(x_i)+f(x_i+\Delta x)}{2}\Delta x&amp;lt;/math&amp;gt;&lt;br /&gt;
onde:&lt;br /&gt;
:&amp;lt;math&amp;gt;x_i = a + i \Delta x,\;\;  \Delta x = \frac{b-a}{N}&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Esta última pode ser reescrita como:&lt;br /&gt;
:&amp;lt;math&amp;gt;\left(\frac{f(a)+f(b)}{2} + \sum_{i=1}^{N-1} f(x_i)\right)\Delta x&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Também pode se verificar que a integral calculada com os trapézios é a média das integrais calculadas com retângulos:&lt;br /&gt;
:&amp;lt;math&amp;gt;S_t = (S_e + S_d)/2&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 Regra de Simpson:&lt;br /&gt;
&lt;br /&gt;
Notemos que o método do trapézio é baseado na ideia de passar uma reta por 2 pontos e aproximar a área da função f(x) pela área sob a curva definida pelo trapézio.&lt;br /&gt;
&lt;br /&gt;
A regra de Simpson é uma extensão disto: a ideia é  passar uma parábola por três pontos consecutivos e calcular a área definida por ela. Se tivermos apenas 3 pontos, a integral da parábola que passa entre &amp;lt;math&amp;gt; x_{1} , x_{3}&amp;lt;/math&amp;gt; é dada por:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;S= \int_{x_1}^{x_3} f(x) \, dx \approx \frac{x_3-x_1}{6}\left[f(x_1) + 4f\left(\frac{x_1+x_3}{2}\right)+f(x_3)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
No entanto, para integrarmos sobre toda o intervalo &amp;lt;math&amp;gt;\left[ x_{1} ; x_{n}\right]&amp;lt;/math&amp;gt; com boa precisão, é necessário dividi-lo em N intervalos, com N grande. Assim,  é preciso traçar  uma parábola a cada  três pontos consecutivo e a expressão final da fórmula de Simpson é então a soma da área sob todas as parábolas do intervalo &amp;lt;math&amp;gt;\left[ x_{1} ; x_{n}\right]&amp;lt;/math&amp;gt; : &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;S=  \int_{x_1}^{x_n} f(x)dx \simeq \frac{h}{3}\left[f(x_1)+4f(x_2)+2f(x_3)+4f(x_4)+\ldots+4f(x_{n-1})+f(x_n)\right]&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt; h =  (x_{n} - x_{1} )/N &amp;lt;/math&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A dedução da regra de Simpson pode ser encontrada por exemplo em [http://www.math.ist.utl.pt/~calves/courses/integra/capiii33.html].&lt;br /&gt;
&lt;br /&gt;
== Programação ==&lt;br /&gt;
A seguir um trecho do programa para cálculo da integral da função f(x) (&#039;&#039;external function f(x)&#039;&#039;)&amp;lt;br/&amp;gt;&lt;br /&gt;
entre a e b com N pontos, usando o método dos retângulos pela esquerda:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
Read*, a, b, N&lt;br /&gt;
dx = (b-a)/N;  S=0&lt;br /&gt;
&lt;br /&gt;
Do i = 0, N-1&lt;br /&gt;
   x = a + i*dx&lt;br /&gt;
   S = S + f(x)&lt;br /&gt;
EndDo&lt;br /&gt;
Print*, &amp;quot;Integral S=&amp;quot;, S*dx&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Os outros métodos se programam de maneira similar mudando limites (índice do laço)&amp;lt;br /&amp;gt;&lt;br /&gt;
e/ou tratando de forma diferente os valores das pontas.&lt;br /&gt;
&lt;br /&gt;
== Erro associado ao método numérico ==&lt;br /&gt;
&lt;br /&gt;
O método de integração numérico não retorna o valor exato de uma função, visto que não podemos ter no computador &amp;lt;math&amp;gt;N\to\infty&amp;lt;/math&amp;gt;. O erro aqui discutido estará vinculado ao número de divisões &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; realizada na função &amp;lt;math&amp;gt;f(x)&amp;lt;/math&amp;gt; dentro do intervalo que se quer saber o valor da integral. Assim, o erro é definido como&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;erro=\frac{Int(N)-Int(N-1)}{Int(N)}&amp;lt;/math&amp;gt;,&lt;br /&gt;
onde &amp;lt;math&amp;gt;Int(N)&amp;lt;/math&amp;gt; é o valor retornado pelo método numérico utilizado utilizando &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; divisões e &amp;lt;math&amp;gt;Int(N-1)&amp;lt;/math&amp;gt; utilizando &amp;lt;math&amp;gt;N-1&amp;lt;/math&amp;gt; divisões. Note que um teste simples para verificar quando a resposta está convergindo é aumentar &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; e calcular o erro a cada incremento no seu valor.&lt;/div&gt;</summary>
		<author><name>Ejagnes</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Integra%C3%A7%C3%A3o_Num%C3%A9rica&amp;diff=111</id>
		<title>Integração Numérica</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Integra%C3%A7%C3%A3o_Num%C3%A9rica&amp;diff=111"/>
		<updated>2011-10-18T14:16:21Z</updated>

		<summary type="html">&lt;p&gt;Ejagnes: /* Cálculo Numérico */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:integral.jpg|thumb|right|A integração numérica consiste em achar a aproximação numérica para o valor de &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Integração numérica&#039;&#039;&#039; é um termo amplo que abrange até a integração de equações diferenciais como é discutido&lt;br /&gt;
em Métodos Computacionais B. Aqui nos referimos exclusivamente ao cálculo numérico da &#039;&#039;&#039;integral definida&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; S = \int_{a}^{b} f(x) dx&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O termo &#039;&#039;&#039;definida&#039;&#039;&#039;, quer dizer que a integral se faz entre limites definidos, no caso &#039;&#039;&#039;a&#039;&#039;&#039; e &#039;&#039;&#039;b&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
O interesse de fazer esse cálculo numericamente se deve a:&lt;br /&gt;
&lt;br /&gt;
# existência de funções contínuas sem &#039;&#039;&#039;primitiva,&#039;&#039;&#039; o que inviabiliza a conta analítica.&lt;br /&gt;
# funções descontinuas ou definidas por trechos mas para as quais a integral não existe (no fundo é a falta de uma primitiva)&lt;br /&gt;
# funções (ou tabelas) provenientes de experimentos&lt;br /&gt;
# funções continuas e com primitiva de representação simbólica, porem de difícil avaliação na prática (mais difícil que avaliar a própria função)&lt;br /&gt;
 &lt;br /&gt;
== Definição ==&lt;br /&gt;
&lt;br /&gt;
Revisemos o conceito de &#039;&#039;&#039;integral&#039;&#039;&#039; do cálculo:&lt;br /&gt;
A &#039;&#039;&#039;integral&#039;&#039;&#039; definida de uma função f(x) no intervalo [a, b] se define como:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;S = \int_a^b f(x)\, dx = \lim_{N\to\infty} \sum_{i=0}^{N} f(x_i) \Delta x &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A integral de f(x) pode ser entendida como a soma de pequenos retângulos de base dx e altura f(x), onde o produto f(x) dx é a área deste retângulo.&amp;lt;br&amp;gt;&lt;br /&gt;
A soma de todas estas pequenas áreas, ou áreas infinitesimais, fornece a área total abaixo da curva.&amp;lt;br&amp;gt;&lt;br /&gt;
Mais precisamente podemos dizer que a integral acima é o valor limite da soma:&lt;br /&gt;
: &amp;lt;math&amp;gt; \sum_{i=0}^{N} f(x_i) \Delta x. &amp;lt;/math&amp;gt; &lt;br /&gt;
onde:&lt;br /&gt;
:&amp;lt;math&amp;gt;\Delta x = \frac{b-a}{N}&amp;lt;/math&amp;gt; &lt;br /&gt;
é o comprimento dos pequenos intervalos nos quais dividimos o intervalo (b-a), &amp;lt;math&amp;gt;f(x_i)&amp;lt;/math&amp;gt; &lt;br /&gt;
é o valor da função em algum ponto deste intervalo.&amp;lt;br&amp;gt;&lt;br /&gt;
Quando &amp;lt;math&amp;gt;N \to \infty&amp;lt;/math&amp;gt; o valor da soma acima é igual a área abaixo da curva.&lt;br /&gt;
&lt;br /&gt;
A integral também é conhecida como antiderivada: &lt;br /&gt;
:&amp;lt;math&amp;gt; \int f(x)dx = F(x)  \Leftrightarrow \frac{dF(x)}{dx}= f(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
Relembremos porque:&lt;br /&gt;
&lt;br /&gt;
== Teorema Fundamental do Cálculo ==&lt;br /&gt;
&lt;br /&gt;
Se resolvermos a integral acima entre os limites &#039;&#039;a&#039;&#039; e &#039;&#039;b&#039;&#039;, o resultado pode ser escrito como dependendo só dos extremos:&lt;br /&gt;
 &lt;br /&gt;
:&amp;lt;math&amp;gt; S =  \int_{a}^{b} f(x) dx = F(b) - F(a) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vamos ver agora como se isso for válido, então F(x) é a primitiva procurada.&lt;br /&gt;
&lt;br /&gt;
Calculando a integral entre &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;x + \Delta x&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \int_{x}^{x+\Delta x} f(x&#039;) dx&#039; = F(x + \Delta x) - F(x) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pela definição da integral entre limites definidos podemos escrevê-la como:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \int_{x}^{x+\Delta x} f(x&#039;) dx&#039; = f(x&#039;&#039;) \Delta x = F(x + \Delta x) - F(x) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt; x&#039;&#039;&amp;lt;/math&amp;gt; é um valor de &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; entre os extremos do intervalo.&lt;br /&gt;
&lt;br /&gt;
Passando o &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt; para a direita e tomando o limite quando ele vai para zero: &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \lim_{\Delta x \to 0 } f(x&#039;&#039;) = \lim_{\Delta x \to 0 } \frac{ F(x + \Delta x) - F(x) }{ \Delta x } \Rightarrow f(x) = \frac{d}{dx} F(x) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Demonstramos que a derivada de F(x) resulta ser a função f(x) que queremos integrar. Em outras palavras, o &#039;&#039;&#039;Teorema fundamental do Cálculo&#039;&#039;&#039;&lt;br /&gt;
diz que resolver uma integral se resume a achar a &#039;&#039;primitiva&#039;&#039;, ou seja uma função cuja derivada seja o integrando.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;O problema prático é que não todas as funções tem primitiva.&#039;&#039;&#039;. &lt;br /&gt;
Vejamos então.&lt;br /&gt;
&lt;br /&gt;
== Cálculo Numérico ==&lt;br /&gt;
&lt;br /&gt;
[[Image:Trapezio.png|right|frame|Ilustração da regra do retângulo.]]&lt;br /&gt;
&lt;br /&gt;
[[Image:integrationtrapezio.png|right|frame|Ilustração da regra do trapézio.]]&lt;br /&gt;
&lt;br /&gt;
[[Image:Integrationsimpson.png|right|frame|Ilustração da regra de Simpson.]]&lt;br /&gt;
&lt;br /&gt;
O cálculo numérico de uma integral definida se baseia na própria definição acima.&lt;br /&gt;
Com a diferença que N é finito. Obviamente quanto maior, melhor.&amp;lt;br&amp;gt;&lt;br /&gt;
 -Temos que pelos retângulos definidos pelo extremo esquerdo de cada subintervalo:&lt;br /&gt;
:&amp;lt;math&amp;gt;\int_a^b f(x)\, dx \approx S_e = \sum_{i=0}^{N-1} f(x_i) \Delta x &amp;lt;/math&amp;gt; &lt;br /&gt;
 -E pelos retângulos definidos pelo extremo direito de cada subintervalo:&lt;br /&gt;
:&amp;lt;math&amp;gt;\int_a^b f(x)\, dx \approx S_d = \sum_{i=1}^{N} f(x_i) \Delta x &amp;lt;/math&amp;gt;   &lt;br /&gt;
&lt;br /&gt;
 -[[Regra do Trapézio]]:&lt;br /&gt;
:&amp;lt;math&amp;gt;\int_a^b f(x)dx \approx S_t = \sum_{i=0}^{N-1} \frac{f(x_i)+f(x_i+\Delta x)}{2}\Delta x&amp;lt;/math&amp;gt;&lt;br /&gt;
onde:&lt;br /&gt;
:&amp;lt;math&amp;gt;x_i = a + i \Delta x,\;\;  \Delta x = \frac{b-a}{N}&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Esta última pode ser reescrita como:&lt;br /&gt;
:&amp;lt;math&amp;gt;\left(\frac{f(a)+f(b)}{2} + \sum_{i=1}^{N-1} f(x_i)\right)\Delta x&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Também pode se verificar que a integral calculada com os trapézios é a média das integrais calculadas com retângulos:&lt;br /&gt;
:&amp;lt;math&amp;gt;S_t = (S_e + S_d)/2&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 -[[Regra de Simpson]]:&lt;br /&gt;
&lt;br /&gt;
Notemos que o método do trapézio é baseado na ideia de passar uma reta por 2 pontos e aproximar a área da função f(x) pela área sob a curva definida pelo trapézio.&lt;br /&gt;
&lt;br /&gt;
A regra de Simpson é uma extensão disto: a ideia é  passar uma parábola por três pontos consecutivos e calcular a área definida por ela. Se tivermos apenas 3 pontos, a integral da parábola que passa entre &amp;lt;math&amp;gt; x_{1} , x_{3}&amp;lt;/math&amp;gt; é dada por:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;S= \int_{x_1}^{x_3} f(x) \, dx \approx \frac{x_3-x_1}{6}\left[f(x_1) + 4f\left(\frac{x_1+x_3}{2}\right)+f(x_3)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
No entanto, para integrarmos sobre toda o intervalo &amp;lt;math&amp;gt;\left[ x_{1} ; x_{n}\right]&amp;lt;/math&amp;gt; com boa precisão, é necessário dividi-lo em N intervalos, com N grande. Assim,  é preciso traçar  uma parábola a cada  três pontos consecutivo e a expressão final da fórmula de Simpson é então a soma da área sob todas as parábolas do intervalo &amp;lt;math&amp;gt;\left[ x_{1} ; x_{n}\right]&amp;lt;/math&amp;gt; : &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;S=  \int_{x_1}^{x_n} f(x)dx \simeq \frac{h}{3}\left[f(x_1)+4f(x_2)+2f(x_3)+4f(x_4)+\ldots+4f(x_{n-1})+f(x_n)\right]&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt; h =  (x_{n} - x_{1} )/N &amp;lt;/math&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A dedução da regra de Simpson pode ser encontrada por exemplo em [http://www.math.ist.utl.pt/~calves/courses/integra/capiii33.html].&lt;br /&gt;
&lt;br /&gt;
== Programação ==&lt;br /&gt;
A seguir um trecho do programa para cálculo da integral da função f(x) (&#039;&#039;external function f(x)&#039;&#039;)&amp;lt;br/&amp;gt;&lt;br /&gt;
entre a e b com N pontos, usando o método dos retângulos pela esquerda:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
Read*, a, b, N&lt;br /&gt;
dx = (b-a)/N;  S=0&lt;br /&gt;
&lt;br /&gt;
Do i = 0, N-1&lt;br /&gt;
   x = a + i*dx&lt;br /&gt;
   S = S + f(x)&lt;br /&gt;
EndDo&lt;br /&gt;
Print*, &amp;quot;Integral S=&amp;quot;, S*dx&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Os outros métodos se programam de maneira similar mudando limites (índice do laço)&amp;lt;br /&amp;gt;&lt;br /&gt;
e/ou tratando de forma diferente os valores das pontas.&lt;br /&gt;
&lt;br /&gt;
== Erro associado ao método numérico ==&lt;br /&gt;
&lt;br /&gt;
O método de integração numérico não retorna o valor exato de uma função, visto que não podemos ter no computador &amp;lt;math&amp;gt;N\to\infty&amp;lt;/math&amp;gt;. O erro aqui discutido estará vinculado ao número de divisões &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; realizada na função &amp;lt;math&amp;gt;f(x)&amp;lt;/math&amp;gt; dentro do intervalo que se quer saber o valor da integral. Assim, o erro é definido como&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;erro=\frac{Int(N)-Int(N-1)}{Int(N)}&amp;lt;/math&amp;gt;,&lt;br /&gt;
onde &amp;lt;math&amp;gt;Int(N)&amp;lt;/math&amp;gt; é o valor retornado pelo método numérico utilizado utilizando &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; divisões e &amp;lt;math&amp;gt;Int(N-1)&amp;lt;/math&amp;gt; utilizando &amp;lt;math&amp;gt;N-1&amp;lt;/math&amp;gt; divisões. Note que um teste simples para verificar quando a resposta está convergindo é aumentar &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; e calcular o erro a cada incremento no seu valor.&lt;/div&gt;</summary>
		<author><name>Ejagnes</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=F%C3%B3rmula_de_Lagrange&amp;diff=110</id>
		<title>Fórmula de Lagrange</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=F%C3%B3rmula_de_Lagrange&amp;diff=110"/>
		<updated>2011-10-14T16:09:46Z</updated>

		<summary type="html">&lt;p&gt;Ejagnes: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Polinômios de Lagrange ==&lt;br /&gt;
&lt;br /&gt;
Baseado no fato de que sobre &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; pontos &amp;lt;math&amp;gt;(X_1,Y_1), (X_2,Y_2), \cdots, (X_N,Y_N)&amp;lt;/math&amp;gt; passa um &#039;&#039;único&#039;&#039; polinômio de grau &amp;lt;math&amp;gt;N-1&amp;lt;/math&amp;gt;, o &#039;&#039;&#039;Polinômio de Lagrange&#039;&#039;&#039; pode ser usado como fórmula de interpolação ou extrapolação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
P(x)=\sum_{i=1}^N Y_i L_i(x)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
L_i(x)=\prod_{j=1,j\ne i}^N\frac{x-X_j}{X_i-X_j}=\frac{x-X_1}{X_i-X_1}\cdots\frac{x-X_{i-1}}{X_i-X_{i-1}}&lt;br /&gt;
\frac{x-X_{i+1}}{X_i-X_{i+1}}\cdots\frac{x-X_N}{X_i-X_N}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
é um polinômio de grau &amp;lt;math&amp;gt;\;N-1&amp;lt;/math&amp;gt; em &amp;lt;math&amp;gt;\;x&amp;lt;/math&amp;gt;.&lt;br /&gt;
Tendo em vista que &amp;lt;math&amp;gt;L_i(X_j)=\delta_{i,j}\;,&amp;lt;/math&amp;gt; onde o delta de Kronecker&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;math&amp;gt;\delta_{ij} = \left\{\begin{matrix} &lt;br /&gt;
1, &amp;amp; \mbox{se } i=j  \\ &lt;br /&gt;
0, &amp;amp; \mbox{se } i \ne j \end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
é fácil verificar que, de fato,&amp;lt;math&amp;gt;\;P(X_i)=Y_i&amp;lt;/math&amp;gt;. Assim,&amp;lt;math&amp;gt;\;P(x)&amp;lt;/math&amp;gt; pode ser empregado para se estimar o valor de &amp;lt;math&amp;gt;\;Y(x)&amp;lt;/math&amp;gt; em pontos &amp;lt;math&amp;gt;\;x&amp;lt;/math&amp;gt; não tabulados.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Exemplo 1 ==&lt;br /&gt;
&lt;br /&gt;
[[Image:lagrangen2.png|right|frame|Fórmula de Lagrange para N=2.]]&lt;br /&gt;
&lt;br /&gt;
Para exemplificar a fórmula de Lagrange, consideramos primeiramente uma reta que passa pelos pontos &amp;lt;math&amp;gt;(X_1,Y_1) = (1,9)&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;(X_2,Y_2) = (2,13)&amp;lt;/math&amp;gt;, tendo assim &amp;lt;math&amp;gt;N = 2&amp;lt;/math&amp;gt;. Aplicando a fórmula de Lagrange, temos&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;L_1 = \frac{x-X_2}{X_1-X_2} = \frac{x-2}{1-2} = -(x-2)&amp;lt;/math&amp;gt;&lt;br /&gt;
e&lt;br /&gt;
:&amp;lt;math&amp;gt;L_2 = \frac{x-X_1}{X_2-X_1} = \frac{x-1}{2-1} = (x-1)&amp;lt;/math&amp;gt;,&lt;br /&gt;
assim, o polinômio de Lagrange que passa pelos pontos desejados é dado por:&lt;br /&gt;
:&amp;lt;math&amp;gt;P(x)=\sum_{i=1}^N Y_i L_i(x) = Y_1L_1 + Y_2L_2 = 9(-x+2) + 13(x-1) = 4x + 5 &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Note que substituindo na equação acima, &amp;lt;math&amp;gt;P(1) = 9&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;P(2) = 13&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Exemplo 2 ==&lt;br /&gt;
&lt;br /&gt;
[[Image:lagrangen3.png|right|frame|Fórmula de Lagrange para N=3.]]&lt;br /&gt;
&lt;br /&gt;
Verificando a fórmula de Lagrange para &amp;lt;math&amp;gt;N = 3&amp;lt;/math&amp;gt;. Suponhamos que desejamos encontrar qual é o polinômio que passa pelos pontos  &amp;lt;math&amp;gt;(X_1,Y_1) = (2,4)&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;(X_2,Y_2) = (3,9)&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;(X_3,Y_3) = (6,36)&amp;lt;/math&amp;gt;. Temos que:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;L_1 = \left(\frac{x-X_2}{X_1-X_2}\right) \left(\frac{x-X_3}{X_1-X_3}\right) = \left(\frac{x-3}{2-3}\right) \left(\frac{x-6}{2-6}\right) = \frac{x^2-9x+18}{4}&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;L_2 = \left(\frac{x-X_1}{X_2-X_1}\right) \left(\frac{x-X_3}{X_2-X_3}\right) = \left(\frac{x-2}{3-2}\right) \left(\frac{x-6}{3-6}\right) = -\frac{x^2-8x+12}{3}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
e&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;L_3 = \left(\frac{x-X_1}{X_3-X_1}\right) \left(\frac{x-X_2}{X_3-X_2}\right) = \left(\frac{x-2}{6-2}\right) \left(\frac{x-3}{6-3}\right) = \frac{x^2-5x+6}{12}&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
assim&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;P(x)=\sum_{i=1}^N Y_i L_i(x) = Y_1L_1 + Y_2L_2 + Y_3L_3 = 4\frac{x^2-9x+18}{4} - 9\frac{x^2-8x+12}{3} + 36\frac{x^2-5x+6}{12} = x^2 &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Exemplo 3 ==&lt;br /&gt;
&lt;br /&gt;
Para ilustrar graficamente o método da fórmula de Lagrange, usaremos um exemplo com &amp;lt;math&amp;gt;N=4&amp;lt;/math&amp;gt;. Considerando os quatro pontos &amp;lt;math&amp;gt;(X_1,Y_1) = (-1,5)&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;(X_2,Y_3) = (1,2)&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;(X_3,Y_3) = (-3,5)&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;(X_4,Y_4) = (7,4)&amp;lt;/math&amp;gt;, as equações &amp;lt;math&amp;gt;L_i&amp;lt;/math&amp;gt; ficam&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;L_1 = -\frac{1}{64}(x^3-11x^2+31x-21)&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;L_2 = \frac{1}{24}(x^3-9x^2+11x+21)&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;L_3 = -\frac{1}{32}(x^3-7x^2-x+7)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
e&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;L_4 = \frac{1}{192}(x^3-3x^2-x+3)&amp;lt;/math&amp;gt;.&lt;br /&gt;
 &lt;br /&gt;
O gráfico abaixo mostra os quatro pontos &amp;lt;math&amp;gt;(X_i,Y_i)&amp;lt;/math&amp;gt;, as curvas &amp;lt;math&amp;gt;L_iY_i&amp;lt;/math&amp;gt; e a curva final &amp;lt;math&amp;gt;P(x)&amp;lt;/math&amp;gt;. Lembre-se que &amp;lt;math&amp;gt;P(x)&amp;lt;/math&amp;gt; é a curva gerada pela soma dos polinômios &amp;lt;math&amp;gt;L_iY_i&amp;lt;/math&amp;gt;. Note que a curva &amp;lt;math&amp;gt;L_1Y_1&amp;lt;/math&amp;gt; passa pelo ponto &amp;lt;math&amp;gt;(X_1,Y_1)&amp;lt;/math&amp;gt;, assim como as demais e a curva &amp;lt;math&amp;gt;P(x)&amp;lt;/math&amp;gt; passa por todos os pontos.&lt;br /&gt;
&lt;br /&gt;
[[Imagem:lagrange.png|800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Numericamente  ==&lt;br /&gt;
&lt;br /&gt;
Na prática, a implementação numérica do polinômio de Lagrange é complicada.&lt;br /&gt;
Computacionalmente não é possível fazer um programa geral para interpolação de ordem arbitrária, isto é fazer um programa que, com os N pontos de entrada &amp;lt;math&amp;gt;{X_i,Y_i}&amp;lt;/math&amp;gt;, devolva um polinômio &amp;lt;math&amp;gt;P(x)&amp;lt;/math&amp;gt; interpolador de grau N. Isto envolve computação simbólica (do tipo utilizada em programas proprietários como o Mathematica, Maple, ou livres como Maxima). &lt;br /&gt;
Por outro lado a implementação numérica do método na força bruta envolve um duplo laço de ordem N:&lt;br /&gt;
devem ser somados N termos (os &amp;lt;math&amp;gt;L_i(x)&amp;lt;/math&amp;gt;) onde cada um deles é construído como um produto de N-1 termos; ao todo &amp;lt;math&amp;gt;N^2&amp;lt;/math&amp;gt; cálculos para cada ponto x (isto fica como exercício a partir da fórmula &lt;br /&gt;
geral do &amp;lt;math&amp;gt;P(x)&amp;lt;/math&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
O Algoritmo de Neville [http://www.physics.utah.edu/~detar/phys6720/handouts/interpolation/interpolation/node4.html] é muito útil na realização desta tarefa.Ao final, veremos que o polinômio interpolador de grau n pode ser reconstruído com polinômios de grau n-1. Este processo gera uma fórmula de recorrência,  que é um recurso  bastante comum em algoritmos computacionais. &lt;br /&gt;
&lt;br /&gt;
Para deduzirmos esta fórmula de recorrência, começamos  aproximando cada intervalo por um valor constante. Podemos representar esta aproximação por&lt;br /&gt;
&amp;lt;math&amp;gt;P_1(x)=Y_1,\; P_2(x)=Y_2,\; \cdots\,\; P_N(x)=Y_N&amp;lt;/math&amp;gt;. &lt;br /&gt;
Melhorando a descrição, empregando agora uma aproximação linear em cada intervalo &amp;lt;math&amp;gt;[X_i,\;X_{i+1}]&amp;lt;/math&amp;gt;, denotamos por &amp;lt;math&amp;gt;P_{12}(x),\;P_{23}(x),\; \cdots,\; P_{N-1,N}(x)&amp;lt;/math&amp;gt;, onde &amp;lt;math&amp;gt;P_{i,i+1}(x)\;&amp;lt;/math&amp;gt;é o polinômio que passa exatamente sobre&lt;br /&gt;
&amp;lt;math&amp;gt;(X_i,Y_i)\;&amp;lt;/math&amp;gt;e&amp;lt;math&amp;gt;\;(X_{i+1},Y_{i+1})&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
P_{i,i+1}(x)=\frac{x-X_{i+1}}{X_i-X_{i+1}}Y_i+\frac{x-X_i}{X_{i+1}-X_i}Y_{i+1}\;.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vemos que &amp;lt;math&amp;gt;P_{i, i+1}(x)\;&amp;lt;/math&amp;gt;pode ser escrito como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
P_{i,i+1}(x)=\frac{(x-X_{i+1})P_i(x)-(x-X_i)P_{i+1}(x)}{X_i-X_{i+1}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Isto sugere que há uma relação entre os polinômios de ordem &amp;lt;math&amp;gt;\;n&amp;lt;/math&amp;gt; com os de ordem &amp;lt;math&amp;gt;\;n+1&amp;lt;/math&amp;gt;.&lt;br /&gt;
Para verificar isto, vamos considerar, agora, uma parábola passando exatamente sobre&lt;br /&gt;
&amp;lt;math&amp;gt;(X_i,Y_i)\;,(X_{i+1},Y_{i+1})&amp;lt;/math&amp;gt; e&amp;lt;math&amp;gt;\;(X_{i+2},Y_{i+2})&amp;lt;/math&amp;gt;, que denotaremos por,&amp;lt;math&amp;gt;\;P_{i,i+1,i+2}(x)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
P_{i,i+1,i+2}(x)=\frac{x-X_{i+1}}{X_i-X_{i+1}}\frac{x-X_{i+2}}{X_i    -X_{i+2}}Y_i&lt;br /&gt;
             +\frac{x-X_i}{X_{i+1}-X_i}\frac{x-X_{i+2}}{X_{i+1}-X_{i+2}}Y_{i+1}&lt;br /&gt;
             +\frac{x-X_i}{X_{i+2}-X_i}\frac{x-X_{i+1}}{X_{i+2}-X_{i+1}}Y_{i+2}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Fatorando &amp;lt;math&amp;gt;\;1/(X_i-X_{i+2})&amp;lt;/math&amp;gt; e somando e subtraindo &amp;lt;math&amp;gt;\frac{x-X_i}{X_{i+1}-X_i}(x-X_{i+2})Y_{i+1}&amp;lt;/math&amp;gt;, obtemos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
P_{i,i+1,i+2}(x) =\frac{1}{X_i-X_{i+2}}\left[(x-X_{i+2})P_{i,i+1}(x)&lt;br /&gt;
-F(x)\right]&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
F(x)=(x-X_i)\left[\frac{x-X_{i+1}}{X_{i+2}-X_{i+1}}Y_{i+2}&lt;br /&gt;
-\frac{X_i-X_{i+2}}{X_{i+1}-X_i}\frac{x-X_{i+2}}{X_{i+1}-X_{i+2}}Y_{i+1} &lt;br /&gt;
+\frac{x-X_{i+2}}{X_{i+1}-X_i}Y_{i+1}\right]\;.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note que o último termo desta expressão corresponde àquele que foi subtraído após seu termo de sinal contrário ter&lt;br /&gt;
sido somado à expressão que levou a&amp;lt;math&amp;gt;\;P_{i,i+1}(x)&amp;lt;/math&amp;gt; na equação para&amp;lt;math&amp;gt;\;P_{i,i+1,i+2}(x)&amp;lt;/math&amp;gt;.&lt;br /&gt;
Rearranjando os termos acima, encontramos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
F(x)=(x-X_i)\left[\frac{x-X_{i+2}}{X_{i+1}-X_{i+2}}Y_{i+1}+\frac{x-X_{i+1}}{X_{i+2}-X_{i+1}}Y_{i+2}\right]&lt;br /&gt;
=(x-X_i)P_{i+1,i+2}(x)\;.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Substituindo este resultado na equação para&amp;lt;math&amp;gt;\;P_{i,i+1,i+2}(x)&amp;lt;/math&amp;gt;, obtemos finalmente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
P_{i,i+1,i+2}(x) =\frac{1}{X_i-X_{i+2}}\left[(x-X_{i+2})P_{i,i+1}(x)&lt;br /&gt;
-(x-X_i)P_{i+1,i+2}(x)\right]&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim, notamos que, de fato, há uma relação de recorrência bastante simples entre os polinômios que envolvem&lt;br /&gt;
&amp;lt;math&amp;gt;\;n&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;\;n+1&amp;lt;/math&amp;gt; pontos, cuja forma geral é dada por:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
P_{i,i+1,\cdots,i+k}(x) =\frac{1}{X_i-X_{i+k}}\left[(x-X_{i+k})P_{i,i+1,\cdots,i+k-1}(x)&lt;br /&gt;
-(x-X_i)P_{i+1,i+2,\cdots,i+k}(x)\right]&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Por ser muito mais simples de se implementar numericamente do que a expressão original para &amp;lt;math&amp;gt;\;P(x)&amp;lt;/math&amp;gt;,&lt;br /&gt;
é esta relação de recorrência que é, de fato, utilizada em cálculos numéricos. Os erros cometidos podem ser estimados calculando-se as diferenças entre as diferentes ordens do polinômio:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
D^{(1)}_{k,i}(x)=P_{i,i+1,\cdots,i+k}(x)-P_{i,i+1,\cdots,i+k-1}(x)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
e&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
D^{(2)}_{k,i}(x)=P_{i,i+1,\cdots,i+k}(x)-P_{i+1,i+2,\cdots,i+k}(x)\;.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ao invés de se gerar &amp;lt;math&amp;gt;\;P(x)&amp;lt;/math&amp;gt; a partir da relação de recorrência para &amp;lt;math&amp;gt;P_{i,i+1,\cdots,i+k}(x)&amp;lt;/math&amp;gt;, pode-se utilizar as equações acima e obter relações de recorrência para &amp;lt;math&amp;gt;\;D^{(1)} \mbox{ e } D^{(2)}&amp;lt;/math&amp;gt;. No final, obtemos &amp;lt;math&amp;gt;\;P(x)&amp;lt;/math&amp;gt; a partir destas quantidades. Este desenvolvimento é deixado como exercício.&lt;br /&gt;
&lt;br /&gt;
É importante notar que em nenhum ponto da discussão foi evocada a necessidade dos pontos &amp;lt;math&amp;gt;\;\{X_i\}&amp;lt;/math&amp;gt; serem igualmente espaçados. Portanto, as fórmulas apresentadas aqui podem ser aplicadas em situações bastante gerais.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Como discutido na seção [[Interpolação e extrapolação]], é desaconselhável o uso de polinômios de grau elevado. Por isto, apenas um pequeno subconjunto dos valores tabulados, nas vizinhanças do ponto de interesse &amp;lt;math&amp;gt;\;X&amp;lt;/math&amp;gt;, deve ser empregado.&lt;br /&gt;
Por exemplo, digamos que temos uma tabela com 100 pontos &amp;lt;math&amp;gt;\;\{(X_i,Y_i)\}&amp;lt;/math&amp;gt;. Se desejamos estimar o valor de &amp;lt;math&amp;gt;\;Y&amp;lt;/math&amp;gt; no interior da região &amp;lt;math&amp;gt;[X_1,\; X_N]&amp;lt;/math&amp;gt;, ao invés de construir um polinômio de grau 99, podemos, por exemplo, dividir o espaço em 25 sub-regiões e usar polinômios cúbicos em cada uma delas,&lt;br /&gt;
utilizando apenas &amp;lt;math&amp;gt;(X_{i-1},Y_{i-1}),\; (X_i,Y_i),\; (X_{i+1},Y_{i+1})&amp;lt;/math&amp;gt; e&amp;lt;math&amp;gt;\;(X_{i+2},Y_{i+2})&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Contudo, devemos notar que, embora a interpolação seja contínua nas interfaces das regiões, a continuidade das derivadas 1&amp;lt;sup&amp;gt;a&amp;lt;/sup&amp;gt; e 2&amp;lt;sup&amp;gt;a&amp;lt;/sup&amp;gt; não é garantida. Em situações em que estas propriedades importam, outras aproximações devem ser adotadas (veja, por exemplo, [[Spline cúbico]]).&lt;br /&gt;
&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Ejagnes</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Lagrangen2.png&amp;diff=109</id>
		<title>Arquivo:Lagrangen2.png</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Lagrangen2.png&amp;diff=109"/>
		<updated>2011-10-14T16:08:31Z</updated>

		<summary type="html">&lt;p&gt;Ejagnes: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Ejagnes</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Lagrangen3.png&amp;diff=108</id>
		<title>Arquivo:Lagrangen3.png</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Lagrangen3.png&amp;diff=108"/>
		<updated>2011-10-14T16:08:21Z</updated>

		<summary type="html">&lt;p&gt;Ejagnes: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Ejagnes</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Lagrange.png&amp;diff=107</id>
		<title>Arquivo:Lagrange.png</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Lagrange.png&amp;diff=107"/>
		<updated>2011-10-14T16:08:08Z</updated>

		<summary type="html">&lt;p&gt;Ejagnes: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Ejagnes</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=F%C3%B3rmula_de_Lagrange&amp;diff=106</id>
		<title>Fórmula de Lagrange</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=F%C3%B3rmula_de_Lagrange&amp;diff=106"/>
		<updated>2011-10-14T16:07:31Z</updated>

		<summary type="html">&lt;p&gt;Ejagnes: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Polinômios de Lagrange ==&lt;br /&gt;
&lt;br /&gt;
Baseado no fato de que sobre &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; pontos &amp;lt;math&amp;gt;(X_1,Y_1), (X_2,Y_2), \cdots, (X_N,Y_N)&amp;lt;/math&amp;gt; passa um &#039;&#039;único&#039;&#039; polinômio de grau &amp;lt;math&amp;gt;N-1&amp;lt;/math&amp;gt;, o &#039;&#039;&#039;Polinômio de Lagrange&#039;&#039;&#039; pode ser usado como fórmula de interpolação ou extrapolação:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
P(x)=\sum_{i=1}^N Y_i L_i(x)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
L_i(x)=\prod_{j=1,j\ne i}^N\frac{x-X_j}{X_i-X_j}=\frac{x-X_1}{X_i-X_1}\cdots\frac{x-X_{i-1}}{X_i-X_{i-1}}&lt;br /&gt;
\frac{x-X_{i+1}}{X_i-X_{i+1}}\cdots\frac{x-X_N}{X_i-X_N}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
é um polinômio de grau &amp;lt;math&amp;gt;\;N-1&amp;lt;/math&amp;gt; em &amp;lt;math&amp;gt;\;x&amp;lt;/math&amp;gt;.&lt;br /&gt;
Tendo em vista que &amp;lt;math&amp;gt;L_i(X_j)=\delta_{i,j}\;,&amp;lt;/math&amp;gt; onde o delta de Kronecker&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;math&amp;gt;\delta_{ij} = \left\{\begin{matrix} &lt;br /&gt;
1, &amp;amp; \mbox{se } i=j  \\ &lt;br /&gt;
0, &amp;amp; \mbox{se } i \ne j \end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
é fácil verificar que, de fato,&amp;lt;math&amp;gt;\;P(X_i)=Y_i&amp;lt;/math&amp;gt;. Assim,&amp;lt;math&amp;gt;\;P(x)&amp;lt;/math&amp;gt; pode ser empregado para se estimar o valor de &amp;lt;math&amp;gt;\;Y(x)&amp;lt;/math&amp;gt; em pontos &amp;lt;math&amp;gt;\;x&amp;lt;/math&amp;gt; não tabulados.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Exemplo 1 ==&lt;br /&gt;
&lt;br /&gt;
[[Image:lagrangen2.png|right|frame|Fórmula de Lagrange para N=2.]]&lt;br /&gt;
&lt;br /&gt;
Para exemplificar a fórmula de Lagrange, consideramos primeiramente uma reta que passa pelos pontos &amp;lt;math&amp;gt;(X_1,Y_1) = (1,9)&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;(X_2,Y_2) = (2,13)&amp;lt;/math&amp;gt;, tendo assim &amp;lt;math&amp;gt;N = 2&amp;lt;/math&amp;gt;. Aplicando a fórmula de Lagrange, temos&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;L_1 = \frac{x-X_2}{X_1-X_2} = \frac{x-2}{1-2} = -(x-2)&amp;lt;/math&amp;gt;&lt;br /&gt;
e&lt;br /&gt;
:&amp;lt;math&amp;gt;L_2 = \frac{x-X_1}{X_2-X_1} = \frac{x-1}{2-1} = (x-1)&amp;lt;/math&amp;gt;,&lt;br /&gt;
assim, o polinômio de Lagrange que passa pelos pontos desejados é dado por:&lt;br /&gt;
:&amp;lt;math&amp;gt;P(x)=\sum_{i=1}^N Y_i L_i(x) = Y_1L_1 + Y_2L_2 = 9(-x+2) + 13(x-1) = 4x + 5 &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Note que substituindo na equação acima, &amp;lt;math&amp;gt;P(1) = 9&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;P(2) = 13&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Exemplo 2 ==&lt;br /&gt;
&lt;br /&gt;
[[Image:lagrangen3.png|right|frame|Fórmula de Lagrange para N=3.]]&lt;br /&gt;
&lt;br /&gt;
Verificando a fórmula de Lagrange para &amp;lt;math&amp;gt;N = 3&amp;lt;/math&amp;gt;. Suponhamos que desejamos encontrar qual é o polinômio que passa pelos pontos  &amp;lt;math&amp;gt;(X_1,Y_1) = (2,4)&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;(X_2,Y_2) = (3,9)&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;(X_3,Y_3) = (6,36)&amp;lt;/math&amp;gt;. Temos que:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;L_1 = \left(\frac{x-X_2}{X_1-X_2}\right) \left(\frac{x-X_3}{X_1-X_3}\right) = \left(\frac{x-3}{2-3}\right) \left(\frac{x-6}{2-6}\right) = \frac{x^2-9x+18}{4}&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;L_2 = \left(\frac{x-X_1}{X_2-X_1}\right) \left(\frac{x-X_3}{X_2-X_3}\right) = \left(\frac{x-2}{3-2}\right) \left(\frac{x-6}{3-6}\right) = -\frac{x^2-8x+12}{3}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
e&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;L_3 = \left(\frac{x-X_1}{X_3-X_1}\right) \left(\frac{x-X_2}{X_3-X_2}\right) = \left(\frac{x-2}{6-2}\right) \left(\frac{x-3}{6-3}\right) = \frac{x^2-5x+6}{12}&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
assim&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;P(x)=\sum_{i=1}^N Y_i L_i(x) = Y_1L_1 + Y_2L_2 + Y_3L_3 = 4\frac{x^2-9x+18}{4} - 9\frac{x^2-8x+12}{3} + 36\frac{x^2-5x+6}{12} = x^2 &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Exemplo 3 ==&lt;br /&gt;
&lt;br /&gt;
Para ilustrar graficamente o método da fórmula de Lagrange, usaremos um exemplo com &amp;lt;math&amp;gt;N=4&amp;lt;/math&amp;gt;. Considerando os quatro pontos &amp;lt;math&amp;gt;(X_1,Y_1) = (-1,5)&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;(X_2,Y_3) = (1,2)&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;(X_3,Y_3) = (-3,5)&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;(X_4,Y_4) = (7,4)&amp;lt;/math&amp;gt;, as equações &amp;lt;math&amp;gt;L_i&amp;lt;/math&amp;gt; ficam&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;L_1 = -\frac{1}{64}(x^3-11x^2+31x-21)&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;L_2 = \frac{1}{24}(x^3-9x^2+11x+21)&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;L_3 = -\frac{1}{32}(x^3-7x^2-x+7)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
e&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;L_4 = \frac{1}{192}(x^3-3x^2-x+3)&amp;lt;/math&amp;gt;.&lt;br /&gt;
 &lt;br /&gt;
O gráfico abaixo mostra os quatro pontos &amp;lt;math&amp;gt;(X_i,Y_i)&amp;lt;/math&amp;gt;, as curvas &amp;lt;math&amp;gt;L_iY_i&amp;lt;/math&amp;gt; e a curva final &amp;lt;math&amp;gt;P(x)&amp;lt;/math&amp;gt;. Lembre-se que &amp;lt;math&amp;gt;P(x)&amp;lt;/math&amp;gt; é a curva gerada pela soma dos polinômios &amp;lt;math&amp;gt;L_iY_i&amp;lt;/math&amp;gt;. Note que a curva &amp;lt;math&amp;gt;L_1Y_1&amp;lt;/math&amp;gt; passa pelo ponto &amp;lt;math&amp;gt;(X_1,Y_1)&amp;lt;/math&amp;gt;, assim como as demais e a curva &amp;lt;math&amp;gt;P(x)&amp;lt;/math&amp;gt; passa por todos os pontos.&lt;br /&gt;
&lt;br /&gt;
[[Imagem:lagrange.png|800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Numericamente  ==&lt;br /&gt;
&lt;br /&gt;
Na prática, a implementação numérica do polinômio de Lagrange é complicada.&lt;br /&gt;
Computacionalmente não é possível fazer um programa geral para interpolação de ordem arbitrária, isto é fazer um programa que, com os N pontos de entrada &amp;lt;math&amp;gt;{X_i,Y_i}&amp;lt;/math&amp;gt;, devolva um polinômio &amp;lt;math&amp;gt;P(x)&amp;lt;/math&amp;gt; interpolador de grau N. Isto envolve computação simbólica (do tipo utilizada em programas proprietários como o Mathematica, Maple, ou livres como Maxima). &lt;br /&gt;
Por outro lado a implementação numérica do método na força bruta envolve um duplo laço de ordem N:&lt;br /&gt;
devem ser somados N termos (os &amp;lt;math&amp;gt;L_i(x)&amp;lt;/math&amp;gt;) onde cada um deles é construído como um produto de N-1 termos; ao todo &amp;lt;math&amp;gt;N^2&amp;lt;/math&amp;gt; cálculos para cada ponto x (isto fica como exercício a partir da fórmula &lt;br /&gt;
geral do &amp;lt;math&amp;gt;P(x)&amp;lt;/math&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
O Algoritmo de Neville [http://www.physics.utah.edu/~detar/phys6720/handouts/interpolation/interpolation/node4.html] é muito útil na realização desta tarefa.Ao final, veremos que o polinômio interpolador de grau n pode ser reconstruído com polinômios de grau n-1. Este processo gera uma fórmula de recorrência,  que é um recurso  bastante comum em algoritmos computacionais. &lt;br /&gt;
&lt;br /&gt;
Para deduzirmos esta fórmula de recorrência, começamos  aproximando cada intervalo por um valor constante. Podemos representar esta aproximação por&lt;br /&gt;
&amp;lt;math&amp;gt;P_1(x)=Y_1,\; P_2(x)=Y_2,\; \cdots\,\; P_N(x)=Y_N&amp;lt;/math&amp;gt;. &lt;br /&gt;
Melhorando a descrição, empregando agora uma aproximação linear em cada intervalo &amp;lt;math&amp;gt;[X_i,\;X_{i+1}]&amp;lt;/math&amp;gt;, denotamos por &amp;lt;math&amp;gt;P_{12}(x),\;P_{23}(x),\; \cdots,\; P_{N-1,N}(x)&amp;lt;/math&amp;gt;, onde &amp;lt;math&amp;gt;P_{i,i+1}(x)\;&amp;lt;/math&amp;gt;é o polinômio que passa exatamente sobre&lt;br /&gt;
&amp;lt;math&amp;gt;(X_i,Y_i)\;&amp;lt;/math&amp;gt;e&amp;lt;math&amp;gt;\;(X_{i+1},Y_{i+1})&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
P_{i,i+1}(x)=\frac{x-X_{i+1}}{X_i-X_{i+1}}Y_i+\frac{x-X_i}{X_{i+1}-X_i}Y_{i+1}\;.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vemos que &amp;lt;math&amp;gt;P_{i, i+1}(x)\;&amp;lt;/math&amp;gt;pode ser escrito como:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
P_{i,i+1}(x)=\frac{(x-X_{i+1})P_i(x)-(x-X_i)P_{i+1}(x)}{X_i-X_{i+1}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Isto sugere que há uma relação entre os polinômios de ordem &amp;lt;math&amp;gt;\;n&amp;lt;/math&amp;gt; com os de ordem &amp;lt;math&amp;gt;\;n+1&amp;lt;/math&amp;gt;.&lt;br /&gt;
Para verificar isto, vamos considerar, agora, uma parábola passando exatamente sobre&lt;br /&gt;
&amp;lt;math&amp;gt;(X_i,Y_i)\;,(X_{i+1},Y_{i+1})&amp;lt;/math&amp;gt; e&amp;lt;math&amp;gt;\;(X_{i+2},Y_{i+2})&amp;lt;/math&amp;gt;, que denotaremos por,&amp;lt;math&amp;gt;\;P_{i,i+1,i+2}(x)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
P_{i,i+1,i+2}(x)=\frac{x-X_{i+1}}{X_i-X_{i+1}}\frac{x-X_{i+2}}{X_i    -X_{i+2}}Y_i&lt;br /&gt;
             +\frac{x-X_i}{X_{i+1}-X_i}\frac{x-X_{i+2}}{X_{i+1}-X_{i+2}}Y_{i+1}&lt;br /&gt;
             +\frac{x-X_i}{X_{i+2}-X_i}\frac{x-X_{i+1}}{X_{i+2}-X_{i+1}}Y_{i+2}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Fatorando &amp;lt;math&amp;gt;\;1/(X_i-X_{i+2})&amp;lt;/math&amp;gt; e somando e subtraindo &amp;lt;math&amp;gt;\frac{x-X_i}{X_{i+1}-X_i}(x-X_{i+2})Y_{i+1}&amp;lt;/math&amp;gt;, obtemos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
P_{i,i+1,i+2}(x) =\frac{1}{X_i-X_{i+2}}\left[(x-X_{i+2})P_{i,i+1}(x)&lt;br /&gt;
-F(x)\right]&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
F(x)=(x-X_i)\left[\frac{x-X_{i+1}}{X_{i+2}-X_{i+1}}Y_{i+2}&lt;br /&gt;
-\frac{X_i-X_{i+2}}{X_{i+1}-X_i}\frac{x-X_{i+2}}{X_{i+1}-X_{i+2}}Y_{i+1} &lt;br /&gt;
+\frac{x-X_{i+2}}{X_{i+1}-X_i}Y_{i+1}\right]\;.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note que o último termo desta expressão corresponde àquele que foi subtraído após seu termo de sinal contrário ter&lt;br /&gt;
sido somado à expressão que levou a&amp;lt;math&amp;gt;\;P_{i,i+1}(x)&amp;lt;/math&amp;gt; na equação para&amp;lt;math&amp;gt;\;P_{i,i+1,i+2}(x)&amp;lt;/math&amp;gt;.&lt;br /&gt;
Rearranjando os termos acima, encontramos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
F(x)=(x-X_i)\left[\frac{x-X_{i+2}}{X_{i+1}-X_{i+2}}Y_{i+1}+\frac{x-X_{i+1}}{X_{i+2}-X_{i+1}}Y_{i+2}\right]&lt;br /&gt;
=(x-X_i)P_{i+1,i+2}(x)\;.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Substituindo este resultado na equação para&amp;lt;math&amp;gt;\;P_{i,i+1,i+2}(x)&amp;lt;/math&amp;gt;, obtemos finalmente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
P_{i,i+1,i+2}(x) =\frac{1}{X_i-X_{i+2}}\left[(x-X_{i+2})P_{i,i+1}(x)&lt;br /&gt;
-(x-X_i)P_{i+1,i+2}(x)\right]&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim, notamos que, de fato, há uma relação de recorrência bastante simples entre os polinômios que envolvem&lt;br /&gt;
&amp;lt;math&amp;gt;\;n&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;\;n+1&amp;lt;/math&amp;gt; pontos, cuja forma geral é dada por:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
P_{i,i+1,\cdots,i+k}(x) =\frac{1}{X_i-X_{i+k}}\left[(x-X_{i+k})P_{i,i+1,\cdots,i+k-1}(x)&lt;br /&gt;
-(x-X_i)P_{i+1,i+2,\cdots,i+k}(x)\right]&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Por ser muito mais simples de se implementar numericamente do que a expressão original para &amp;lt;math&amp;gt;\;P(x)&amp;lt;/math&amp;gt;,&lt;br /&gt;
é esta relação de recorrência que é, de fato, utilizada em cálculos numéricos. Os erros cometidos podem ser estimados calculando-se as diferenças entre as diferentes ordens do polinômio:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
D^{(1)}_{k,i}(x)=P_{i,i+1,\cdots,i+k}(x)-P_{i,i+1,\cdots,i+k-1}(x)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
e&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
D^{(2)}_{k,i}(x)=P_{i,i+1,\cdots,i+k}(x)-P_{i+1,i+2,\cdots,i+k}(x)\;.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ao invés de se gerar &amp;lt;math&amp;gt;\;P(x)&amp;lt;/math&amp;gt; a partir da relação de recorrência para &amp;lt;math&amp;gt;P_{i,i+1,\cdots,i+k}(x)&amp;lt;/math&amp;gt;, pode-se utilizar as equações acima e obter relações de recorrência para &amp;lt;math&amp;gt;\;D^{(1)} \mbox{ e } D^{(2)}&amp;lt;/math&amp;gt;. No final, obtemos &amp;lt;math&amp;gt;\;P(x)&amp;lt;/math&amp;gt; a partir destas quantidades. Este desenvolvimento é deixado como exercício.&lt;br /&gt;
&lt;br /&gt;
É importante notar que em nenhum ponto da discussão foi evocada a necessidade dos pontos &amp;lt;math&amp;gt;\;\{X_i\}&amp;lt;/math&amp;gt; serem igualmente espaçados. Portanto, as fórmulas apresentadas aqui podem ser aplicadas em situações bastante gerais.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Como discutido na seção [[Interpolação e extrapolação]], é desaconselhável o uso de polinômios de grau elevado. Por isto, apenas um pequeno subconjunto dos valores tabulados, nas vizinhanças do ponto de interesse &amp;lt;math&amp;gt;\;X&amp;lt;/math&amp;gt;, deve ser empregado.&lt;br /&gt;
Por exemplo, digamos que temos uma tabela com 100 pontos &amp;lt;math&amp;gt;\;\{(X_i,Y_i)\}&amp;lt;/math&amp;gt;. Se desejamos estimar o valor de &amp;lt;math&amp;gt;\;Y&amp;lt;/math&amp;gt; no interior da região &amp;lt;math&amp;gt;[X_1,\; X_N]&amp;lt;/math&amp;gt;, ao invés de construir um polinômio de grau 99, podemos, por exemplo, dividir o espaço em 25 sub-regiões e usar polinômios cúbicos em cada uma delas,&lt;br /&gt;
utilizando apenas &amp;lt;math&amp;gt;(X_{i-1},Y_{i-1}),\; (X_i,Y_i),\; (X_{i+1},Y_{i+1})&amp;lt;/math&amp;gt; e&amp;lt;math&amp;gt;\;(X_{i+2},Y_{i+2})&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Contudo, devemos notar que, embora a interpolação seja contínua nas interfaces das regiões, a continuidade das derivadas 1&amp;lt;sup&amp;gt;a&amp;lt;/sup&amp;gt; e 2&amp;lt;sup&amp;gt;a&amp;lt;/sup&amp;gt; não é garantida. Em situações em que estas propriedades importam, outras aproximações devem ser adotadas (veja, por exemplo, [[Spline Cúbico]]).&lt;br /&gt;
&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Ejagnes</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=M%C3%A9todos_computacionais&amp;diff=105</id>
		<title>Métodos computacionais</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=M%C3%A9todos_computacionais&amp;diff=105"/>
		<updated>2011-10-14T16:05:00Z</updated>

		<summary type="html">&lt;p&gt;Ejagnes: /* Métodos Computacionais A */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Física computacional é uma abordagem da &#039;&#039;&#039;física teórica&#039;&#039;&#039; com o auxílio do computador essencialmente&lt;br /&gt;
quando a complexidade do problema impossibilita o avanço pela via analítica e/ou porque os cálculos&lt;br /&gt;
numéricos são longos demais para serem feitos sem automação.&lt;br /&gt;
Alguns consideram a &#039;&#039;&#039;física computacional&#039;&#039;&#039; um terceiro (e mais recente) vértice do triângulo da maneira de se fazer física, onde os outros dois vértices são a &#039;&#039;&#039;física teórica&#039;&#039;&#039; e a &#039;&#039;&#039;física experimental&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Métodos computacionais&#039;&#039;&#039; é a disciplina onde estudamos ferramentas, métodos e algoritmos numéricos para a resolução de problemas de física onde uma abordagem analítica é extremamente complexa ou impossível.&lt;br /&gt;
&lt;br /&gt;
Alguns exemplos de aplicação são: a solução numérica de equações diferenciais ordinárias, integração numérica via métodos de aproximação ou estatísticos como método de Monte Carlo, equações diferencias parciais como as equações de Maxwell e de Schroedinger, métodos matriciais para a solução de problemas de autovalor e autovetor como os encontrados na Mecânica Quântica.&lt;br /&gt;
&lt;br /&gt;
==Breve Historia da Computação==&lt;br /&gt;
&lt;br /&gt;
De Conrad Zuse (1941) ao IBM Blue/Gene (2006)&lt;br /&gt;
&lt;br /&gt;
==Arquitectura==&lt;br /&gt;
&lt;br /&gt;
[http://en.wikipedia.org/wiki/Image:Personal_computer%2C_exploded_5.svg Diagrama de PC]&lt;br /&gt;
&lt;br /&gt;
== Ferramentas ==&lt;br /&gt;
===== [[Comandos Unix/Linux]]  =====&lt;br /&gt;
===== [[Gnuplot]] e [[xmgrace]] =====&lt;br /&gt;
===== [[LaTex]] =====&lt;br /&gt;
===== [[FORTRAN]] =====&lt;br /&gt;
===== [[C]] =====&lt;br /&gt;
&lt;br /&gt;
== Métodos Computacionais A ==&lt;br /&gt;
===== [[Derivada Numérica]] =====&lt;br /&gt;
===== [[Integração Numérica]] =====&lt;br /&gt;
===== [[Interpolação e extrapolação]] =====&lt;br /&gt;
====== [[Fórmula de Lagrange]]======&lt;br /&gt;
====== [[Spline cúbico]]======&lt;br /&gt;
&amp;lt;!--- ===== [[Eliminação gaussiana e retro-substituição]] ===== ---&amp;gt;&lt;br /&gt;
===== [[Zeros de Funções]]=====&lt;br /&gt;
===== [[Mínimos Quadrados]] =====&lt;br /&gt;
&lt;br /&gt;
== Métodos Computacionais B ==&lt;br /&gt;
&lt;br /&gt;
===== [[Integração numérica de equações diferenciais ordinárias]] =====&lt;br /&gt;
&lt;br /&gt;
===== [[Métodos multipassos]]=====&lt;br /&gt;
&lt;br /&gt;
===== [[Métodos de passo variável]]=====&lt;br /&gt;
&lt;br /&gt;
===== [[Aplicações (Mapas)]]=====&lt;br /&gt;
&lt;br /&gt;
===== [[Números Aleatórios]]=====&lt;br /&gt;
&lt;br /&gt;
===== [[Histogramas e Densidade de Probabilidade ]] =====&lt;br /&gt;
&lt;br /&gt;
===== [[Método de Monte Carlo (integraçào numérica)]]=====&lt;/div&gt;</summary>
		<author><name>Ejagnes</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Trapezio.png&amp;diff=104</id>
		<title>Arquivo:Trapezio.png</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Trapezio.png&amp;diff=104"/>
		<updated>2011-10-13T11:52:00Z</updated>

		<summary type="html">&lt;p&gt;Ejagnes: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Ejagnes</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Integrationsimpson.png&amp;diff=103</id>
		<title>Arquivo:Integrationsimpson.png</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Integrationsimpson.png&amp;diff=103"/>
		<updated>2011-10-13T11:51:29Z</updated>

		<summary type="html">&lt;p&gt;Ejagnes: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Ejagnes</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Integrationtrapezio.png&amp;diff=102</id>
		<title>Arquivo:Integrationtrapezio.png</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Integrationtrapezio.png&amp;diff=102"/>
		<updated>2011-10-13T11:51:07Z</updated>

		<summary type="html">&lt;p&gt;Ejagnes: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Ejagnes</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Integral.jpg&amp;diff=101</id>
		<title>Arquivo:Integral.jpg</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Integral.jpg&amp;diff=101"/>
		<updated>2011-10-13T11:50:47Z</updated>

		<summary type="html">&lt;p&gt;Ejagnes: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Ejagnes</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=M%C3%A9todos_computacionais&amp;diff=100</id>
		<title>Métodos computacionais</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=M%C3%A9todos_computacionais&amp;diff=100"/>
		<updated>2011-10-13T11:45:59Z</updated>

		<summary type="html">&lt;p&gt;Ejagnes: /* Métodos Computacionais A */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Física computacional é uma abordagem da &#039;&#039;&#039;física teórica&#039;&#039;&#039; com o auxílio do computador essencialmente&lt;br /&gt;
quando a complexidade do problema impossibilita o avanço pela via analítica e/ou porque os cálculos&lt;br /&gt;
numéricos são longos demais para serem feitos sem automação.&lt;br /&gt;
Alguns consideram a &#039;&#039;&#039;física computacional&#039;&#039;&#039; um terceiro (e mais recente) vértice do triângulo da maneira de se fazer física, onde os outros dois vértices são a &#039;&#039;&#039;física teórica&#039;&#039;&#039; e a &#039;&#039;&#039;física experimental&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Métodos computacionais&#039;&#039;&#039; é a disciplina onde estudamos ferramentas, métodos e algoritmos numéricos para a resolução de problemas de física onde uma abordagem analítica é extremamente complexa ou impossível.&lt;br /&gt;
&lt;br /&gt;
Alguns exemplos de aplicação são: a solução numérica de equações diferenciais ordinárias, integração numérica via métodos de aproximação ou estatísticos como método de Monte Carlo, equações diferencias parciais como as equações de Maxwell e de Schroedinger, métodos matriciais para a solução de problemas de autovalor e autovetor como os encontrados na Mecânica Quântica.&lt;br /&gt;
&lt;br /&gt;
==Breve Historia da Computação==&lt;br /&gt;
&lt;br /&gt;
De Conrad Zuse (1941) ao IBM Blue/Gene (2006)&lt;br /&gt;
&lt;br /&gt;
==Arquitectura==&lt;br /&gt;
&lt;br /&gt;
[http://en.wikipedia.org/wiki/Image:Personal_computer%2C_exploded_5.svg Diagrama de PC]&lt;br /&gt;
&lt;br /&gt;
== Ferramentas ==&lt;br /&gt;
===== [[Comandos Unix/Linux]]  =====&lt;br /&gt;
===== [[Gnuplot]] e [[xmgrace]] =====&lt;br /&gt;
===== [[LaTex]] =====&lt;br /&gt;
===== [[FORTRAN]] =====&lt;br /&gt;
===== [[C]] =====&lt;br /&gt;
&lt;br /&gt;
== Métodos Computacionais A ==&lt;br /&gt;
===== [[Derivada Numérica]] =====&lt;br /&gt;
===== [[Integração Numérica]] =====&lt;br /&gt;
===== [[Interpolação e extrapolação]] =====&lt;br /&gt;
===== [[Fórmula de Lagrange]]=====&lt;br /&gt;
===== [[Spline cúbico]]=====&lt;br /&gt;
===== [[Eliminação gaussiana e retro-substituição]] =====&lt;br /&gt;
===== [[Zeros de Funções]]=====&lt;br /&gt;
===== [[Mínimos Quadrados]] =====&lt;br /&gt;
&lt;br /&gt;
== Métodos Computacionais B ==&lt;br /&gt;
&lt;br /&gt;
===== [[Integração numérica de equações diferenciais ordinárias]] =====&lt;br /&gt;
&lt;br /&gt;
===== [[Métodos multipassos]]=====&lt;br /&gt;
&lt;br /&gt;
===== [[Métodos de passo variável]]=====&lt;br /&gt;
&lt;br /&gt;
===== [[Aplicações (Mapas)]]=====&lt;br /&gt;
&lt;br /&gt;
===== [[Números Aleatórios]]=====&lt;br /&gt;
&lt;br /&gt;
===== [[Histogramas e Densidade de Probabilidade ]] =====&lt;br /&gt;
&lt;br /&gt;
===== [[Método de Monte Carlo (integraçào numérica)]]=====&lt;/div&gt;</summary>
		<author><name>Ejagnes</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Integra%C3%A7%C3%A3o_Num%C3%A9rica&amp;diff=99</id>
		<title>Integração Numérica</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Integra%C3%A7%C3%A3o_Num%C3%A9rica&amp;diff=99"/>
		<updated>2011-10-13T11:42:16Z</updated>

		<summary type="html">&lt;p&gt;Ejagnes: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:integral.jpg|thumb|right|A integração numérica consiste em achar a aproximação numérica para o valor de &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Integração numérica&#039;&#039;&#039; é um termo amplo que abrange até a integração de equações diferenciais como é discutido&lt;br /&gt;
em Métodos Computacionais B. Aqui nos referimos exclusivamente ao cálculo numérico da &#039;&#039;&#039;integral definida&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; S = \int_{a}^{b} f(x) dx&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O termo &#039;&#039;&#039;definida&#039;&#039;&#039;, quer dizer que a integral se faz entre limites definidos, no caso &#039;&#039;&#039;a&#039;&#039;&#039; e &#039;&#039;&#039;b&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
O interesse de fazer esse cálculo numericamente se deve a:&lt;br /&gt;
&lt;br /&gt;
# existência de funções contínuas sem &#039;&#039;&#039;primitiva,&#039;&#039;&#039; o que inviabiliza a conta analítica.&lt;br /&gt;
# funções descontinuas ou definidas por trechos mas para as quais a integral não existe (no fundo é a falta de uma primitiva)&lt;br /&gt;
# funções (ou tabelas) provenientes de experimentos&lt;br /&gt;
# funções continuas e com primitiva de representação simbólica, porem de difícil avaliação na prática (mais difícil que avaliar a própria função)&lt;br /&gt;
 &lt;br /&gt;
== Definição ==&lt;br /&gt;
&lt;br /&gt;
Revisemos o conceito de &#039;&#039;&#039;integral&#039;&#039;&#039; do cálculo:&lt;br /&gt;
A &#039;&#039;&#039;integral&#039;&#039;&#039; definida de uma função f(x) no intervalo [a, b] se define como:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;S = \int_a^b f(x)\, dx = \lim_{N\to\infty} \sum_{i=0}^{N} f(x_i) \Delta x &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A integral de f(x) pode ser entendida como a soma de pequenos retângulos de base dx e altura f(x), onde o produto f(x) dx é a área deste retângulo.&amp;lt;br&amp;gt;&lt;br /&gt;
A soma de todas estas pequenas áreas, ou áreas infinitesimais, fornece a área total abaixo da curva.&amp;lt;br&amp;gt;&lt;br /&gt;
Mais precisamente podemos dizer que a integral acima é o valor limite da soma:&lt;br /&gt;
: &amp;lt;math&amp;gt; \sum_{i=0}^{N} f(x_i) \Delta x. &amp;lt;/math&amp;gt; &lt;br /&gt;
onde:&lt;br /&gt;
:&amp;lt;math&amp;gt;\Delta x = \frac{b-a}{N}&amp;lt;/math&amp;gt; &lt;br /&gt;
é o comprimento dos pequenos intervalos nos quais dividimos o intervalo (b-a), &amp;lt;math&amp;gt;f(x_i)&amp;lt;/math&amp;gt; &lt;br /&gt;
é o valor da função em algum ponto deste intervalo.&amp;lt;br&amp;gt;&lt;br /&gt;
Quando &amp;lt;math&amp;gt;N \to \infty&amp;lt;/math&amp;gt; o valor da soma acima é igual a área abaixo da curva.&lt;br /&gt;
&lt;br /&gt;
A integral também é conhecida como antiderivada: &lt;br /&gt;
:&amp;lt;math&amp;gt; \int f(x)dx = F(x)  \Leftrightarrow \frac{dF(x)}{dx}= f(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
Relembremos porque:&lt;br /&gt;
&lt;br /&gt;
== Teorema Fundamental do Cálculo ==&lt;br /&gt;
&lt;br /&gt;
Se resolvermos a integral acima entre os limites &#039;&#039;a&#039;&#039; e &#039;&#039;b&#039;&#039;, o resultado pode ser escrito como dependendo só dos extremos:&lt;br /&gt;
 &lt;br /&gt;
:&amp;lt;math&amp;gt; S =  \int_{a}^{b} f(x) dx = F(b) - F(a) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vamos ver agora como se isso for válido, então F(x) é a primitiva procurada.&lt;br /&gt;
&lt;br /&gt;
Calculando a integral entre &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;x + \Delta x&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \int_{x}^{x+\Delta x} f(x&#039;) dx&#039; = F(x + \Delta x) - F(x) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pela definição da integral entre limites definidos podemos escrevê-la como:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \int_{x}^{x+\Delta x} f(x&#039;) dx&#039; = f(x&#039;&#039;) \Delta x = F(x + \Delta x) - F(x) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt; x&#039;&#039;&amp;lt;/math&amp;gt; é um valor de &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; entre os extremos do intervalo.&lt;br /&gt;
&lt;br /&gt;
Passando o &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt; para a direita e tomando o limite quando ele vai para zero: &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \lim_{\Delta x \to 0 } f(x&#039;&#039;) = \lim_{\Delta x \to 0 } \frac{ F(x + \Delta x) - F(x) }{ \Delta x } \Rightarrow f(x) = \frac{d}{dx} F(x) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Demonstramos que a derivada de F(x) resulta ser a função f(x) que queremos integrar. Em outras palavras, o &#039;&#039;&#039;Teorema fundamental do Cálculo&#039;&#039;&#039;&lt;br /&gt;
diz que resolver uma integral se resume a achar a &#039;&#039;primitiva&#039;&#039;, ou seja uma função cuja derivada seja o integrando.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;O problema prático é que não todas as funções tem primitiva.&#039;&#039;&#039;. &lt;br /&gt;
Vejamos então.&lt;br /&gt;
&lt;br /&gt;
== Cálculo Numérico ==&lt;br /&gt;
&lt;br /&gt;
[[Image:Trapezio.png|right|frame|Ilustração da regra do retângulo.]]&lt;br /&gt;
&lt;br /&gt;
[[Image:integrationtrapezio.png|right|frame|Ilustração da regra do trapézio.]]&lt;br /&gt;
&lt;br /&gt;
[[Image:Integrationsimpson.png|right|frame|Ilustração da regra de Simpson.]]&lt;br /&gt;
&lt;br /&gt;
O cálculo numérico de uma integral definida se baseia na própria definição acima.&lt;br /&gt;
Com a diferença que N é finito. Obviamente quanto maior, melhor.&amp;lt;br&amp;gt;&lt;br /&gt;
 -Temos que pelos retângulos definidos pelo extremo esquerdo de cada subintervalo:&lt;br /&gt;
:&amp;lt;math&amp;gt;\int_a^b f(x)\, dx \approx S_e = \sum_{i=0}^{N-1} f(x_i) \Delta x &amp;lt;/math&amp;gt; &lt;br /&gt;
 -E pelos retângulos definidos pelo extremo direito de cada subintervalo:&lt;br /&gt;
:&amp;lt;math&amp;gt;\int_a^b f(x)\, dx \approx S_d = \sum_{i=1}^{N} f(x_i) \Delta x &amp;lt;/math&amp;gt;   &lt;br /&gt;
&lt;br /&gt;
 -[[Regra do Trapézio]]:&lt;br /&gt;
:&amp;lt;math&amp;gt;\int_a^b f(x)dx \approx S_t = \sum_{i=0}^{N-1} \frac{f(x_i)+f(x_i+\Delta x)}{2}\Delta x&amp;lt;/math&amp;gt;&lt;br /&gt;
onde:&lt;br /&gt;
:&amp;lt;math&amp;gt;x_i = a + i \Delta x,\;\;  \Delta x = \frac{b-a}{N}&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Esta última pode ser reescrita como:&lt;br /&gt;
:&amp;lt;math&amp;gt;\left(\frac{f(a)+f(b)}{2} + \sum_{i=1}^{N-1} f(x_i)\right)\Delta x&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Também pode se verificar que a integral calculada com os trapézios é a média das integrais calculadas com retângulos:&lt;br /&gt;
:&amp;lt;math&amp;gt;S_t = (S_e + S_d)/2&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 -[[Regra de Simpson]]:&lt;br /&gt;
&lt;br /&gt;
Notemos que o método do trapézio é baseado na ideia de passar uma reta por 2 pontos e aproximar a área da função f(x) pela área sob a curva definida pelo trapézio.&lt;br /&gt;
&lt;br /&gt;
A regra de Simpson é uma extensão disto: a ideia é  passar uma parábola por três pontos consecutivos e calcular a área definida por ela. Se tivermos apenas 3 pontos, a integral da parábola que passa entre &amp;lt;math&amp;gt; x_{1} , x_{3}&amp;lt;/math&amp;gt; é dada por:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;S= \int_{x_1}^{x_3} f(x) \, dx \approx \frac{x_3-x_1}{6}\left[f(x_1) + 4f\left(\frac{x_1+x_3}{2}\right)+f(x_3)\right]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
No entanto, para integrarmos sobre toda o intervalo &amp;lt;math&amp;gt;\left[ x_{1} ; x_{n}\right]&amp;lt;/math&amp;gt; com boa precisão, é necessário dividi-lo em N intervalos, com N grande. Assim,  é preciso traçar  uma parábola a cada  três pontos consecutivo e a expressão final da fórmula de Simpson é então a soma da área sob todas as parábolas do intervalo &amp;lt;math&amp;gt;\left[ x_{1} ; x_{n}\right]&amp;lt;/math&amp;gt; : &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;S=  \int_{x_1}^{x_n} f(x)dx \simeq \frac{h}{3}\left[f(x_1)+4f(x_2)+2f(x_3)+4f(x_4)+\ldots+4f(x_{n-1})+f(x_n)\right]&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt; h =  (x_{n} - x_{1} )/N &amp;lt;/math&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A dedução da regra de Simpson pode ser encontrada por exemplo  em [http://davinci.if.ufrgs.br/wiki/index.php/Regra_de_Simpson]&lt;br /&gt;
&lt;br /&gt;
== Programação ==&lt;br /&gt;
A seguir um trecho do programa para cálculo da integral da função f(x) (&#039;&#039;external function f(x)&#039;&#039;)&amp;lt;br/&amp;gt;&lt;br /&gt;
entre a e b com N pontos, usando o método dos retângulos pela esquerda:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
Read*, a, b, N&lt;br /&gt;
dx = (b-a)/N;  S=0&lt;br /&gt;
&lt;br /&gt;
Do i = 0, N-1&lt;br /&gt;
   x = a + i*dx&lt;br /&gt;
   S = S + f(x)&lt;br /&gt;
EndDo&lt;br /&gt;
Print*, &amp;quot;Integral S=&amp;quot;, S*dx&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Os outros métodos se programam de maneira similar mudando limites (índice do laço)&amp;lt;br /&amp;gt;&lt;br /&gt;
e/ou tratando de forma diferente os valores das pontas.&lt;br /&gt;
&lt;br /&gt;
== Erro associado ao método numérico ==&lt;br /&gt;
&lt;br /&gt;
O método de integração numérico não retorna o valor exato de uma função, visto que não podemos ter no computador &amp;lt;math&amp;gt;N\to\infty&amp;lt;/math&amp;gt;. O erro aqui discutido estará vinculado ao número de divisões &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; realizada na função &amp;lt;math&amp;gt;f(x)&amp;lt;/math&amp;gt; dentro do intervalo que se quer saber o valor da integral. Assim, o erro é definido como&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;erro=\frac{Int(N)-Int(N-1)}{Int(N)}&amp;lt;/math&amp;gt;,&lt;br /&gt;
onde &amp;lt;math&amp;gt;Int(N)&amp;lt;/math&amp;gt; é o valor retornado pelo método numérico utilizado utilizando &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; divisões e &amp;lt;math&amp;gt;Int(N-1)&amp;lt;/math&amp;gt; utilizando &amp;lt;math&amp;gt;N-1&amp;lt;/math&amp;gt; divisões. Note que um teste simples para verificar quando a resposta está convergindo é aumentar &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; e calcular o erro a cada incremento no seu valor.&lt;/div&gt;</summary>
		<author><name>Ejagnes</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Derivada_Num%C3%A9rica&amp;diff=98</id>
		<title>Derivada Numérica</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Derivada_Num%C3%A9rica&amp;diff=98"/>
		<updated>2011-10-07T17:16:27Z</updated>

		<summary type="html">&lt;p&gt;Ejagnes: /* Exemplo */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A  derivada de uma função  &amp;lt;math&amp;gt;f(x)&amp;lt;/math&amp;gt; é definida como um processo de limite, o qual é matematicamente descrito por:&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width: 75%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;math&amp;gt;f&#039;(x)=\lim_{\Delta x\to 0}{f(x+\Delta x)-f(x)\over \Delta x}&amp;lt;/math&amp;gt; || (Eq. 1)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Numericamente é impossível tomarmos o limite  &amp;lt;math&amp;gt;\Delta x\to 0&amp;lt;/math&amp;gt;; temos necessariamente que trabalhar com um valor de  &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt; &#039;&#039;finito&#039;&#039;. Portanto, a todo cálculo numérico de uma derivada será associado um &#039;&#039;erro numérico&#039;&#039;. Abaixo veremos dois métodos numéricos para calcular derivadas e estimaremos os erros associados a tais métodos. &lt;br /&gt;
&lt;br /&gt;
== Derivada à direita ==&lt;br /&gt;
&lt;br /&gt;
Este método se baseia na definição formal de derivada. Para um dado valor de incremento &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt;, podemos estimar a derivada da função:&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width: 75%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;math&amp;gt;f&#039;(x) \approx {f(x+\Delta x)-f(x)\over \Delta x}&amp;lt;/math&amp;gt; || (Eq. 2)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
A expressão a direita é chamada de quociente diferencial de Newton. Existem duas fontes de erro nessa expressão, o erro de  &#039;&#039;&#039;arredondamento&#039;&#039;&#039; e o erro de &#039;&#039;&#039;truncamento&#039;&#039;&#039;. O primeiro é um erro associado à precisão numérica dos computadores, que é  finita (o número de casas dos números).&lt;br /&gt;
Comparando a expressão (2) com a (1), notamos que, quanto menor o valor de &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt;, o valor estimado numericamente é mais próximo ao valor real. No entanto, numericamente não podemos tomar &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt; tão pequeno quanto se queira, porque há um limite de precisão numérica. Assim,  na região do &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt; pequeno há o tipo de erro chamado de &#039;&#039;&#039;erro de arredondamento&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
Por exemplo, se o nosso computador hipotético processar uma operação matemática com 4 casas decimais, temos que, para a função &amp;lt;math&amp;gt;f(x) = x^2 &amp;lt;/math&amp;gt;,   &amp;lt;math&amp;gt; f(0,1) = 0,01&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt; f(0,1001) = 0,01002001&amp;lt;/math&amp;gt;. Note que, usando a precisão de nosso computador, &amp;lt;math&amp;gt;f(x) = f(x+\Delta x)&amp;lt;/math&amp;gt; no caso em que &amp;lt;math&amp;gt;x = 0,01&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;\Delta x = 0,001&amp;lt;/math&amp;gt;. Com isso, o resultado da derivada numérica seria &amp;lt;math&amp;gt;f\, &#039;(0,1) = 0&amp;lt;/math&amp;gt;, o que sabemos não ser verdade, já que podemos calcular essa derivada analiticamente. Isso coloca um limite inferior para o incremento &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt;, e assim para a precisão da estimativa numérica da derivada.&lt;br /&gt;
&lt;br /&gt;
O segundo tipo de erro  podemos dizer que é &amp;quot;intrínseco&amp;quot; ao método numérico. Para estimá-lo, faremos uso da expansão em série de Taylor da função :&amp;lt;math&amp;gt;f&#039;(x)&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width: 75%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;math&amp;gt;f(x+\Delta x) = f(x) + f&#039;(x)\Delta x + \frac{1}{2}f&#039;&#039;(x)(\Delta x)^2 + \frac{1}{6}f&#039;&#039;&#039;(x)(\Delta x)^3 + ...&amp;lt;/math&amp;gt; || (Eq. 3)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
manipulando os termos acima, temos:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;{f(x+\Delta x)-f(x)\over \Delta x} = f&#039; + \frac{1}{2}f&#039;&#039;\Delta x + ... \, ,&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
e assim&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;f&#039; = \underbrace{{f(x+\Delta x)-f(x)\over \Delta x}}_{Quociente\; de\; Newton} - \frac{1}{2}f&#039;&#039;\Delta x + ... \, .&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Comparando a expressão acima com o método de de derivada à direita , Eq. 2,  notamos que a diferença existe a partir do termo &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt;. Podemos dizer que o erro ao usar a quociente de Newton para calcular a derivada é proporcional à &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt;. Assim, vemos que o erro cresce &#039;&#039;linearmente&#039;&#039; com &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt; e portanto devemos usar valores pequenos do incremento.&lt;br /&gt;
&lt;br /&gt;
Resumindo, por um lado temos o &#039;&#039;&#039;erro de truncamento&#039;&#039;&#039; e pelo outro o de &#039;&#039;&#039;arredondamento&#039;&#039;&#039;, onde o valor ótimo será uma solução de compromisso entre os dois tipos de erro. Vemos então que deve haver um &#039;&#039;intervalo de valores&#039;&#039; dentro do qual o  &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt; deve variar para que a derivada numérica seja a mais próxima do valor real possível. Nas figuras 5 e 6 mostramos um exemplo.&lt;br /&gt;
&lt;br /&gt;
== Derivada Centrada ==&lt;br /&gt;
&lt;br /&gt;
Outro cálculo numérico da derivada pode ser feito baseado na declividade de &#039;&#039;&#039;dois&#039;&#039;&#039; pontos próximos, um antes e outro depois do ponto onde queremos avaliar a derivada.&lt;br /&gt;
&lt;br /&gt;
A declividade da linha definida por esses dois pontos é:&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width: 75%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;math&amp;gt;f&#039;(x)\approx {f(x+\Delta x)-f(x-\Delta x)\over 2\Delta x}&amp;lt;/math&amp;gt; || (Eq. 4)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
que é chamada de &#039;&#039;&#039;derivada centrada&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Podemos mostrar que o erro intrínseco a este método é menor do que o erro associado ao método anterior.   Para  estimar o erro de truncamento, expandimos &amp;lt;math&amp;gt;f(x) &amp;lt;/math&amp;gt; em torno de &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt; ( feito na Eq(3)) e em torno de  &amp;lt;math&amp;gt; -\Delta x&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;f(x-\Delta x) = f(x) + f&#039;(x)(-\Delta x) + \frac{1}{2}f&#039;&#039;(x)(-\Delta x)^2 - {1\over 6}f&#039;&#039;&#039;(x)(\Delta x)^3 + ...&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Somando &amp;lt;math&amp;gt;f(x+\Delta x) &amp;lt;/math&amp;gt;  dada pela Eq.(3) e os termos de &amp;lt;math&amp;gt;f(x-\Delta x) &amp;lt;/math&amp;gt;  da expressao acima, notamos que os termos lineares em &amp;lt;math&amp;gt; -\Delta x&amp;lt;/math&amp;gt;  se cancelam. Isolando &amp;lt;math&amp;gt; f&#039;(x)&amp;lt;/math&amp;gt;, temos: &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;f&#039;(x) = \underbrace{{f(x+\Delta x)-f(x-\Delta x)\over 2\Delta x}}  -{2\over 6}f&#039;&#039;&#039;(x)(\Delta x)^2 + ...&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Comparando a expressão acima com a definição do método de derivada centrada, Eq. 4, notamos que  o erro de truncamento  é da ordem de &amp;lt;math&amp;gt;(\Delta x)^2&amp;lt;/math&amp;gt;. Para &amp;lt;math&amp;gt;|\Delta x| &amp;lt; 1 &amp;lt;/math&amp;gt;, vemos que o erro de truncamento associado ao método de derivada centrada é menor do que o erro para a derivada à direita.&lt;br /&gt;
&lt;br /&gt;
== Medida numérica do Erro associado a cada método ==&lt;br /&gt;
&lt;br /&gt;
Para ter uma estimativa do erro associado a utilização da derivada numérica, podemos comparar valores utilizando uma função que tem sua derivada conhecida analiticamente. Assim, o erro é dado por&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; erro = {|f&#039;_{AN}(x) - f&#039;_{NUM}(x)| \over |f&#039;_{NUM}(x)|}, &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;f&#039;_{AN}(x)&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;f&#039;_{NUM}(x)&amp;lt;/math&amp;gt; são as derivada analítica e numérica de &amp;lt;math&amp;gt; f(x) &amp;lt;/math&amp;gt;, respectivamente.&lt;br /&gt;
&lt;br /&gt;
Note que, multiplicando o erro por 100, temos a porcentagem de erro que acompanha a derivada numérica.&lt;br /&gt;
&lt;br /&gt;
== Programa ==&lt;br /&gt;
&lt;br /&gt;
Implementar a derivada numérica em [[FORTRAN]] é apenas uma linha de código:&lt;br /&gt;
&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
 Df = (f(x+h) - f(x))/h&lt;br /&gt;
&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
Onde f(x) deve ser definida num bloco FUNCTION F(x) ... END FUNCTION F.&lt;br /&gt;
&lt;br /&gt;
O resto depende de onde e para que queremos calcular a derivada.&lt;br /&gt;
&lt;br /&gt;
== Exemplo ==&lt;br /&gt;
&lt;br /&gt;
Como demonstração, usaremos a função &amp;lt;math&amp;gt;f(x)&amp;lt;/math&amp;gt; dada por&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;f(x) = \frac{\sin(x^2) e^{x/3}}{\sqrt{x^2+4}}.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Os gráficos abaixo ilustram os métodos de derivada à direita (figuras 1 e 2) e derivada centrada (figuras 3 e 4), ambos com &amp;lt;math&amp;gt;x=0,6&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;\Delta x = 0,4&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Primeiramente, a figura 1 mostra a derivada à direita, onde a curva em vermelho representa &amp;lt;math&amp;gt;f(x)&amp;lt;/math&amp;gt; e a curva em azul representa a derivada de &amp;lt;math&amp;gt;f(x)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[Imagem:derivada3.png|thumb|300px|left|Figura 1 - Derivada à direita]]&lt;br /&gt;
&lt;br /&gt;
A figura 2 mostra um zoom no ponto &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; com a curva da derivada calculada pelo método descrito acima. Em azul a derivada calculada numericamente, só que agora com um deslocamento em &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt; para passar pelo ponto &amp;lt;math&amp;gt;(f(x),x)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[Imagem:derivada4.png|thumb|300px|Figura 2 - Derivada à direita (zoom)]]&lt;br /&gt;
&lt;br /&gt;
O exemplo do método de derivada centrada está representado na figura 3. Em vermelho a curva &amp;lt;math&amp;gt;f(x)&amp;lt;/math&amp;gt; e em azul a sua derivada.&lt;br /&gt;
&lt;br /&gt;
[[Imagem:derivada1.png|thumb|300px|left|Figura 3 - Derivada centrada]]&lt;br /&gt;
&lt;br /&gt;
A figura 4 mostra um zoom com a curva da derivada centrada em &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[Imagem:derivada2.png|thumb|300px|Figura 4 - Derivada centrada (zoom)]]&lt;br /&gt;
&lt;br /&gt;
Além da ilustração dos métodos de derivação numérica, as figuras 5 e 6 mostram o gráfico do valor retornado pelo método da derivação à direita em função do incremento &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt; utilizado. &lt;br /&gt;
&lt;br /&gt;
[[Imagem:der.png|thumb|300px|left|Figura 5 - Erros de truncamento e precisão]]&lt;br /&gt;
&lt;br /&gt;
[[Imagem:der_zoom.png|thumb|300px|Figura 6 - Erros de truncamento e precisão (zoom)]]&lt;br /&gt;
&lt;br /&gt;
Na figura 5, a derivada numérica em x=3 em função do &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt; utilizado. O valor exato da derivada é &amp;lt;math&amp;gt;f&#039;(3)=-4.08963&amp;lt;/math&amp;gt;. Diminuindo o valor do incremento, vemos que em volta de &amp;lt;math&amp;gt;\Delta x = 0.01&amp;lt;/math&amp;gt; a derivada começa a convergir, piorando a partir de &amp;lt;math&amp;gt;\Delta x = 10^{-6}&amp;lt;/math&amp;gt;. Para valores muito pequenos temos o erro de arredondamento e para valores muito alto temos o erro de truncamento.&lt;br /&gt;
&lt;br /&gt;
Na figura 6 vemos ampliada a região de convergência, onde o valor de &amp;lt;math&amp;gt;\Delta x = 8x10^{-5}&amp;lt;/math&amp;gt; parece ser o ótimo.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTA:&#039;&#039;&#039; os programa FORTRAN usado para o calculo da derivada esta em Real (ou Real*4, ou seja ponto flutuante em representação de 32 bits). Como seria em dupla precisão (Real*8)?&lt;br /&gt;
&lt;br /&gt;
== Links Externos==&lt;br /&gt;
&lt;br /&gt;
*[http://www.sitmo.com/eqcat/12 Numerical Differentiation] Quant Equation Archive, sitmo&lt;br /&gt;
* http://mathworld.wolfram.com/NumericalDifferentiation.html&lt;br /&gt;
* http://math.fullerton.edu/mathews/n2003/NumericalDiffMod.html&lt;/div&gt;</summary>
		<author><name>Ejagnes</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Derivada_Num%C3%A9rica&amp;diff=97</id>
		<title>Derivada Numérica</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Derivada_Num%C3%A9rica&amp;diff=97"/>
		<updated>2011-10-07T17:13:27Z</updated>

		<summary type="html">&lt;p&gt;Ejagnes: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A  derivada de uma função  &amp;lt;math&amp;gt;f(x)&amp;lt;/math&amp;gt; é definida como um processo de limite, o qual é matematicamente descrito por:&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width: 75%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;math&amp;gt;f&#039;(x)=\lim_{\Delta x\to 0}{f(x+\Delta x)-f(x)\over \Delta x}&amp;lt;/math&amp;gt; || (Eq. 1)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Numericamente é impossível tomarmos o limite  &amp;lt;math&amp;gt;\Delta x\to 0&amp;lt;/math&amp;gt;; temos necessariamente que trabalhar com um valor de  &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt; &#039;&#039;finito&#039;&#039;. Portanto, a todo cálculo numérico de uma derivada será associado um &#039;&#039;erro numérico&#039;&#039;. Abaixo veremos dois métodos numéricos para calcular derivadas e estimaremos os erros associados a tais métodos. &lt;br /&gt;
&lt;br /&gt;
== Derivada à direita ==&lt;br /&gt;
&lt;br /&gt;
Este método se baseia na definição formal de derivada. Para um dado valor de incremento &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt;, podemos estimar a derivada da função:&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width: 75%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;math&amp;gt;f&#039;(x) \approx {f(x+\Delta x)-f(x)\over \Delta x}&amp;lt;/math&amp;gt; || (Eq. 2)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
A expressão a direita é chamada de quociente diferencial de Newton. Existem duas fontes de erro nessa expressão, o erro de  &#039;&#039;&#039;arredondamento&#039;&#039;&#039; e o erro de &#039;&#039;&#039;truncamento&#039;&#039;&#039;. O primeiro é um erro associado à precisão numérica dos computadores, que é  finita (o número de casas dos números).&lt;br /&gt;
Comparando a expressão (2) com a (1), notamos que, quanto menor o valor de &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt;, o valor estimado numericamente é mais próximo ao valor real. No entanto, numericamente não podemos tomar &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt; tão pequeno quanto se queira, porque há um limite de precisão numérica. Assim,  na região do &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt; pequeno há o tipo de erro chamado de &#039;&#039;&#039;erro de arredondamento&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
Por exemplo, se o nosso computador hipotético processar uma operação matemática com 4 casas decimais, temos que, para a função &amp;lt;math&amp;gt;f(x) = x^2 &amp;lt;/math&amp;gt;,   &amp;lt;math&amp;gt; f(0,1) = 0,01&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt; f(0,1001) = 0,01002001&amp;lt;/math&amp;gt;. Note que, usando a precisão de nosso computador, &amp;lt;math&amp;gt;f(x) = f(x+\Delta x)&amp;lt;/math&amp;gt; no caso em que &amp;lt;math&amp;gt;x = 0,01&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;\Delta x = 0,001&amp;lt;/math&amp;gt;. Com isso, o resultado da derivada numérica seria &amp;lt;math&amp;gt;f\, &#039;(0,1) = 0&amp;lt;/math&amp;gt;, o que sabemos não ser verdade, já que podemos calcular essa derivada analiticamente. Isso coloca um limite inferior para o incremento &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt;, e assim para a precisão da estimativa numérica da derivada.&lt;br /&gt;
&lt;br /&gt;
O segundo tipo de erro  podemos dizer que é &amp;quot;intrínseco&amp;quot; ao método numérico. Para estimá-lo, faremos uso da expansão em série de Taylor da função :&amp;lt;math&amp;gt;f&#039;(x)&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width: 75%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;math&amp;gt;f(x+\Delta x) = f(x) + f&#039;(x)\Delta x + \frac{1}{2}f&#039;&#039;(x)(\Delta x)^2 + \frac{1}{6}f&#039;&#039;&#039;(x)(\Delta x)^3 + ...&amp;lt;/math&amp;gt; || (Eq. 3)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
manipulando os termos acima, temos:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;{f(x+\Delta x)-f(x)\over \Delta x} = f&#039; + \frac{1}{2}f&#039;&#039;\Delta x + ... \, ,&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
e assim&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;f&#039; = \underbrace{{f(x+\Delta x)-f(x)\over \Delta x}}_{Quociente\; de\; Newton} - \frac{1}{2}f&#039;&#039;\Delta x + ... \, .&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Comparando a expressão acima com o método de de derivada à direita , Eq. 2,  notamos que a diferença existe a partir do termo &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt;. Podemos dizer que o erro ao usar a quociente de Newton para calcular a derivada é proporcional à &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt;. Assim, vemos que o erro cresce &#039;&#039;linearmente&#039;&#039; com &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt; e portanto devemos usar valores pequenos do incremento.&lt;br /&gt;
&lt;br /&gt;
Resumindo, por um lado temos o &#039;&#039;&#039;erro de truncamento&#039;&#039;&#039; e pelo outro o de &#039;&#039;&#039;arredondamento&#039;&#039;&#039;, onde o valor ótimo será uma solução de compromisso entre os dois tipos de erro. Vemos então que deve haver um &#039;&#039;intervalo de valores&#039;&#039; dentro do qual o  &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt; deve variar para que a derivada numérica seja a mais próxima do valor real possível. Nas figuras 5 e 6 mostramos um exemplo.&lt;br /&gt;
&lt;br /&gt;
== Derivada Centrada ==&lt;br /&gt;
&lt;br /&gt;
Outro cálculo numérico da derivada pode ser feito baseado na declividade de &#039;&#039;&#039;dois&#039;&#039;&#039; pontos próximos, um antes e outro depois do ponto onde queremos avaliar a derivada.&lt;br /&gt;
&lt;br /&gt;
A declividade da linha definida por esses dois pontos é:&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width: 75%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;math&amp;gt;f&#039;(x)\approx {f(x+\Delta x)-f(x-\Delta x)\over 2\Delta x}&amp;lt;/math&amp;gt; || (Eq. 4)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
que é chamada de &#039;&#039;&#039;derivada centrada&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Podemos mostrar que o erro intrínseco a este método é menor do que o erro associado ao método anterior.   Para  estimar o erro de truncamento, expandimos &amp;lt;math&amp;gt;f(x) &amp;lt;/math&amp;gt; em torno de &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt; ( feito na Eq(3)) e em torno de  &amp;lt;math&amp;gt; -\Delta x&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;f(x-\Delta x) = f(x) + f&#039;(x)(-\Delta x) + \frac{1}{2}f&#039;&#039;(x)(-\Delta x)^2 - {1\over 6}f&#039;&#039;&#039;(x)(\Delta x)^3 + ...&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Somando &amp;lt;math&amp;gt;f(x+\Delta x) &amp;lt;/math&amp;gt;  dada pela Eq.(3) e os termos de &amp;lt;math&amp;gt;f(x-\Delta x) &amp;lt;/math&amp;gt;  da expressao acima, notamos que os termos lineares em &amp;lt;math&amp;gt; -\Delta x&amp;lt;/math&amp;gt;  se cancelam. Isolando &amp;lt;math&amp;gt; f&#039;(x)&amp;lt;/math&amp;gt;, temos: &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;f&#039;(x) = \underbrace{{f(x+\Delta x)-f(x-\Delta x)\over 2\Delta x}}  -{2\over 6}f&#039;&#039;&#039;(x)(\Delta x)^2 + ...&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Comparando a expressão acima com a definição do método de derivada centrada, Eq. 4, notamos que  o erro de truncamento  é da ordem de &amp;lt;math&amp;gt;(\Delta x)^2&amp;lt;/math&amp;gt;. Para &amp;lt;math&amp;gt;|\Delta x| &amp;lt; 1 &amp;lt;/math&amp;gt;, vemos que o erro de truncamento associado ao método de derivada centrada é menor do que o erro para a derivada à direita.&lt;br /&gt;
&lt;br /&gt;
== Medida numérica do Erro associado a cada método ==&lt;br /&gt;
&lt;br /&gt;
Para ter uma estimativa do erro associado a utilização da derivada numérica, podemos comparar valores utilizando uma função que tem sua derivada conhecida analiticamente. Assim, o erro é dado por&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; erro = {|f&#039;_{AN}(x) - f&#039;_{NUM}(x)| \over |f&#039;_{NUM}(x)|}, &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;f&#039;_{AN}(x)&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;f&#039;_{NUM}(x)&amp;lt;/math&amp;gt; são as derivada analítica e numérica de &amp;lt;math&amp;gt; f(x) &amp;lt;/math&amp;gt;, respectivamente.&lt;br /&gt;
&lt;br /&gt;
Note que, multiplicando o erro por 100, temos a porcentagem de erro que acompanha a derivada numérica.&lt;br /&gt;
&lt;br /&gt;
== Programa ==&lt;br /&gt;
&lt;br /&gt;
Implementar a derivada numérica em [[FORTRAN]] é apenas uma linha de código:&lt;br /&gt;
&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
 Df = (f(x+h) - f(x))/h&lt;br /&gt;
&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
Onde f(x) deve ser definida num bloco FUNCTION F(x) ... END FUNCTION F.&lt;br /&gt;
&lt;br /&gt;
O resto depende de onde e para que queremos calcular a derivada.&lt;br /&gt;
&lt;br /&gt;
== Exemplo ==&lt;br /&gt;
&lt;br /&gt;
Como demonstração, usaremos a função &amp;lt;math&amp;gt;f(x)&amp;lt;/math&amp;gt; dada por&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;f(x) = \frac{\sin(x^2) e^{x/3}}{\sqrt{x^2+4}}.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Os gráficos abaixo ilustram os métodos de derivada à direita (figuras 1 e 2) e derivada centrada (figuras 3 e 4), ambos com &amp;lt;math&amp;gt;x=0,6&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;\Delta x = 0,4&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Primeiramente, a figura 1 mostra a derivada à direita, onde a curva em vermelho representa &amp;lt;math&amp;gt;f(x)&amp;lt;/math&amp;gt; e a curva em azul representa a derivada de &amp;lt;math&amp;gt;f(x)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[Imagem:derivada3.png|thumb|300px|left|Figura 1 - Derivada à direita]]&lt;br /&gt;
&lt;br /&gt;
A figura 2 mostra um zoom no ponto &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; com a curva da derivada calculada pelo método descrito acima. Em azul a derivada calculada numericamente, só que agora com um deslocamento em &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt; para passar pelo ponto &amp;lt;math&amp;gt;(f(x),x)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[Imagem:derivada4.png|thumb|300px|Figura 2 - Derivada à direita (zoom)]]&lt;br /&gt;
&lt;br /&gt;
O exemplo do método de derivada centrada está representado na figura 3. Em vermelho a curva &amp;lt;math&amp;gt;f(x)&amp;lt;/math&amp;gt; e em azul a sua derivada.&lt;br /&gt;
&lt;br /&gt;
[[Imagem:derivada1.png|thumb|300px|left|Figura 3 - Derivada centrada]]&lt;br /&gt;
&lt;br /&gt;
A figura 4 mostra um zoom com a curva da derivada centrada em &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[Imagem:derivada2.png|thumb|300px|Figura 4 - Derivada centrada (zoom)]]&lt;br /&gt;
&lt;br /&gt;
Além da ilustração dos métodos de derivação numérica, as figuras 5 e 6 mostram o gráfico do valor retornado pelo método da derivação à direita em função do incremento &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt; utilizado. &lt;br /&gt;
&lt;br /&gt;
[[Imagem:der.png|thumb|300px|left|Figura 5 - Erros de truncamento e precisão]]&lt;br /&gt;
&lt;br /&gt;
[[Imagem:der_zoom.png|thumb|300px|Figura 6 - Erros de truncamento e precisão (zoom)]]&lt;br /&gt;
&lt;br /&gt;
Na figura 5, a derivada em x=3 numérica em função do &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt; utilizado. O valor exato da derivada em é &amp;lt;math&amp;gt;f&#039;(3)=-4.08963&amp;lt;/math&amp;gt;. Diminuindo o valor do incremento, vemos que em volta de &amp;lt;math&amp;gt;\Delta x = 0.01&amp;lt;/math&amp;gt; começa a convergir, piorando a partir de &amp;lt;math&amp;gt;\Delta x = 10^{-6}&amp;lt;/math&amp;gt;. Para valores muito pequenos temos o erro de arredondamento e para valores muito alto temos o erro de truncamento.&lt;br /&gt;
&lt;br /&gt;
Na figura 6 vemos ampliada a região de convergência, onde o valor de &amp;lt;math&amp;gt;\Delta x = 8x10^{-5}&amp;lt;/math&amp;gt; parece ser o ótimo.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTA:&#039;&#039;&#039; os programa FORTRAN usado para o calculo da derivada esta em Real (ou Real*4, ou seja ponto flutuante em representação de 32 bits). Como seria em dupla precisão (Real*8)?&lt;br /&gt;
&lt;br /&gt;
== Links Externos==&lt;br /&gt;
&lt;br /&gt;
*[http://www.sitmo.com/eqcat/12 Numerical Differentiation] Quant Equation Archive, sitmo&lt;br /&gt;
* http://mathworld.wolfram.com/NumericalDifferentiation.html&lt;br /&gt;
* http://math.fullerton.edu/mathews/n2003/NumericalDiffMod.html&lt;/div&gt;</summary>
		<author><name>Ejagnes</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Derivada_Num%C3%A9rica&amp;diff=96</id>
		<title>Derivada Numérica</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Derivada_Num%C3%A9rica&amp;diff=96"/>
		<updated>2011-10-07T17:11:35Z</updated>

		<summary type="html">&lt;p&gt;Ejagnes: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A  derivada de uma função  &amp;lt;math&amp;gt;f(x)&amp;lt;/math&amp;gt; é definida como um processo de limite, o qual é matematicamente descrito por:&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width: 75%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;math&amp;gt;f&#039;(x)=\lim_{\Delta x\to 0}{f(x+\Delta x)-f(x)\over \Delta x}&amp;lt;/math&amp;gt; || (Eq. 1)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Numericamente é impossível tomarmos o limite  &amp;lt;math&amp;gt;\Delta x\to 0&amp;lt;/math&amp;gt;; temos necessariamente que trabalhar com um valor de  &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt; &#039;&#039;finito&#039;&#039;. Portanto, a todo cálculo numérico de uma derivada será associado um &#039;&#039;erro numérico&#039;&#039;. Abaixo veremos dois métodos numéricos para calcular derivadas e estimaremos os erros associados a tais métodos. &lt;br /&gt;
&lt;br /&gt;
== Derivada à direita ==&lt;br /&gt;
&lt;br /&gt;
Este método se baseia na definição formal de derivada. Para um dado valor de incremento &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt;, podemos estimar a derivada da função:&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width: 75%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;math&amp;gt;f&#039;(x) \approx {f(x+\Delta x)-f(x)\over \Delta x}&amp;lt;/math&amp;gt; || (Eq. 2)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
A expressão a direita é chamada de quociente diferencial de Newton. Existem duas fontes de erro nessa expressão, o erro de  &#039;&#039;&#039;arredondamento&#039;&#039;&#039; e o erro de &#039;&#039;&#039;truncamento&#039;&#039;&#039;. O primeiro é um erro associado à precisão numérica dos computadores, que é  finita (o número de casas dos números).&lt;br /&gt;
Comparando a expressão (2) com a (1), notamos que, quanto menor o valor de &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt;, o valor estimado numericamente é mais próximo ao valor real. No entanto, numericamente não podemos tomar &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt; tão pequeno quanto se queira, porque há um limite de precisão numérica. Assim,  na região do &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt; pequeno há o tipo de erro chamado de &#039;&#039;&#039;erro de arredondamento&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
Por exemplo, se o nosso computador hipotético processar uma operação matemática com 4 casas decimais, temos que, para a função &amp;lt;math&amp;gt;f(x) = x^2 &amp;lt;/math&amp;gt;,   &amp;lt;math&amp;gt; f(0,1) = 0,01&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt; f(0,1001) = 0,01002001&amp;lt;/math&amp;gt;. Note que, usando a precisão de nosso computador, &amp;lt;math&amp;gt;f(x) = f(x+\Delta x)&amp;lt;/math&amp;gt; no caso em que &amp;lt;math&amp;gt;x = 0,01&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;\Delta x = 0,001&amp;lt;/math&amp;gt;. Com isso, o resultado da derivada numérica seria &amp;lt;math&amp;gt;f\, &#039;(0,1) = 0&amp;lt;/math&amp;gt;, o que sabemos não ser verdade, já que podemos calcular essa derivada analiticamente. Isso coloca um limite inferior para o incremento &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt;, e assim para a precisão da estimativa numérica da derivada.&lt;br /&gt;
&lt;br /&gt;
O segundo tipo de erro  podemos dizer que é &amp;quot;intrínseco&amp;quot; ao método numérico. Para estimá-lo, faremos uso da expansão em série de Taylor da função :&amp;lt;math&amp;gt;f&#039;(x)&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width: 75%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;math&amp;gt;f(x+\Delta x) = f(x) + f&#039;(x)\Delta x + \frac{1}{2}f&#039;&#039;(x)(\Delta x)^2 + \frac{1}{6}f&#039;&#039;&#039;(x)(\Delta x)^3 + ...&amp;lt;/math&amp;gt; || (Eq. 3)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
manipulando os termos acima, temos:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;{f(x+\Delta x)-f(x)\over \Delta x} = f&#039; + \frac{1}{2}f&#039;&#039;\Delta x + ... \, ,&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
e assim&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;f&#039; = \underbrace{{f(x+\Delta x)-f(x)\over \Delta x}}_{Quociente\; de\; Newton} - \frac{1}{2}f&#039;&#039;\Delta x + ... \, .&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Comparando a expressão acima com o método de de derivada à direita , Eq. 2,  notamos que a diferença existe a partir do termo &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt;. Podemos dizer que o erro ao usar a quociente de Newton para calcular a derivada é proporcional à &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt;. Assim, vemos que o erro cresce &#039;&#039;linearmente&#039;&#039; com &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt; e portanto devemos usar valores pequenos do incremento.&lt;br /&gt;
&lt;br /&gt;
Resumindo, por um lado temos o &#039;&#039;&#039;erro de truncamento&#039;&#039;&#039; e pelo outro o de &#039;&#039;&#039;arredondamento&#039;&#039;&#039;, onde o valor ótimo será uma solução de compromisso entre os dois tipos de erro. Vemos então que deve haver um &#039;&#039;intervalo de valores&#039;&#039; dentro do qual o  &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt; deve variar para que a derivada numérica seja a mais próxima do valor real possível. Nas figuras 5 e 6 mostramos um exemplo.&lt;br /&gt;
&lt;br /&gt;
== Derivada Centrada ==&lt;br /&gt;
&lt;br /&gt;
Outro cálculo numérico da derivada pode ser feito baseado na declividade de &#039;&#039;&#039;dois&#039;&#039;&#039; pontos próximos, um antes e outro depois do ponto onde queremos avaliar a derivada.&lt;br /&gt;
&lt;br /&gt;
A declividade da linha definida por esses dois pontos é:&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width: 75%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;math&amp;gt;f&#039;(x)\approx {f(x+\Delta x)-f(x-\Delta x)\over 2\Delta x}&amp;lt;/math&amp;gt; || (Eq. 4)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
que é chamada de &#039;&#039;&#039;derivada centrada&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Podemos mostrar que o erro intrínseco a este método é menor do que o erro associado ao método anterior.   Para  estimar o erro de truncamento, expandimos &amp;lt;math&amp;gt;f(x) &amp;lt;/math&amp;gt; em torno de &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt; ( feito na Eq(3)) e em torno de  &amp;lt;math&amp;gt; -\Delta x&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;f(x-\Delta x) = f(x) + f&#039;(x)(-\Delta x) + \frac{1}{2}f&#039;&#039;(x)(-\Delta x)^2 - {1\over 6}f&#039;&#039;&#039;(x)(\Delta x)^3 + ...&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Somando &amp;lt;math&amp;gt;f(x+\Delta x) &amp;lt;/math&amp;gt;  dada pela Eq.(3) e os termos de &amp;lt;math&amp;gt;f(x-\Delta x) &amp;lt;/math&amp;gt;  da expressao acima, notamos que os termos lineares em &amp;lt;math&amp;gt; -\Delta x&amp;lt;/math&amp;gt;  se cancelam. Isolando &amp;lt;math&amp;gt; f&#039;(x)&amp;lt;/math&amp;gt;, temos: &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;f&#039;(x) = \underbrace{{f(x+\Delta x)-f(x-\Delta x)\over 2\Delta x}}  -{2\over 6}f&#039;&#039;&#039;(x)(\Delta x)^2 + ...&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Comparando a expressão acima com a definição do método de derivada centrada, Eq. 4, notamos que  o erro de truncamento  é da ordem de &amp;lt;math&amp;gt;(\Delta x)^2&amp;lt;/math&amp;gt;. Para &amp;lt;math&amp;gt;|\Delta x| &amp;lt; 1 &amp;lt;/math&amp;gt;, vemos que o erro de truncamento associado ao método de derivada centrada é menor do que o erro para a derivada à direita.&lt;br /&gt;
&lt;br /&gt;
== Medida numérica do Erro associado a cada método ==&lt;br /&gt;
&lt;br /&gt;
Para ter uma estimativa do erro associado a utilização da derivada numérica, podemos comparar valores utilizando uma função que tem sua derivada conhecida analiticamente. Assim, o erro é dado por&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; erro = {|f&#039;_{AN}(x) - f&#039;_{NUM}(x)| \over |f&#039;_{NUM}(x)|}, &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;f&#039;_{AN}(x)&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;f&#039;_{NUM}(x)&amp;lt;/math&amp;gt; são as derivada analítica e numérica de &amp;lt;math&amp;gt; f(x) &amp;lt;/math&amp;gt;, respectivamente.&lt;br /&gt;
&lt;br /&gt;
Note que, multiplicando o erro por 100, temos a porcentagem de erro que acompanha a derivada numérica.&lt;br /&gt;
&lt;br /&gt;
== Programa ==&lt;br /&gt;
&lt;br /&gt;
Implementar a derivada numérica em [[FORTRAN]] é apenas uma linha de código:&lt;br /&gt;
&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
 Df = (f(x+h) - f(x))/h&lt;br /&gt;
&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
Onde f(x) deve ser definida num bloco FUNCTION F(x) ... END FUNCTION F.&lt;br /&gt;
&lt;br /&gt;
O resto depende de onde e para que queremos calcular a derivada.&lt;br /&gt;
&lt;br /&gt;
== Exemplo ==&lt;br /&gt;
&lt;br /&gt;
Como demonstração, usaremos a função &amp;lt;math&amp;gt;f(x)&amp;lt;/math&amp;gt; dada por&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;f(x) = \frac{\sin(x^2) e^{x/3}}{\sqrt{x^2+4}}.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Os gráficos abaixo ilustram os métodos de derivada à direita (figuras 1 e 2) e derivada centrada (figuras 3 e 4), ambos com &amp;lt;math&amp;gt;x=0,6&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;\Delta x = 0,4&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Primeiramente, a figura 1 mostra a derivada à direita, onde a curva em vermelho representa &amp;lt;math&amp;gt;f(x)&amp;lt;/math&amp;gt; e a curva em azul representa a derivada de &amp;lt;math&amp;gt;f(x)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[Imagem:derivada3.png|thumb|300px|left|Figura 1]]&lt;br /&gt;
&lt;br /&gt;
A figura 2 mostra um zoom no ponto &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; com a curva da derivada calculada pelo método descrito acima. Em azul a derivada calculada numericamente, só que agora com um deslocamento em &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt; para passar pelo ponto &amp;lt;math&amp;gt;(f(x),x)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[Imagem:derivada4.png|thumb|300px|Figura 2]]&lt;br /&gt;
&lt;br /&gt;
O exemplo do método de derivada centrada está representado na figura 3. Em vermelho a curva &amp;lt;math&amp;gt;f(x)&amp;lt;/math&amp;gt; e em azul a sua derivada.&lt;br /&gt;
&lt;br /&gt;
[[Imagem:derivada1.png|thumb|300px|left|Figura 3]]&lt;br /&gt;
&lt;br /&gt;
A figura 4 mostra um zoom com a curva da derivada centrada em &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[Imagem:derivada2.png|thumb|300px|Figura 4]]&lt;br /&gt;
&lt;br /&gt;
Além da ilustração dos métodos de derivação numérica, as figuras 5 e 6 mostram o gráfico do valor retornado pelo método da derivação à direita em função do incremento &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt; utilizado. &lt;br /&gt;
&lt;br /&gt;
[[Imagem:der.png|thumb|300px|left|Figura 5]]&lt;br /&gt;
&lt;br /&gt;
[[Imagem:der_zoom.png|thumb|300px|Figura 6]]&lt;br /&gt;
&lt;br /&gt;
Na figura 5, a derivada em x=3 numérica em função do &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt; utilizado. O valor exato da derivada em é &amp;lt;math&amp;gt;f&#039;(3)=-4.08963&amp;lt;/math&amp;gt;. Diminuindo o valor do incremento, vemos que em volta de &amp;lt;math&amp;gt;\Delta x = 0.01&amp;lt;/math&amp;gt; começa a convergir, piorando a partir de &amp;lt;math&amp;gt;\Delta x = 10^{-6}&amp;lt;/math&amp;gt;. Para valores muito pequenos temos o erro de arredondamento e para valores muito alto temos o erro de truncamento.&lt;br /&gt;
&lt;br /&gt;
Na figura 6 vemos ampliada a região de convergência, onde o valor de &amp;lt;math&amp;gt;\Delta x = 8x10^{-5}&amp;lt;/math&amp;gt; parece ser o ótimo.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTA:&#039;&#039;&#039; os programa FORTRAN usado para o calculo da derivada esta em Real (ou Real*4, ou seja ponto flutuante em representação de 32 bits). Como seria em dupla precisão (Real*8)?&lt;br /&gt;
&lt;br /&gt;
== Links Externos==&lt;br /&gt;
&lt;br /&gt;
*[http://www.sitmo.com/eqcat/12 Numerical Differentiation] Quant Equation Archive, sitmo&lt;br /&gt;
* http://mathworld.wolfram.com/NumericalDifferentiation.html&lt;br /&gt;
* http://math.fullerton.edu/mathews/n2003/NumericalDiffMod.html&lt;/div&gt;</summary>
		<author><name>Ejagnes</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Derivada_Num%C3%A9rica&amp;diff=95</id>
		<title>Derivada Numérica</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Derivada_Num%C3%A9rica&amp;diff=95"/>
		<updated>2011-10-05T15:29:06Z</updated>

		<summary type="html">&lt;p&gt;Ejagnes: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A  derivada de uma função  &amp;lt;math&amp;gt;f(x)&amp;lt;/math&amp;gt; é definida como um processo de limite, o qual é matematicamente descrito por:&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width: 75%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;math&amp;gt;f&#039;(x)=\lim_{\Delta x\to 0}{f(x+\Delta x)-f(x)\over \Delta x}&amp;lt;/math&amp;gt; || (Eq. 1)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Numericamente é impossível tomarmos o limite  &amp;lt;math&amp;gt;\Delta x\to 0&amp;lt;/math&amp;gt;; temos necessariamente que trabalhar com um valor de  &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt; &#039;&#039;finito&#039;&#039;. Portanto, a todo cálculo numérico de uma derivada será associado um &#039;&#039;erro numérico&#039;&#039;. Abaixo veremos dois métodos numéricos para calcular derivadas e estimaremos os erros associados a tais métodos. &lt;br /&gt;
&lt;br /&gt;
== Derivada à direita ==&lt;br /&gt;
&lt;br /&gt;
Este método se baseia na definição formal de derivada. Para um dado valor de incremento &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt;, podemos estimar a derivada da função:&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width: 75%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;math&amp;gt;f&#039;(x) \approx {f(x+\Delta x)-f(x)\over \Delta x}&amp;lt;/math&amp;gt; || (Eq. 2)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
A expressão a direita é chamada de quociente diferencial de Newton. Existem duas fontes de erro nessa expressão, o erro de  &#039;&#039;&#039;arredondamento&#039;&#039;&#039; e o erro de &#039;&#039;&#039;truncamento&#039;&#039;&#039;. O primeiro é um erro associado à precisão numérica dos computadores, que é  finita (o número de casas dos números).&lt;br /&gt;
Comparando a expressão (2) com a (1), notamos que, quanto menor o valor de &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt;, o valor estimado numericamente é mais próximo ao valor real. No entanto, numericamente não podemos tomar &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt; tão pequeno quanto se queira, porque há um limite de precisão numérica. Assim,  na região do &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt; pequeno há o tipo de erro chamado de &#039;&#039;&#039;erro de arredondamento&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
Por exemplo, se o nosso computador hipotético processar uma operação matemática com 4 casas decimais, temos que, para a função &amp;lt;math&amp;gt;f(x) = x^2 &amp;lt;/math&amp;gt;,   &amp;lt;math&amp;gt; f(0,1) = 0,01&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt; f(0,1001) = 0,01002001&amp;lt;/math&amp;gt;. Note que, usando a precisão de nosso computador, &amp;lt;math&amp;gt;f(x) = f(x+\Delta x)&amp;lt;/math&amp;gt; no caso em que &amp;lt;math&amp;gt;x = 0,01&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;\Delta x = 0,001&amp;lt;/math&amp;gt;. Com isso, o resultado da derivada numérica seria &amp;lt;math&amp;gt;f\, &#039;(0,1) = 0&amp;lt;/math&amp;gt;, o que sabemos não ser verdade, já que podemos calcular essa derivada analiticamente. Isso coloca um limite inferior para o incremento &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt;, e assim para a precisão da estimativa numérica da derivada.&lt;br /&gt;
&lt;br /&gt;
O segundo tipo de erro  podemos dizer que é &amp;quot;intrínseco&amp;quot; ao método numérico. Para estimá-lo, faremos uso da expansão em série de Taylor da função :&amp;lt;math&amp;gt;f&#039;(x)&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width: 75%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;math&amp;gt;f(x+\Delta x) = f(x) + f&#039;(x)\Delta x + \frac{1}{2}f&#039;&#039;(x)(\Delta x)^2 + \frac{1}{6}f&#039;&#039;&#039;(x)(\Delta x)^3 + ...&amp;lt;/math&amp;gt; || (Eq. 3)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
manipulando os termos acima, temos:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;{f(x+\Delta x)-f(x)\over \Delta x} = f&#039; + \frac{1}{2}f&#039;&#039;\Delta x + ... \, ,&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
e assim&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;f&#039; = \underbrace{{f(x+\Delta x)-f(x)\over \Delta x}}_{Quociente\; de\; Newton} - \frac{1}{2}f&#039;&#039;\Delta x + ... \, .&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Comparando a expressão acima com o método de de derivada à direita , Eq. 2,  notamos que a diferença existe a partir do termo &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt;. Podemos dizer que o erro ao usar a quociente de Newton para calcular a derivada é proporcional à &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt;. Assim, vemos que o erro cresce &#039;&#039;linearmente&#039;&#039; com &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt; e portanto devemos usar valores pequenos do incremento.&lt;br /&gt;
&lt;br /&gt;
Resumindo, por um lado temos o &#039;&#039;&#039;erro de truncamento&#039;&#039;&#039; e pelo outro o de &#039;&#039;&#039;arredondamento&#039;&#039;&#039;, onde o valor ótimo será uma solução de compromisso entre os dois tipos de erro. Vemos então que deve haver um &#039;&#039;intervalo de valores&#039;&#039; dentro do qual o  &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt; deve variar para que a derivada numérica seja a mais próxima do valor real possível. Nas figuras 5 e 6 mostramos um exemplo.&lt;br /&gt;
&lt;br /&gt;
== Derivada Centrada ==&lt;br /&gt;
&lt;br /&gt;
Outro cálculo numérico da derivada pode ser feito baseado na declividade de &#039;&#039;&#039;dois&#039;&#039;&#039; pontos próximos, um antes e outro depois do ponto onde queremos avaliar a derivada.&lt;br /&gt;
&lt;br /&gt;
A declividade da linha definida por esses dois pontos é:&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width: 75%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;math&amp;gt;f&#039;(x)\approx {f(x+\Delta x)-f(x-\Delta x)\over 2\Delta x}&amp;lt;/math&amp;gt; || (Eq. 4)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
que é chamada de &#039;&#039;&#039;derivada centrada&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Podemos mostrar que o erro intrínseco a este método é menor do que o erro associado ao método anterior.   Para  estimar o erro de truncamento, expandimos &amp;lt;math&amp;gt;f(x) &amp;lt;/math&amp;gt; em torno de &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt; ( feito na Eq(3)) e em torno de  &amp;lt;math&amp;gt; -\Delta x&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;f(x-\Delta x) = f(x) + f&#039;(x)(-\Delta x) + \frac{1}{2}f&#039;&#039;(x)(-\Delta x)^2 - {1\over 6}f&#039;&#039;&#039;(x)(\Delta x)^3 + ...&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Somando &amp;lt;math&amp;gt;f(x+\Delta x) &amp;lt;/math&amp;gt;  dada pela Eq.(3) e os termos de &amp;lt;math&amp;gt;f(x-\Delta x) &amp;lt;/math&amp;gt;  da expressao acima, notamos que os termos lineares em &amp;lt;math&amp;gt; -\Delta x&amp;lt;/math&amp;gt;  se cancelam. Isolando &amp;lt;math&amp;gt; f&#039;(x)&amp;lt;/math&amp;gt;, temos: &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;f&#039;(x) = \underbrace{{f(x+\Delta x)-f(x-\Delta x)\over 2\Delta x}}  -{2\over 6}f&#039;&#039;&#039;(x)(\Delta x)^2 + ...&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Comparando a expressão acima com a definição do método de derivada centrada, Eq. 4, notamos que  o erro de truncamento  é da ordem de &amp;lt;math&amp;gt;(\Delta x)^2&amp;lt;/math&amp;gt;. Para &amp;lt;math&amp;gt;|\Delta x| &amp;lt; 1 &amp;lt;/math&amp;gt;, vemos que o erro de truncamento associado ao método de derivada centrada é menor do que o erro para a derivada à direita.&lt;br /&gt;
&lt;br /&gt;
== Medida numérica do Erro associado a cada método ==&lt;br /&gt;
&lt;br /&gt;
Para ter uma estimativa do erro associado a utilização da derivada numérica, podemos comparar valores utilizando uma função que tem sua derivada conhecida analiticamente. Assim, o erro é dado por&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; erro = {|f&#039;_{AN}(x) - f&#039;_{NUM}(x)| \over |f&#039;_{NUM}(x)|}, &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
onde &amp;lt;math&amp;gt;f&#039;_{AN}(x)&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;f&#039;_{NUM}(x)&amp;lt;/math&amp;gt; são as derivada analítica e numérica de &amp;lt;math&amp;gt; f(x) &amp;lt;/math&amp;gt;, respectivamente.&lt;br /&gt;
&lt;br /&gt;
Note que, multiplicando o erro por 100, temos a porcentagem de erro que acompanha a derivada numérica.&lt;br /&gt;
&lt;br /&gt;
== Programa ==&lt;br /&gt;
&lt;br /&gt;
Implementar a derivada numérica em [[FORTRAN]] é apenas uma linha de código:&lt;br /&gt;
&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
 Df = (f(x+h) - f(x))/h&lt;br /&gt;
&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
Onde f(x) deve ser definida num bloco FUNCTION F(x) ... END FUNCTION F.&lt;br /&gt;
&lt;br /&gt;
O resto depende de onde e para que queremos calcular a derivada.&lt;br /&gt;
&lt;br /&gt;
== Exemplo ==&lt;br /&gt;
&lt;br /&gt;
Como demonstração, usaremos a função &amp;lt;math&amp;gt;f(x)&amp;lt;/math&amp;gt; dada por&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;f(x) = \frac{\sin(x^2) e^{x/3}}{\sqrt{x^2+4}}.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Os gráficos abaixo ilustram os métodos de derivada à direita e derivada centrada, ambos com &amp;lt;math&amp;gt;x=0,6&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;\Delta x = 0,4&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Primeiramente, a derivada à direita, onde a curva em vermelho representa &amp;lt;math&amp;gt;f(x)&amp;lt;/math&amp;gt; e a curva em azul representa a derivada de &amp;lt;math&amp;gt;f(x)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[Imagem:derivada3.png|thumb|300px|left|Figura 1]]&lt;br /&gt;
&lt;br /&gt;
Aqui temos um zoom no ponto &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; com a curva da derivada calculada pelo método descrito acima. Em azul a derivada calculada numericamente, só que agora com um deslocamento em &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt; para passar pelo ponto &amp;lt;math&amp;gt;(f(x),x)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[Imagem:derivada4.png|thumb|300px|Figura 2]]&lt;br /&gt;
&lt;br /&gt;
O exemplo do método de derivada centrada está a seguir. Em vermelho a curva &amp;lt;math&amp;gt;f(x)&amp;lt;/math&amp;gt; e em azul a sua derivada.&lt;br /&gt;
&lt;br /&gt;
[[Imagem:derivada1.png|thumb|300px|left|Figura 3]]&lt;br /&gt;
&lt;br /&gt;
A próxima figura mostra um zoom com a curva da derivada em &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[Imagem:derivada2.png|thumb|300px|Figura 4]]&lt;br /&gt;
&lt;br /&gt;
Além da ilustração dos métodos de derivação numérica, abaixo temos o gráfico do valor retornado pelo método da derivação à direita em função do incremento &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt; utilizado. &lt;br /&gt;
&lt;br /&gt;
[[Imagem:der.png|thumb|300px|left|Figura 5]]&lt;br /&gt;
&lt;br /&gt;
[[Imagem:der_zoom.png|thumb|300px|Figura 6]]&lt;br /&gt;
&lt;br /&gt;
A esquerda, a derivada em x=3 numérica em função do &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt; utilizado. O valor exato da derivada em é &amp;lt;math&amp;gt;f&#039;(3)=-4.08963&amp;lt;/math&amp;gt;. Diminuindo o valor do incremento, vemos que em volta de &amp;lt;math&amp;gt;\Delta x = 0.01&amp;lt;/math&amp;gt; começa a convergir, piorando a partir de &amp;lt;math&amp;gt;\Delta x = 10^{-6}&amp;lt;/math&amp;gt;. Para valores muito pequenos temos o erro de arredondamento e para valores muito alto temos o erro de truncamento.&lt;br /&gt;
&lt;br /&gt;
Na figura a direita vemos ampliada a região de convergência, onde o valor de &amp;lt;math&amp;gt;\Delta x = 8x10^{-5}&amp;lt;/math&amp;gt; parece ser o ótimo.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTA:&#039;&#039;&#039; os programa FORTRAN usado para o calculo da derivada esta em Real (ou Real*4, ou seja ponto flutuante em representação de 32 bits). Como seria em dupla precisão (Real*8)?&lt;br /&gt;
&lt;br /&gt;
== Links Externos==&lt;br /&gt;
&lt;br /&gt;
*[http://www.sitmo.com/eqcat/12 Numerical Differentiation] Quant Equation Archive, sitmo&lt;br /&gt;
* http://mathworld.wolfram.com/NumericalDifferentiation.html&lt;br /&gt;
* http://math.fullerton.edu/mathews/n2003/NumericalDiffMod.html&lt;/div&gt;</summary>
		<author><name>Ejagnes</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Der.png&amp;diff=94</id>
		<title>Arquivo:Der.png</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Der.png&amp;diff=94"/>
		<updated>2011-10-05T15:27:51Z</updated>

		<summary type="html">&lt;p&gt;Ejagnes: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Ejagnes</name></author>
	</entry>
	<entry>
		<id>http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Der_zoom.png&amp;diff=93</id>
		<title>Arquivo:Der zoom.png</title>
		<link rel="alternate" type="text/html" href="http://fiscomp.if.ufrgs.br/index.php?title=Arquivo:Der_zoom.png&amp;diff=93"/>
		<updated>2011-10-05T15:27:40Z</updated>

		<summary type="html">&lt;p&gt;Ejagnes: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Ejagnes</name></author>
	</entry>
</feed>