Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <math.h>
- double funcao (double x){
- double y;
- y = 2 * exp(-x) - exp(x);
- return y;
- }
- int main (){
- double a, b, x0, x1, x2, erromax, raiz;
- int i, nmax, opc;
- printf("Digite o numero maximo de iteracoes: ");
- scanf("%d", &nmax);
- printf("Digite o erro maximo permitido: ");
- scanf("%lf", &erromax);
- printf("Digite o valor extremo inferior do intervalo de separacao: ");
- scanf("%lf", &a);
- printf("Digite o valor extremo superior do intervalo de separacao: ");
- scanf("%lf", &b);
- printf("Digite 1 para que x0 = a e x1 = b;\nDigite 2 para que x0 = b e x1 = a: ");
- scanf("%d", &opc);
- if (opc == 1){
- x0 = a;
- x1 = b;
- }
- else {
- x0 = b;
- x1 = a;
- }
- if (fabs(funcao(x0)) < erromax){
- raiz = x0;
- printf("A raiz procurada e' %lf.", raiz);
- }
- else if (fabs(funcao(x1)) < erromax || fabs(x1 - x0) < erromax){
- raiz = x1;
- printf("A raiz procurada e' %lf.", raiz);
- }
- else {
- for (i = 1; i < nmax; ++i){
- x2 = x1 - ((funcao(x1) / (funcao(x1) - funcao(x0)))* (x1 - x0));
- printf("\nNa iteracao %d, o valor aproximado da raiz e' %lf.\nO modulo de (x1 - x0) vale %lf.\n", i, x2, fabs(x2 - x1));
- if (fabs(funcao(x2)) < erromax || fabs(x2 - x1) < erromax || i == nmax){
- raiz = x2;
- printf("\nA raiz procurada e' %lf, e foram realizadas %d iteracoes.\n", raiz, i);
- break;
- }
- else {
- x0 = x1;
- x1 = x2;
- }
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement