%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 = '); %calculamos valor real lnReal = 10; lnCalculado = 0; erro = abs(lnCalculado - lnReal); N = 0; %cantidad de veces que vamos a iterar sumatoriaLn = 0; %guardaremos las sumas en esta variable %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 lnReal = lnCalculado; %el valor actual pasa a ser el valor con el que hacemos la comparación end %imprimimos la cantidad de veces que se iteró, junto con los valores y el error fprintf('N = %d, ln(%d) = %d, lnCalculado = %d, erro = %g\n',N,x,lnReal,lnCalculado,erro)