Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- O MÉTODO EXPLICADO:
- De f quero achar a raiz:
- escolho g(x) de modo que f(x)=0 e g(x)=x
- Dada f(x), com f(x_0) = 0, queremos encontrar um intervalo [a,b] tal que x_0 em [a,b] e uma função g tal que g(x_0) = x_0 e |g'(x)| < 1 pra todo x em [a,b].
- 1. Dada a função, plotar gráfico pra verificr comportamento
- 2. Definir intervalo no qual se encontra a raiz (definir [a,b])
- 3. Definir derivada da função
- 4. Aplicar os pontos limite do intervalo da raiz da função na derivada e ver o intervalo da derivada
- 5. Definir g(x) = (-1/M)*f(x) + x, sendo m o máximo valor no intervalo da derivada para que, desse modo, possamos limitar |g'(x)| < 1
- 6. Se f(x_0) = 0, então g(x_0) = -1/8*f(x_0) + x_0 = x_0, isto é, x_0 é a raiz da f (o que queremos) é ponto fixo de [; g ;]
- Determinar os pontos fixos de uma função f(x) é determinar a interseção entre as curvas y=f(x) e y=x.
- */
- #include <stdio.h>
- #include <math.h>
- #define eps 1e-6
- double f(double x)
- {
- return (1./5*(6 - x*x + 4*x)); // g(x) vinda de f(x)
- }
- int main(void)
- {
- int i;
- double x=1.5, y, delta; // x é o ponto de partida
- do
- {
- y=f(x);
- delta=fabs(y-x);
- x=y;
- printf("%lf \t %lf \n",x,f(x)); //g(x) vai convergir pra um ponto (x_0) -- seu ponto fixo -- que é raiz da função f(x)
- } while (delta > eps);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement