PRACTICA N 7 DE METODOS NUMERICOS 1.fprintf('\n DIFERENCIACION PROGRESIVA , REGRESIVA Y CENTRAL \n ') h=input('ingrese valores de h como vector :'); f=input('ingrese la funcion : ','s'); x0=input('ingrese el punto x0 : '); n=length(h); fprintf(' FORMULAS \n') fprintf(' PROGRESIVA REGRESIVA CENTRAL ERROR DE TRUNCAMIENTO \n') fprintf(' h f(x0+h)-f(x0) f(x0)-f(x0-h) f(x0+h)f(x0-h) h \n'); fprintf(' h h 2h 2(1.8)^2 \n'); for i=1:n x=x0+h(i); f1=eval(f); x=x0-h(i); f2=eval(f); x=x0; f3=eval(f); g=((h(i))/(2*(x0)^2)); fprintf(' \n%4.4f \t \t %8.8f \t \t %8.8f \t \t %8.8f \t\t %8.8f \n ',h(i),(f1-f3)/(h(i)),(f3-f2)/(h(i)),(f1-f2)/(2*h(i)),g); end
respuesta: DIFERENCIACION PROGRESIVA , REGRESIVA Y CENTRAL ingrese valores de h como vector :[0.1,0.01,0.001] ingrese la funcion : log(x) ingrese el punto x0 : 1.8 FORMULAS PROGRESIVA
h
f(x0+h)-f(x0) h
REGRESIVA
CENTRAL
f(x0)-f(x0-h) h
f(x0+h)-f(x0-h) 2h
ERROR DE TRUNCAMIENTO h 2(1.8)^2
0.1000
0.54067221
0.57158414
0.55612818
0.01543210
0.0100
0.55401804
0.55710450
0.55556127
0.00154321
0.0010
0.55540129
0.55570993
0.55555561
0.00015432
5.fprintf('\n DIFERENCIACION DE 3 PUNTOS \n ') h=input('ingrese valores de h como vector :'); f=input('ingrese la funcion : ','s'); x0=input('ingrese el punto x0 : '); fprintf(' ERROr DE TRUNCAMIENTO \n') fprintf('\n h [-3f(x0)+4f(x0+h)-f(x0+2h)] h^2*f^3(ƒ(x0)) h^2*f^3(ƒ(x0+2h) \n '); fprintf(' 2h 3 3'); g=diff(diff(diff(f))); for i=1:(length(h)); x=x0; r1=((h(i)^2)*eval(g)/3); f0=eval(f); x=x0+h(i); f1=eval(f); x=(x0+2*h(i)); r2=((h(i)^2)*eval(g)/3); f2=eval(f); F=((-3*f0+4*f1-f2)/2*h(i)); e=h(i); fprintf('\n %5.3f \t\t \t\t %8.8f \t\t\t %8.8f \t\t %8.8f \n ',e,F,r1,r2); end
ejemplo. DIFERENCIACION DE 3 PUNTOS ingrese valores de h como vector :[0.1,0.2,0.3,0.4] ingrese la función : x^3+5*x^2-3*x+5 ingrese el punto x0 : 0.6 ERROR DE TRUNCAMIENTO h 0.100
[-3f(x0)+4f(x0+h)-f(x0+2h)] 2h 0.04060000
h^2*f^3(ƒ(x0)) 3 0.02000000
h^2*f^3(ƒ(x0+2h) 3 0.02000000
0.200
0.16000000
0.08000000
0.08000000
0.300
0.35100000
0.18000000
0.18000000
0.400
0.60160000
0.32000000
0.32000000
6.fprintf('\n DIFERENCIACION DE 5 PUNTOS \n ') h=input('ingrese valores de h como vector :'); f=input('ingrese la funcion : ','s'); x0=input('ingrese el punto x0 : '); fprintf(' ERROR DE TRUNCAMIENTO \n') fprintf('\n h [f(x0-2h)-8f(x0-h)+8f(x0+h)-f(x0+2h)] h^4*f^5(ƒ(x0-2h)) h^4*f^5(ƒ(x0+2h) \n'); fprintf(' 12h 30 30'); g=diff(diff(diff(diff(diff(f))))); for i=1:(length(h)); x=(x0-2*h(i)); f3=eval(f); x=(x0-h(i)); f4=eval(f); x=x0; r1=((h(i)^2)*eval(g)/3); f0=eval(f); x=x0+h(i); f1=eval(f); x=(x0+2*h(i)); r2=((h(i)^2)*eval(g)/3); f2=eval(f); F=((f3-8*f4+8*f1-f2)/12*h(i)); e=h(i); fprintf('\n %5.3f \t\t \t\t %8.8f \t\t\t\t\t %8.8f \t\t %8.8f \n ',e,F,r1,r2); end
ejemplo. DIFERENCIACION DE 5 PUNTOS ingrese valores de h como vector :[0.1,0.2,0.3,0.4] ingrese la función : x^5-4*x^4-x^3+5*x^2-3*x+5 ingrese el punto x0 : 0.8 ERROR DE TRUNCAMIENTO h 0.100
[f(x0-2h)-8f(x0-h)+8f(x0+h)-f(x0+2h)] 12h -0.03064400
h^4*f^5(ƒ(x0-2h)) 30 0.40000000
h^4*f^5(ƒ(x0+2h) 30 0.40000000
0.200
-0.12281600
1.60000000
1.60000000
0.300
-0.27867600
3.60000000
3.60000000
0.400
-0.50662400
6.40000000
6.40000000
7.fprintf('\n FORMULA DE LA 2DA DERIVADA \n ') h=input('ingrese valores de h como vector :'); f=input('ingrese la funcion : ','s'); x0=input('ingrese el punto x0 : '); fprintf(' ERROr DE TRUNCAMIENTO \n') fprintf('\n h \t\t [-2f(x0)+f(x0+h)+f(x0-h)] \t f^4(ƒ(x0h)) \t\t f^4(ƒ(x0+h) \n '); fprintf(' h^2 \t\t 12 \t\t 12'); g=diff(diff(diff(diff(f)))); for i=1:(length(h)); x=x0-h(i); r1=(eval(g)/12); f2=eval(f); x=x0; f0=eval(f); x=x0+h(i); f1=eval(f); r2=(eval(g)/12); F=((-2*f0+f1+f2)/2*h(i)); e=h(i); fprintf('\n %5.3f \t\t \t\t %8.8f \t\t\t\t\t %8.8f \t\t %8.8f \n ',e,F,r1,r2); end
ejemplo FORMULA DE LA 2DA DERIVADA ingrese valores de h como vector :[0.1,0.2,0.3,0.4] ingrese la funcion : x^5-4*x^4-x^3+5*x^2-3*x+5 ingrese el punto x0 : 0.8 ERROR DE TRUNCAMIENTO h 0.100
[-2f(x0)+f(x0+h)+f(x0-h)] h^2 -0.00764000
f^4(ƒ(x0-h)) 12 -1.00000000
f^4(ƒ(x0+h) 12 1.00000000
0.200
-0.06112000
-2.00000000
2.00000000
0.300
-0.20628000
-3.00000000
3.00000000
0.400
-0.48896000
-4.00000000
4.00000000
8.DIFERENCIACION PROGRESIVA , REGRESIVA Y CENTRAL ingrese valores de h como vector :[0.01] ingrese la función : cos(x) ingrese el punto x0 : 0.8 FORMULAS PROGRESIVA REGRESIVA CENTRAL h f(x0+h)-f(x0) f(x0)-f(x0-h) f(x0+h)-f(x0-h) h h 2h 0.01
-0.72082764
-0.71386063
ERROr DE TRUNCAMIENTO h 2(1.8)^2
-0.71734414
0.00781250
DIFERENCIACION DE 3 PUNTOS ingrese valores de h como vector :[0.01] ingrese la función : cos(x) ingrese el punto x0 : 0.8 ERROr DE TRUNCAMIENTO h
[-3f(x0)+4f(x0+h)-f(x0+2h)] 2h -0.00007174
0.010
h^2*f^3(ƒ(x0)) 3 0.00002391
h^2*f^3(ƒ(x0+2h) 3 0.00002437
DIFERENCIACION DE 5 PUNTOS ingrese valores de h como vector :[0.01] ingrese la función : cos(x) ingrese el punto x0 : 0.8 ERROR DE TRUNCAMIENTO h 0.010
[f(x0-2h)-8f(x0-h)+8f(x0+h)-f(x0+2h)] 12h -0.00007174
h^4*f^5(ƒ(x0-2h)) 30 -0.00002391
RESPUESTA: La que mejor se aproxima es la formula central
h^4*f^5(ƒ(x0+2h) 30 -0.00002437
9.FORMULA DE LA 2DA DERIVADA ingrese valores de h como vector :[0.1,0.01,0.001] ingrese la funcion : cos(x) ingrese el punto x0 : 0.8 ERROr DE TRUNCAMIENTO h 0.100
[-2f(x0)+f(x0+h)+f(x0-h)] h^2 -0.69612631
f^4(ƒ(x0-h)) 12 0.06373685
f^4(ƒ(x0+h) 12 0.05180083
0.010
-0.69670090
0.05865378
0.05745820
0.001
-0.69670665
0.05811864
0.05799908
d^2(cos(x))=-cos(x)=g(x) dx^2 g(0.8)= -0.69670670934717
10.PROGRAMA DE EXTRAPOLACION DE RICHARDSON clear d fprintf('\n PROGRAMA DE LA EXTRAPOLACION DE RICHARSON \n '); f=input('ingrese la funcion : ','s'); x0=input('ingrese el punto x0 : '); h=input('ingrese el valor de h : '); tol=input('ingrese la tolerancia : '); i=0; while 1 i=i+1; x=x0+h/2^(i-1); f1=eval(f); x=x0-h/2^(i-1); f2=eval(f); d(i,1)=(f1-f2)/(2*h/(2^(i-1))); x=x0+h/2^(i); g1=eval(f); x=x0-h/2^(i); g2=eval(f); d(i+1,1)=(g1-g2)/(2*h/(2^(i))); for k=1:i d(i+1,k+1)=(((4^k)*(d(i+1,k))-d(i,k))/((4^k)-1)); end p=(abs(d(i+1,i+1)-d(i,i))); if p <= tol; break else p > tol; end end d
11.PROGRAMA DE LA EXTRAPOLACION DE RICHARSON ingrese la funcion : x*(exp(x)) ingrese el punto x0 : 2 ingrese el valor de h : 0.2 ingrese la tolerancia : 10^(-4) d= 22.41416065702942 0 0 0 22.22878688030728 22.16699562139990 0 0 22.18256485779758 22.16715751696101 22.16716830999842 0 22.17101693188372 22.16716762324576 22.16716829699808 22.16716829679172 RESPUESTA: 22.16716829679172 12.PROGRAMA DE LA EXTRAPOLACION DE RICHARSON ingrese la funcion : (2^(x))*sin(x) ingrese el punto x0 : 1.05 ingrese el valor de h : 0.4 ingrese la tolerancia : 10^(-4) d= 2.20316569739156 0 0 0 2.25723724341336 2.27526109208729 0 0 2.27067416730635 2.27515314193734 2.27514594526068 0 2.27402826645954 2.27514629951060 2.27514584334882 2.27514584173117