Essays.club - Ensayos gratis, notas de cursos, notas de libros, tareas, monografías y trabajos de investigación
Buscar

Derivacion hacia atraza

Enviado por   •  20 de Octubre de 2017  •  1.660 Palabras (7 Páginas)  •  300 Visitas

Página 1 de 7

...

a=input('Ingrese el valor inicial en x: ');

b=input('Ingrese el valor final de x: ');

n=input('Ingrese el numero de subintervalos: ');

h=(b-a)/n;

funcion=inline(funcion1);

ejex=zeros(1,n+1);

ejey=zeros(1,n+1);

ejex=a:h:b;

funder=diff(funcion1);

funder=inline(funder);

tic;

for j=1:n

ejex1(j)=ejex(j)+h;

ejex2(j)=ejex(j)-h;

res(j)=(feval(funcion,ejex1(j))-feval(funcion,ejex2(j)))/(2*h);

resfun(j)=feval(funder,ejex(j));

Error(j)=((resfun(j)-res(j))/resfun(j))*100;

Error(j)=abs(Error(j));

end

Tiempo=toc;

mm=length(res);

fprintf('x(aproximado)\t\t x(teórico)\t\t Error \n')

for h=1:mm

fprintf('%f\t\t\t %f\t\t\t %f\t\t\n',res(h),resfun(h),Error(h))

end

ezplot(funcion1,[a-5,b+5])

hold on

for m=1:n

title('Comparacion con Valor Real (Derivacion Centrada)')

hold on

plot(ejex(m),res(m),'ro')

hold on

plot(ejex(m),resfun(m),'k+')

legend('FUNCION','APROXIMADO','REAL')

end

case 2

syms x

m=input('Ingrese el número de puntos a evaluar: '); %Almacenamos el numero de puntos en los que será evaluada la función

%Declaramos un bucle para almacenar los valores ingresados

i=1;

while i

fprintf('Ingrese el valor para x%d', i)

q(i)=input(': '); %Ingresamos valores para cada posición de x

aux=0;

for j=1:i

if q(j)==q(i)

aux=aux+1;

end

end

fprintf('Ingrese el valor para f(x%d)',i)

f(i)=input(': '); %Ingresamos valores para cada posición de x

i=i+1;

end

%Declaramos un bucle para ordenar los numeros en forma creciente

for i=1:m

for j=1:m-i

if q(j)>q(j+1)

aux=q(j);

aux2=f(j);

q(j)=q(j+1);

f(j)=f(j+1);

q(j+1)=aux;

f(j+1)=aux2;

end

end

end

fprintf('\n')

disp('TABLA') %Mostramos una tabla con los valores ingresados y evaluados

fprintf('\tx\t\t\t\tf(x)\n')

for i=1:m

fprintf('%f\t\t\t',q(i))

disp(vpa(f(i),5))

end

%realizamos la interpolación de los pntos ingresados con el método

%de lagrange

%declaramos las variables

yi=0;

pol='0';

%bucle que realiza la suma de los coeficientes

for k=1:m

%inicializamos variables

producto=f(k);

termino=num2str(f(k));

%bucle que encuentra los coeficientes de lagrange

for r=1:m

if k~=r

producto=producto*(x-q(r))/(q(k)-q(r));

termino=strcat(termino,'*(x-',num2str(q(r)),')/(',num2str(q(k)),'-',num2str(q(r)),')');

end

end

%sumamos los resultados obtenidos

yi=yi+producto;

pol=strcat(pol,'+',termino);

end

pol=sym(pol); %convertimos a simbolico

funcion1=simplify(pol); %simplificamos el polinomio

funcion=inline(funcion1); %realizamos inline de la funcion

xinicial=q(1);

...

Descargar como  txt (15.3 Kb)   pdf (110.4 Kb)   docx (24.1 Kb)  
Leer 6 páginas más »
Disponible sólo en Essays.club