%% prog20 exponencial con while clearvars; close all; clc; %este programa calcula exp(x) de manera aproximada %determinando el numero N de la sumatoria de manera que %el error entre el valor verdadero y el aproximado %sea menor a una millonesima %abs(yverd - (1+sumatoria(x^n/facto(n))) <= 10e-6 %% lectura de datos x = input('x = '); %numero al que se calcula exp(x) yverd = exp(x); %valor verdadero yaprox = 1; %valor aproximado primer chute N = 0; %inicializacion del contador while abs(yverd - yaprox) > 10e-8%--->inicio while N = N + 1; %aumentamos de a 1 los terminos de la sumatoria yaprox = 1; %empezamos la sumatoria de 1 %porque yaprox = 1+sumatoria(x^n/facto(n)) for n = 1:N%--------------->inicio sumatoria facto = 1; for k = 1:n%----------->inicio factorial facto = facto*k; end;%------------------>fin factorial yaprox = yaprox + x^n/facto; end;%---------------------->fin sumatoria end;%------------------------------>fin while err = abs(yverd - yaprox); %% escribir resultados fprintf('yverd = %f\n',yverd); fprintf('yaprox = %f\n',yaprox); fprintf('N = %d\n',N); fprintf('err = %f\n',err);