Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <math.h>
- double MetNew (float a, float b, double Nmax, double erroMax, int func) {
- int opc;
- double x0;
- do {
- printf("\nescolha qual sera o valor da aproximacao inicial para ser usado no metodo de newton-raphson e newton-raphson modificado\n\n");
- printf("1- o ponto medio do intervalo de separacao (a+b)/2\n");
- printf("2- um ponto dentro do intervalo\n");
- printf("3- um ponto inicial qualquer\n");
- scanf("%d", &opc);
- switch (opc) {
- case 1:
- x0 = (a+b)/2;
- break;
- case 2:
- printf("digite um valor dentro do intervalo [%f, %f]:", a, b);
- scanf("%f", &x0);
- break;
- case 3:
- printf("digite um valor qualquer:");
- scanf("%f", &x0);
- break;
- }
- }while (opc < 1 || opc > 3);
- return 0;
- }
- int main () {
- int func;
- double erroMax, parametro, Nmax, ordemInic;
- float a, b;
- do {
- printf("escolha uma funcao para ser estudada:\n\n");
- printf("1- (x^2 - 1)e^x\n\n");
- printf("2- 2e^-x - e^x\n\n");
- printf("3- xe^-x - e^-3\n\n");
- printf("4- x^3 - 9x + 3\n\n");
- scanf("%d", &func);
- } while (func < 1 || func > 4);
- printf("\nindique:\n o extremo do intervalo de separacao a :");
- scanf("%f", &a);
- printf("\nindique:\n o extremo do intervalo de separacao b :");
- scanf("%f", &b);
- printf("\n o erro maximo permitido:");
- scanf("%f", &erroMax);
- printf("\n o parametro lambda:");
- scanf("%f", ¶metro);
- printf("\n o numero maximo de iteracoes:");
- scanf("%f", &Nmax);
- printf("\n a ordem de inicializacao:");
- scanf("%f", &ordemInic);
- MetNew(a, b, Nmax, erroMax, func);
- return 0;
- }
- oi
- int i;
- double x[Nmax], erro, raiz;
- x[0]=x0;
- for(i=0;i<Nmax;i++){
- x[i+1]=x[i]-(((pow(x[i],2)-1)*pow(E,x[i]))/(2*x[i]*pow(E,x[i])+pow(E,x[i])*pow(x[i],2)-1));
- erro= x[i+1]-x[i];
- if(erro>erroMax){
- raiz=x[i+1];
- break;
- }
- 10:56
- oi
- oi
- #include <stdio.h>
- #include <math.h>
- #define E 2.718281
- double MetNew (float a, float b, int Nmax, double erroMax, int func) {
- int opc;
- double x0;
- int i, NumIter;
- double x[Nmax], erro, raiz, y;
- do {
- printf("\nescolha qual sera o valor da aproximacao inicial para ser usado no metodo de newton-raphson e newton-raphson modificado\n\n");
- printf("1- o ponto medio do intervalo de separacao (a+b)/2\n");
- printf("2- um ponto dentro do intervalo\n");
- printf("3- um ponto inicial qualquer\n");
- scanf("%d", &opc);
- switch (opc) {
- case 1:
- x0 = (a+b)/2;
- break;
- case 2:
- printf("digite um valor dentro do intervalo [%f, %f]:", a, b);
- scanf("%f", &x0);
- break;
- case 3:
- printf("digite um valor qualquer:");
- scanf("%f", &x0);
- break;
- }
- }while (opc < 1 || opc > 3);
- switch(func){
- case 1:
- x[0]=x0;
- for(i=0;i<Nmax;i++){
- x[i+1]=x[i]-(((pow(x[i],2)-1)*pow(E,x[i]))/(2*x[i]*pow(E,x[i])+pow(E,x[i])*pow(x[i],2)-1));
- y = x[i+1]-x[i];
- erro = abs(y);
- NumIter=i+1;
- printf("\n\nnumero de iteracao k e: %d", NumIter);
- printf("\nvalor aproximado da raiz x(k) e: %f", x[i+1]);
- printf("\nvalor de |x(k) - x(k-1)| e: %f", erro);
- if(erro>=erroMax){
- raiz=x[i+1];
- break;
- }
- raiz=x[i+1];
- }
- break;
- }
- printf("%f", x[i+1]);
- return 0;
- }
- int main () {
- int func, Nmax;
- double erroMax, parametro, ordemInic;
- float a, b, valor;
- do {
- printf("escolha uma funcao para ser estudada:\n\n");
- printf("1- (x^2 - 1)e^x\n\n");
- printf("2- 2e^-x - e^x\n\n");
- printf("3- xe^-x - e^-3\n\n");
- printf("4- x^3 - 9x + 3\n\n");
- scanf("%d", &func);
- } while (func < 1 || func > 4);
- do {
- printf("\nindique:\n o extremo do intervalo de separacao a :");
- scanf("%f", &a);
- printf("\n o extremo do intervalo de separacao b :");
- scanf("%f", &b);
- switch(func){
- case 1:
- valor = ((pow(a,2)-1)*pow(E,a))*((pow(b,2)-1)*pow(E,b));
- break;
- case 2:
- valor = (2*pow(E,(-a))-pow(E,a))*(2*pow(E,(-b))-pow(E,b));
- break;
- case 3:
- valor = (a*pow(E,(-a))-pow(E,(-3)))*(b*pow(E,(-b))-pow(E,(-3)));
- break;
- case 4:
- valor = (pow(a,3)-9*a+3)*(pow(b,3)-9*b+3);
- break;
- }
- if(valor >= 0 ){
- printf("\nintervalo de separacao invalido, indique outro intervalo\n");
- }
- }while (valor >= 0);
- printf("\n o erro maximo permitido:");
- scanf("%f", &erroMax);
- printf("\n o parametro lambda:");
- scanf("%f", ¶metro);
- printf("\n o numero maximo de iteracoes:");
- scanf("%f", &Nmax);
- printf("\n a ordem de inicializacao:");
- scanf("%f", &ordemInic);
- MetNew(a, b, Nmax, erroMax, func);
- return 0;
- }
- 13:21
- #include <stdio.h>
- #include <math.h>
- #include <stdlib.h>
- #define E 2.718281
- double Abs( double x ){
- x = ( x * x ) / -(x);
- return x;
- };
- void MetNew (float a, float b, int Nmax, double erroMax, int func) {
- int opc;
- double x0, erro, raiz, xi, xn, fx, fdx;
- int k = 0;
- do {
- printf("\nescolha qual sera o valor da aproximacao inicial para ser usado no metodo de newton-raphson e newton-raphson modificado\n\n");
- printf("1- o ponto medio do intervalo de separacao (a+b)/2\n");
- printf("2- um ponto dentro do intervalo\n");
- printf("3- um ponto inicial qualquer\n");
- scanf("%d", &opc);
- switch (opc) {
- case 1:
- x0 = (a+b)/2;
- break;
- case 2:
- printf("digite um valor dentro do intervalo [%f, %f]:", a, b);
- scanf("%f", &x0);
- break;
- case 3:
- printf("digite um valor qualquer:");
- scanf("%f", &x0);
- break;
- }
- }while (opc < 1 || opc > 3);
- switch(func){
- case 1:
- xn = x0;
- do {
- xi = xn;
- fx = (pow(xi,2)-1)*pow(E,xi);
- fdx = 2*xi*pow(E,xi)+pow(E,xi)*(pow(xi,2)-1);
- xn = xi - (fx/fdx);
- k += 1;
- erro = xn - xi;
- printf("\n\n numero de iteracoes k = %i", k);
- printf("\n valor aproximado da raiz na iteracao %i = %f\n", k, xn);
- printf("\n valor de |x%i - x%i| = %f\n", k, k-1, erro);
- } while (Abs(erro) >= erroMax || k <= Nmax);
- break;
- Case 2:
- xn = x0;
- do {
- xi = xn;
- fx = 2*pow(E,(-xi))-pow(E,xi)) ;
- fdx = -2*pow(E,(-xi)-pow(E,(-xi));
- xn = xi - (fx/fdx);
- k += 1;
- erro = xn - xi;
- printf("\n\n numero de iteracoes k = %i", k);
- printf("\n valor aproximado da raiz na iteracao %i = %f\n", k, xn);
- printf("\n valor de |x%i - x%i| = %f\n", k, k-1, erro);
- } while (Abs(erro) >= erroMax || k <= Nmax);
- break;
- Case 3:
- xn = x0;
- do {
- xi = xn;
- fx = xi*pow(E,(-xi))-pow(E,(-3));
- fdx = pow(E,(-xi)) - pow(E, (-xi))*xi;
- xn = xi - (fx/fdx);
- k += 1;
- erro = xn - xi;
- printf("\n\n numero de iteracoes k = %i", k);
- printf("\n valor aproximado da raiz na iteracao %i = %f\n", k, xn);
- printf("\n valor de |x%i - x%i| = %f\n", k, k-1, erro);
- } while (Abs(erro) >= erroMax || k <= Nmax);
- break;
- Case 4:
- xn = x0;
- do {
- xi = xn;
- fx = pow(xi,3)-9*xi+3;
- fdx = 3*pow(xi,2) - 9;
- xn = xi - (fx/fdx);
- k += 1;
- erro = xn - xi;
- printf("\n\n numero de iteracoes k = %i", k);
- printf("\n valor aproximado da raiz na iteracao %i = %f\n", k, xn);
- printf("\n valor de |x%i - x%i| = %f\n", k, k-1, erro);
- } while (Abs(erro) >= erroMax || k <= Nmax);
- break;
- }
- }
- void MetNewMod2 (float a, float b, int Nmax, double erroMax, int func, double parametro) {
- int opc;
- double x0, erro, raiz, xi, xn, fx, fdx, C;
- int k = 0;
- do {
- printf("\nescolha qual sera o valor da aproximacao inicial para ser usado no metodo de newton-raphson e newton-raphson modificado\n\n");
- printf("1- o ponto medio do intervalo de separacao (a+b)/2\n");
- printf("2- um ponto dentro do intervalo\n");
- printf("3- um ponto inicial qualquer\n");
- scanf("%d", &opc);
- switch (opc) {
- case 1:
- x0 = (a+b)/2;
- break;
- case 2:
- printf("digite um valor dentro do intervalo [%f, %f]:", a, b);
- scanf("%f", &x0);
- break;
- case 3:
- printf("digite um valor qualquer:");
- scanf("%f", &x0);
- break;
- }
- }while (opc < 1 || opc > 3);
- switch(func){
- case 1:
- xn = x0;
- do {
- xi = xn;
- fx = (pow(xi,2)-1)*pow(E,xi);
- fdx = 2*xi*pow(E,xi)+pow(E,xi)*(pow(xi,2)-1);
- if (Abs(fdx) > parametro){
- xn = xi - (fx/fdx);
- } else {
- xn = xi - (fx/parametro);
- }
- k += 1;
- erro = xn - xi;
- printf("\n\n numero de iteracoes k = %i", k);
- printf("\n valor aproximado da raiz na iteracao %i = %f\n", k, xn);
- printf("\n valor de |x%i - x%i| = %f\n", k, k-1, erro);
- } while (Abs(erro) >= erroMax || k <= Nmax);
- break;
- Case 2:
- xn = x0;
- do {
- xi = xn;
- fx = 2*pow(E,(-xi))-pow(E,xi)) ;
- fdx = -2*pow(E,(-xi)-pow(E,(-xi));
- xn = xi - (fx/fdx);
- k += 1;
- erro = xn - xi;
- printf("\n\n numero de iteracoes k = %i", k);
- printf("\n valor aproximado da raiz na iteracao %i = %f\n", k, xn);
- printf("\n valor de |x%i - x%i| = %f\n", k, k-1, erro);
- } while (Abs(erro) >= erroMax || k <= Nmax);
- break;
- Case 3:
- xn = x0;
- do {
- xi = xn;
- fx = xi*pow(E,(-xi))-pow(E,(-3));
- fdx = pow(E,(-xi)) - pow(E, (-xi))*xi;
- xn = xi - (fx/fdx);
- k += 1;
- erro = xn - xi;
- printf("\n\n numero de iteracoes k = %i", k);
- printf("\n valor aproximado da raiz na iteracao %i = %f\n", k, xn);
- printf("\n valor de |x%i - x%i| = %f\n", k, k-1, erro);
- } while (Abs(erro) >= erroMax || k <= Nmax);
- break;
- Case 4:
- xn = x0;
- do {
- xi = xn;
- fx = pow(xi,3)-9*xi+3;
- fdx = 3*pow(xi,2) - 9;
- xn = xi - (fx/fdx);
- k += 1;
- erro = xn - xi;
- printf("\n\n numero de iteracoes k = %i", k);
- printf("\n valor aproximado da raiz na iteracao %i = %f\n", k, xn);
- printf("\n valor de |x%i - x%i| = %f\n", k, k-1, erro);
- } while (Abs(erro) >= erroMax || k <= Nmax);
- break;
- }
- }
- int main () {
- int func, Nmax;
- double erroMax, parametro, ordemInic;
- float a, b, valor;
- do {
- printf("escolha uma funcao para ser estudada:\n\n");
- printf("1- (x^2 - 1)e^x\n\n");
- printf("2- 2e^-x - e^x\n\n");
- printf("3- xe^-x - e^-3\n\n");
- printf("4- x^3 - 9x + 3\n\n");
- scanf("%d", &func);
- } while (func < 1 || func > 4);
- do {
- printf("\nindique:\n o extremo do intervalo de separacao a :");
- scanf("%f", &a);
- printf("\n o extremo do intervalo de separacao b :");
- scanf("%f", &b);
- switch(func){
- case 1:
- valor = ((pow(a,2)-1)*pow(E,a))*((pow(b,2)-1)*pow(E,b));
- break;
- case 2:
- valor = (2*pow(E,(-a))-pow(E,a))*(2*pow(E,(-b))-pow(E,b));
- break;
- case 3:
- valor = (a*pow(E,(-a))-pow(E,(-3)))*(b*pow(E,(-b))-pow(E,(-3)));
- break;
- case 4:
- valor = (pow(a,3)-9*a+3)*(pow(b,3)-9*b+3);
- break;
- }
- if(valor >= 0 ){
- printf("\nintervalo de separacao invalido, indique outro intervalo\n");
- }
- }while (valor >= 0);
- printf("\n o erro maximo permitido:");
- scanf("%f", &erroMax);
- printf("\n o parametro lambda:");
- scanf("%f", ¶metro);
- printf("\n o numero maximo de iteracoes:");
- scanf("%f", &Nmax);
- printf("\n a ordem de inicializacao:");
- scanf("%f", &ordemInic);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement