Advertisement
Guest User

Untitled

a guest
May 3rd, 2016
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 12.44 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <math.h>
  3.  
  4. double MetNew (float a, float b, double Nmax, double erroMax, int func) {
  5.  
  6.  int opc;
  7.  double x0;
  8.  
  9.  
  10.  
  11.  do {
  12.  printf("\nescolha qual sera o valor da aproximacao inicial para ser usado no metodo de newton-raphson e newton-raphson modificado\n\n");
  13.  printf("1- o ponto medio do intervalo de separacao (a+b)/2\n");
  14.  printf("2- um ponto dentro do intervalo\n");
  15.  printf("3- um ponto inicial qualquer\n");
  16.  
  17.  scanf("%d", &opc);
  18.  
  19.  switch (opc) {
  20.  case 1:
  21.     x0 = (a+b)/2;
  22.     break;
  23.  
  24.  case 2:
  25.     printf("digite um valor dentro do intervalo [%f, %f]:", a, b);
  26.     scanf("%f", &x0);
  27.     break;
  28.  
  29.  case 3:
  30.     printf("digite um valor qualquer:");
  31.     scanf("%f", &x0);
  32.     break;
  33.  }
  34.  
  35.  }while (opc < 1 || opc >  3);
  36.  
  37.  
  38.  
  39.  return 0;
  40. }
  41.  
  42. int main () {
  43.  
  44.     int func;
  45.     double erroMax, parametro, Nmax, ordemInic;
  46.     float a, b;
  47.  
  48.     do {
  49.         printf("escolha uma funcao para ser estudada:\n\n");
  50.         printf("1- (x^2 - 1)e^x\n\n");
  51.         printf("2- 2e^-x - e^x\n\n");
  52.         printf("3- xe^-x - e^-3\n\n");
  53.         printf("4- x^3 - 9x + 3\n\n");
  54.         scanf("%d", &func);
  55.  
  56.     } while (func < 1 || func > 4);
  57.  
  58.     printf("\nindique:\n o extremo do intervalo de separacao a :");
  59.     scanf("%f", &a);
  60.     printf("\nindique:\n o extremo do intervalo de separacao b :");
  61.     scanf("%f", &b);
  62.     printf("\n o erro maximo permitido:");
  63.     scanf("%f", &erroMax);
  64.     printf("\n o parametro lambda:");
  65.     scanf("%f", &parametro);
  66.     printf("\n o numero maximo de iteracoes:");
  67.     scanf("%f", &Nmax);
  68.     printf("\n a ordem de inicializacao:");
  69.     scanf("%f", &ordemInic);
  70.  
  71.     MetNew(a, b, Nmax, erroMax, func);
  72.  
  73.  
  74.     return 0;
  75. }
  76. oi
  77.  
  78. int i;
  79.             double x[Nmax], erro, raiz;
  80.             x[0]=x0;
  81.            
  82.             for(i=0;i<Nmax;i++){
  83.                 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));
  84.                
  85.                 erro= x[i+1]-x[i];
  86.                
  87.                 if(erro>erroMax){
  88.                   raiz=x[i+1];
  89.                   break;  
  90.                 }
  91. 10:56
  92. oi
  93. oi
  94.  
  95. #include <stdio.h>
  96. #include <math.h>
  97.  
  98. #define E 2.718281
  99.  
  100. double MetNew (float a, float b, int Nmax, double erroMax, int func) {
  101.  
  102.  int opc;
  103.  double x0;
  104.  int i, NumIter;
  105.  double x[Nmax], erro, raiz, y;
  106.  
  107.  
  108.  
  109.  do {
  110.  printf("\nescolha qual sera o valor da aproximacao inicial para ser usado no metodo de newton-raphson e newton-raphson modificado\n\n");
  111.  printf("1- o ponto medio do intervalo de separacao (a+b)/2\n");
  112.  printf("2- um ponto dentro do intervalo\n");
  113.  printf("3- um ponto inicial qualquer\n");
  114.  
  115.  scanf("%d", &opc);
  116.  
  117.  switch (opc) {
  118.  case 1:
  119.     x0 = (a+b)/2;
  120.     break;
  121.  
  122.  case 2:
  123.     printf("digite um valor dentro do intervalo [%f, %f]:", a, b);
  124.     scanf("%f", &x0);
  125.     break;
  126.  
  127.  case 3:
  128.     printf("digite um valor qualquer:");
  129.     scanf("%f", &x0);
  130.     break;
  131.  }
  132.  
  133.  }while (opc < 1 || opc >  3);
  134.  
  135. switch(func){
  136.  
  137.     case 1:
  138.  
  139.             x[0]=x0;
  140.  
  141.             for(i=0;i<Nmax;i++){
  142.                 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));
  143.  
  144.                 y = x[i+1]-x[i];
  145.  
  146.                 erro = abs(y);
  147.  
  148.                 NumIter=i+1;
  149.  
  150.                 printf("\n\nnumero de iteracao k e: %d", NumIter);
  151.                 printf("\nvalor aproximado da raiz x(k) e: %f", x[i+1]);
  152.                 printf("\nvalor de |x(k) - x(k-1)| e: %f", erro);
  153.  
  154.                 if(erro>=erroMax){
  155.                   raiz=x[i+1];
  156.                   break;
  157.                 }
  158.                raiz=x[i+1];
  159.  
  160.  
  161.  
  162.             }
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170.             break;
  171. }
  172.  
  173. printf("%f", x[i+1]);
  174.  return 0;
  175. }
  176.  
  177. int main () {
  178.  
  179.     int func, Nmax;
  180.     double erroMax, parametro, ordemInic;
  181.     float a, b, valor;
  182.  
  183.     do {
  184.         printf("escolha uma funcao para ser estudada:\n\n");
  185.         printf("1- (x^2 - 1)e^x\n\n");
  186.         printf("2- 2e^-x - e^x\n\n");
  187.         printf("3- xe^-x - e^-3\n\n");
  188.         printf("4- x^3 - 9x + 3\n\n");
  189.         scanf("%d", &func);
  190.  
  191.     } while (func < 1 || func > 4);
  192.  
  193.     do {
  194.     printf("\nindique:\n o extremo do intervalo de separacao a :");
  195.     scanf("%f", &a);
  196.     printf("\n o extremo do intervalo de separacao b :");
  197.     scanf("%f", &b);
  198.  
  199.         switch(func){
  200.  
  201.          case 1:
  202.  
  203.             valor = ((pow(a,2)-1)*pow(E,a))*((pow(b,2)-1)*pow(E,b));
  204.             break;
  205.  
  206.          case 2:
  207.             valor = (2*pow(E,(-a))-pow(E,a))*(2*pow(E,(-b))-pow(E,b));
  208.             break;
  209.  
  210.          case 3:
  211.             valor = (a*pow(E,(-a))-pow(E,(-3)))*(b*pow(E,(-b))-pow(E,(-3)));
  212.             break;
  213.  
  214.          case 4:
  215.             valor = (pow(a,3)-9*a+3)*(pow(b,3)-9*b+3);
  216.             break;
  217.  
  218.         }
  219.         if(valor >= 0 ){
  220.             printf("\nintervalo de separacao invalido, indique outro intervalo\n");
  221.         }
  222.     }while (valor >= 0);
  223.  
  224.  
  225.  
  226.     printf("\n o erro maximo permitido:");
  227.     scanf("%f", &erroMax);
  228.     printf("\n o parametro lambda:");
  229.     scanf("%f", &parametro);
  230.     printf("\n o numero maximo de iteracoes:");
  231.     scanf("%f", &Nmax);
  232.     printf("\n a ordem de inicializacao:");
  233.     scanf("%f", &ordemInic);
  234.  
  235.     MetNew(a, b, Nmax, erroMax, func);
  236.  
  237.  
  238.     return 0;
  239. }
  240. 13:21
  241.  
  242. #include <stdio.h>
  243. #include <math.h>
  244. #include <stdlib.h>
  245.  
  246. #define E 2.718281
  247.  
  248. double Abs( double x ){
  249.     x = ( x * x ) / -(x);
  250.     return x;
  251. };
  252.  
  253. void MetNew (float a, float b, int Nmax, double erroMax, int func) {
  254.  
  255.  int opc;
  256.  double x0, erro, raiz, xi, xn, fx, fdx;
  257.  int k = 0;
  258.  
  259.  
  260.  
  261.  do {
  262.  printf("\nescolha qual sera o valor da aproximacao inicial para ser usado no metodo de newton-raphson e newton-raphson modificado\n\n");
  263.  printf("1- o ponto medio do intervalo de separacao (a+b)/2\n");
  264.  printf("2- um ponto dentro do intervalo\n");
  265.  printf("3- um ponto inicial qualquer\n");
  266.  
  267.  scanf("%d", &opc);
  268.  
  269.  switch (opc) {
  270.  case 1:
  271.     x0 = (a+b)/2;
  272.     break;
  273.  
  274.  case 2:
  275.     printf("digite um valor dentro do intervalo [%f, %f]:", a, b);
  276.     scanf("%f", &x0);
  277.     break;
  278.  
  279.  case 3:
  280.     printf("digite um valor qualquer:");
  281.     scanf("%f", &x0);
  282.     break;
  283.  }
  284.  
  285.  }while (opc < 1 || opc >  3);
  286.  
  287.  switch(func){
  288.  
  289.     case 1:
  290.  
  291.      xn = x0;
  292.  
  293.         do {
  294.         xi = xn;
  295.         fx = (pow(xi,2)-1)*pow(E,xi);
  296.         fdx = 2*xi*pow(E,xi)+pow(E,xi)*(pow(xi,2)-1);
  297.         xn = xi - (fx/fdx);
  298.         k += 1;
  299.         erro = xn - xi;
  300.         printf("\n\n numero de iteracoes k = %i", k);
  301.         printf("\n valor aproximado da raiz na iteracao %i = %f\n", k, xn);
  302.         printf("\n valor de |x%i - x%i| = %f\n", k, k-1, erro);
  303.         } while (Abs(erro) >= erroMax || k <= Nmax);
  304.     break;
  305.  
  306.     Case 2:
  307.      
  308.      xn = x0;
  309.      
  310.         do {
  311.         xi = xn;
  312.         fx = 2*pow(E,(-xi))-pow(E,xi)) ;
  313.         fdx = -2*pow(E,(-xi)-pow(E,(-xi));
  314.         xn = xi - (fx/fdx);
  315.         k += 1;
  316.         erro = xn - xi;
  317.         printf("\n\n numero de iteracoes k = %i", k);
  318.         printf("\n valor aproximado da raiz na iteracao %i = %f\n", k, xn);
  319.         printf("\n valor de |x%i - x%i| = %f\n", k, k-1, erro);
  320.         } while (Abs(erro) >= erroMax || k <= Nmax);
  321.     break;
  322.  
  323.   Case 3:
  324.    
  325.      xn = x0;
  326.      
  327.         do {
  328.         xi = xn;
  329.         fx = xi*pow(E,(-xi))-pow(E,(-3));
  330.         fdx = pow(E,(-xi)) - pow(E, (-xi))*xi;
  331.         xn = xi - (fx/fdx);
  332.         k += 1;
  333.         erro = xn - xi;
  334.         printf("\n\n numero de iteracoes k = %i", k);
  335.         printf("\n valor aproximado da raiz na iteracao %i = %f\n", k, xn);
  336.         printf("\n valor de |x%i - x%i| = %f\n", k, k-1, erro);
  337.         } while (Abs(erro) >= erroMax || k <= Nmax);
  338.     break;
  339.  
  340.   Case 4:
  341.      
  342.      xn = x0;
  343.      
  344.         do {
  345.         xi = xn;
  346.         fx = pow(xi,3)-9*xi+3;
  347.         fdx = 3*pow(xi,2) - 9;
  348.         xn = xi - (fx/fdx);
  349.         k += 1;
  350.         erro = xn - xi;
  351.         printf("\n\n numero de iteracoes k = %i", k);
  352.         printf("\n valor aproximado da raiz na iteracao %i = %f\n", k, xn);
  353.         printf("\n valor de |x%i - x%i| = %f\n", k, k-1, erro);
  354.         } while (Abs(erro) >= erroMax || k <= Nmax);
  355.     break;
  356.  
  357.  }
  358.  
  359. }
  360.  
  361. void MetNewMod2 (float a, float b, int Nmax, double erroMax, int func, double parametro) {
  362.  
  363.  int opc;
  364.  double x0, erro, raiz, xi, xn, fx, fdx, C;
  365.  int k = 0;
  366.  
  367.  
  368.  
  369.  do {
  370.  printf("\nescolha qual sera o valor da aproximacao inicial para ser usado no metodo de newton-raphson e newton-raphson modificado\n\n");
  371.  printf("1- o ponto medio do intervalo de separacao (a+b)/2\n");
  372.  printf("2- um ponto dentro do intervalo\n");
  373.  printf("3- um ponto inicial qualquer\n");
  374.  
  375.  scanf("%d", &opc);
  376.  
  377.  switch (opc) {
  378.  case 1:
  379.     x0 = (a+b)/2;
  380.     break;
  381.  
  382.  case 2:
  383.     printf("digite um valor dentro do intervalo [%f, %f]:", a, b);
  384.     scanf("%f", &x0);
  385.     break;
  386.  
  387.  case 3:
  388.     printf("digite um valor qualquer:");
  389.     scanf("%f", &x0);
  390.     break;
  391.  }
  392.  
  393.  }while (opc < 1 || opc >  3);
  394.  
  395.  switch(func){
  396.  
  397.     case 1:
  398.  
  399.      xn = x0;
  400.  
  401.         do {
  402.         xi = xn;
  403.         fx = (pow(xi,2)-1)*pow(E,xi);
  404.         fdx = 2*xi*pow(E,xi)+pow(E,xi)*(pow(xi,2)-1);
  405.             if (Abs(fdx) > parametro){
  406.               xn = xi - (fx/fdx);  
  407.             } else {
  408.                xn = xi - (fx/parametro);
  409.             }
  410.         k += 1;
  411.         erro = xn - xi;
  412.         printf("\n\n numero de iteracoes k = %i", k);
  413.         printf("\n valor aproximado da raiz na iteracao %i = %f\n", k, xn);
  414.         printf("\n valor de |x%i - x%i| = %f\n", k, k-1, erro);
  415.         } while (Abs(erro) >= erroMax || k <= Nmax);
  416.     break;
  417.  
  418.     Case 2:
  419.      
  420.      xn = x0;
  421.      
  422.         do {
  423.         xi = xn;
  424.         fx = 2*pow(E,(-xi))-pow(E,xi)) ;
  425.         fdx = -2*pow(E,(-xi)-pow(E,(-xi));
  426.         xn = xi - (fx/fdx);
  427.         k += 1;
  428.         erro = xn - xi;
  429.         printf("\n\n numero de iteracoes k = %i", k);
  430.         printf("\n valor aproximado da raiz na iteracao %i = %f\n", k, xn);
  431.         printf("\n valor de |x%i - x%i| = %f\n", k, k-1, erro);
  432.         } while (Abs(erro) >= erroMax || k <= Nmax);
  433.     break;
  434.  
  435.   Case 3:
  436.    
  437.      xn = x0;
  438.      
  439.         do {
  440.         xi = xn;
  441.         fx = xi*pow(E,(-xi))-pow(E,(-3));
  442.         fdx = pow(E,(-xi)) - pow(E, (-xi))*xi;
  443.         xn = xi - (fx/fdx);
  444.         k += 1;
  445.         erro = xn - xi;
  446.         printf("\n\n numero de iteracoes k = %i", k);
  447.         printf("\n valor aproximado da raiz na iteracao %i = %f\n", k, xn);
  448.         printf("\n valor de |x%i - x%i| = %f\n", k, k-1, erro);
  449.         } while (Abs(erro) >= erroMax || k <= Nmax);
  450.     break;
  451.  
  452.   Case 4:
  453.      
  454.      xn = x0;
  455.      
  456.         do {
  457.         xi = xn;
  458.         fx = pow(xi,3)-9*xi+3;
  459.         fdx = 3*pow(xi,2) - 9;
  460.         xn = xi - (fx/fdx);
  461.         k += 1;
  462.         erro = xn - xi;
  463.         printf("\n\n numero de iteracoes k = %i", k);
  464.         printf("\n valor aproximado da raiz na iteracao %i = %f\n", k, xn);
  465.         printf("\n valor de |x%i - x%i| = %f\n", k, k-1, erro);
  466.         } while (Abs(erro) >= erroMax || k <= Nmax);
  467.     break;
  468.  
  469.  }
  470.  
  471.  
  472.  
  473. }
  474.  
  475. int main () {
  476.  
  477.     int func, Nmax;
  478.     double erroMax, parametro, ordemInic;
  479.     float a, b, valor;
  480.  
  481.     do {
  482.         printf("escolha uma funcao para ser estudada:\n\n");
  483.         printf("1- (x^2 - 1)e^x\n\n");
  484.         printf("2- 2e^-x - e^x\n\n");
  485.         printf("3- xe^-x - e^-3\n\n");
  486.         printf("4- x^3 - 9x + 3\n\n");
  487.         scanf("%d", &func);
  488.  
  489.     } while (func < 1 || func > 4);
  490.  
  491.     do {
  492.     printf("\nindique:\n o extremo do intervalo de separacao a :");
  493.     scanf("%f", &a);
  494.     printf("\n o extremo do intervalo de separacao b :");
  495.     scanf("%f", &b);
  496.  
  497.         switch(func){
  498.  
  499.          case 1:
  500.  
  501.             valor = ((pow(a,2)-1)*pow(E,a))*((pow(b,2)-1)*pow(E,b));
  502.             break;
  503.  
  504.          case 2:
  505.             valor = (2*pow(E,(-a))-pow(E,a))*(2*pow(E,(-b))-pow(E,b));
  506.             break;
  507.  
  508.          case 3:
  509.             valor = (a*pow(E,(-a))-pow(E,(-3)))*(b*pow(E,(-b))-pow(E,(-3)));
  510.             break;
  511.  
  512.          case 4:
  513.             valor = (pow(a,3)-9*a+3)*(pow(b,3)-9*b+3);
  514.             break;
  515.  
  516.         }
  517.         if(valor >= 0 ){
  518.             printf("\nintervalo de separacao invalido, indique outro intervalo\n");
  519.         }
  520.     }while (valor >= 0);
  521.  
  522.  
  523.  
  524.     printf("\n o erro maximo permitido:");
  525.     scanf("%f", &erroMax);
  526.     printf("\n o parametro lambda:");
  527.     scanf("%f", &parametro);
  528.     printf("\n o numero maximo de iteracoes:");
  529.     scanf("%f", &Nmax);
  530.     printf("\n a ordem de inicializacao:");
  531.     scanf("%f", &ordemInic);
  532.  
  533.  
  534.  
  535.     return 0;
  536. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement