%Control 02 pregunta 02 18 puntos clearvars; clc; %lectura de datos desde teclado x = input('ingrese numero para calcular ln(x) = '); tolerancia = input('ingrese tolerancia de error erro = '); tolerancia = 1e-6; %calculamos valor real lnReal = log(x); lnCalculado = 0; erro = abs(lnCalculado - lnReal); N = 0; %cantidad de veces que vamos a iterar sumatoriaLn = 0; %ciclo for para realizar cálculo while erro > tolerancia n = N; %igualamos n (que representa el ínidice de la sumatoria) a N que es la %cantidad de veces que hemos iterado sumatoriaLn = 1/(2*n+1) * ( (x-1)/(x+1) )^(2*n+1) + sumatoriaLn; lnCalculado = 2*sumatoriaLn; %Es importante no multiplicar lnCalculado por 2 en la linea 21 ya que eso afecta %el valor final de la sumatoria, y la multiplicación se realiza LUEGO de que se termina la sumatoria. erro = abs(lnCalculado - lnReal); N = N+1; %aumentamos el contador end fprintf('N = %d, ln(%d) = %d, lnCalculado = %d, erro = %g\n',N,x,lnReal,lnCalculado,erro)