Академический Документы
Профессиональный Документы
Культура Документы
-0.5
0 1 2 3 4 5 6
Método de Euler
Construcción de las aproximaciones a la solución del problema de valor inicial 𝑦 ′ = 𝑓(𝑡, 𝑦), 𝑐𝑜𝑛 𝑦(𝑎) = 𝑦0 en [a,b]
dadas por 𝑦𝑘+1 = 𝑦𝑘 + ℎ𝑓(𝑡𝑘 , 𝑦𝑘 ), 𝑝𝑎𝑟𝑎 𝑘 = 0,1, … , 𝑀 − 1.
Prog01.m Prog02.m
E=euler('f',0,3,1,10) H=heun('f',0,3,1,10)
plot(E(:,1),E(:,2)) plot(H(:,1),H(:,2))
hold on hold on
% solucion del PVI: y'=(t-y)/2, % solucion del PVI: y'=(t-y)/2,
y(0)=1 y(0)=1
t1=0:0.001:3;z1=3*exp(-t1/2)-2+t1; t1=0:0.001:3;z1=3*exp(-t1/2)-2+t1;
plot(t1,z1,'r'),grid plot(t1,z1,'r'),grid
legend('sol euler','sol exacta') legend('sol heun','sol exacta')
hold off hold off
1.7 1.8
sol euler sol heun
1.6 sol exacta 1.7 sol exacta
1.5 1.6
1.4 1.5
1.3 1.4
1.2 1.3
1.1 1.2
1 1.1
0.9 1
0.8 0.9
0.7 0.8
0 0.5 1 1.5 2 2.5 3
0 0.5 1 1.5 2 2.5 3
y(0)=1 1.5
t1=0:0.001:3;z1=3*exp(-t1/2)-2+t1; 1.4
plot(t1,z1,'r'),grid
1.3
legend('sol Taylor','sol exacta')
hold off 1.2
1.1
0.9
0.8
0 0.5 1 1.5 2 2.5 3
Metodos de Runge – Kutta
El método de Taylor tiene el incoveniente de calcular la derivada de la función hasta de cuarto orden, lo cual puede
suplirse con la evaluacion de la función en cada paso, en varios puntos a la vez. Es decir considerando el problema de
valor inicial:
𝑦 ′ = 𝑓(𝑡, 𝑦), 𝑐𝑜𝑛 𝑦(𝑎) = 𝑦𝑜 𝑒𝑛 [𝑎, 𝑏]
Se resuelve usando la formula:
ℎ(𝑓1 + 2𝑓2 + 2𝑓3 + 𝑓4 )
𝑦𝑘+1 = 𝑦𝑘 +
6
Donde
ℎ ℎ
𝑓1 = 𝑓(𝑡𝑘 , 𝑦𝑘 ) 𝑓2 = 𝑓 (𝑡𝑘 + 2 , 𝑦𝑘 + 2 𝑓1 )
ℎ ℎ
𝑓3 = 𝑓 (𝑡𝑘 + 2 , 𝑦𝑘 + 2 𝑓2 ) 𝑓4 = 𝑓(𝑡𝑘 + ℎ, 𝑦𝑘 + ℎ𝑓3 )
Ejecucion en MatLab
>> R=rk4('f',0,3,1,10)
R=
0 1.0000
0.3000 0.8821
0.6000 0.8225
0.9000 0.8129
1.2000 0.8464
1.5000 0.9171
1.8000 1.0197
2.1000 1.1498
2.4000 1.3036
2.7000 1.4777
3.0000 1.6694
>>
function A=abm(f,T,Y)
% Datos: f es la funcion almacenada como una cadena
% de caracteres ’f’
% T es el vector de las abcsisas; su dimension es el numero de
% pasos
% Y es el vector de las ordenadas
% observacion
% las cuatro primeras coordenadas de T e Y
% deben contener valores iniciales
% calculados con el metodo RK4
% Resultado: R=[T’ Y’] siendo T el vector de las abscisas
% e Y el vector de las ordenadas
n=length(T);
if n<5, break,end;
F=zeros(1,4);
F=feval(f,T(1:4),Y(1:4));
h=T(2)-T(1);
for k=4:n-1
% predictor
p=Y(k)+(h/24)(F*[-9 37 -59 55]');
T(k+1)=T(1)+h*k;
F=[F(2) F(3)F(4) feval(f,T(k+1),p)];
% corrector
Y(k+1)=Y(k)+(h/24)*(F*[1 -5 19 9]');
F(4)=feval(f,T(k+1),Y(k+1));
end
A=[T' Y'];
Ejecucion en Matlab
>>
>> R=rk4('f',0,3,1,25) % paso = 1/8
R=
0 1.0000
0.1200 0.9453
0.2400 0.9008
0.3600 0.8658
0.4800 0.8399
0.6000 0.8225
0.7200 0.8130
0.8400 0.8111
0.9600 0.8164
1.0800 0.8282
1.2000 0.8464
1.3200 0.8706
1.4400 0.9003
1.5600 0.9352
1.6800 0.9751
1.8000 1.0197
1.9200 1.0687
2.0400 1.1218
2.1600 1.1788
2.2800 1.2395
2.4000 1.3036
2.5200 1.3710
2.6400 1.4414
2.7600 1.5147
2.8800 1.5908
3.0000 1.6694
>>
Examen
1. Elabore un programa que resuelva un sistema de tres ecuaciones con tres incongnitas. Usando el
determinante de orden 3x3. Se debe ingresar por teclado la matriz de coeficientes mediante el comando
input, de igual modo la matriz columna de términos independientes. Considere que la matriz de coeficientes
𝑎 𝑏 𝑐
tiene determinante no nulo. |𝑑 𝑒 𝑓 | = 𝑎𝑒𝑖 + 𝑑ℎ𝑐 + 𝑔𝑏𝑓 − 𝑔𝑒𝑐 − 𝑎ℎ𝑓 − 𝑑𝑏𝑖
𝑔 ℎ 𝑖
2. La cuenta tiene un capital inicial de $ 1000 y un interés de 6,5% que produce beneficios anualmente.
Para un capital inicial A, y una tasa de interés anual r, el monto (Interes + capital) B, después de n años,
𝑟 𝑛
viene dado por la expresión: 𝑀 = (1 + 100) .
a) Escriba un programa que calcule los montos (M) que se obtienen, a travez de los años, cuando n varia de
1 a 20. Presente el resultado en forma de dos columnas: año vs monto.
b) halle los tiempos necesarios para que el capital inicial quede multiplicado por k, siendo k un valor entero
positivo entre 1 y 10. Presente los resultados en una tabla.
3. La velocidad v y la distancia d, en función del tiempo, de un coche que tiene una aceleracion constante
a, vienen dados por: v (t )= at y d (t ) = 1 at 2
2
a) Determine v y d para cada segundo, durante 10 segundos, para un coche con una aceleración a = 1,55
m/s2. Muestre los resultados en una tabla de tres columnas en la e velocidad (m/s).
4. Dado un conjunto de 4 puntos ingresado por teclado. Elaborar un programa que permita hallar un polinomio de
grado menor o igual a tres que pase por ellos, construyendo para ello un SEL de 4 por 4. Luego graficar tal polinomio,
en el dominio de -5 a 5.
5. Dado un polinomio 𝑝 = 𝐴𝑥 2 + Bx + C, ingresar por teclado sus coeficientes. Elaborar un programa que
determine si la raíces de la función son reales, reales e iguales o complejas. Para ello deberá usar el comando “if
end” o alguna variante adecuada.
6 Elabore un programa que ordene 10 números ingresados por teclado.
𝑥 𝑥2 𝑥3
7. Dada la serie 𝑒 𝑥 = 1 + 1! + 2!
+ 3!
+ ⋯ , −∞ < 𝑥 < ∞, indicar los términos a considerar para calcular el valor
de la exponencial en x, cuando toma valores de 1, 2, 3, hasta 20. Considerando que el término no considerado sea
menor que 10−5.
2 /2
8. Resolver la ecuación diferencial 𝑦 ′ = −𝑡𝑦, 𝑐𝑜𝑛 𝑦(0) = 1, 𝑠𝑖𝑒𝑛𝑑𝑜 𝑙𝑎 𝑠𝑜𝑙𝑢𝑐𝑖𝑜𝑛 𝑟𝑒𝑎𝑙 𝑦(𝑡) = 𝑒 −𝑡 . Usando dos
métodos diferentes y evaluar los errores cometidos con respecto a la solución real.