Documentos de Académico
Documentos de Profesional
Documentos de Cultura
--FUNCION
function dydx=f(x,y)
dydx=y.*(x*x-1);
--CODIGO
function euler(f,a,b,n,y0)
%datos
%a =limite inferior
%y0 =f(a)
%x =es el vector x
%n =numero de segmentos
%resultados
h=(b-a)/n;
n=n+1;
y=zeros(n,1);
x=zeros(n,1);
x(1)=a;
y(1)=y0;
fprintf(' x y \n');
fprintf('===================\n');
fprintf('%10.6f%10.6f\n',x(1),y(1));
for i=1:n-1
x(i+1)=a+h*i;
y(i+1)=y(i)+h*feval('f',x(i),y(i));
fprintf('%10.6f%10.6f\n',x(i+1),y(i+1));
end
//RESULTADO
>> euler('x^2',0,1,10,0.1)
x y
===================
0.000000 0.100000
0.100000 0.090000
0.200000 0.081090
0.300000 0.073305
0.400000 0.066635
0.500000 0.061037
0.600000 0.056459
0.700000 0.052846
0.800000 0.050151
0.900000 0.048345
1.000000 0.047427
METODO DE RK4
--CODIGO
function RK4(f,a,b,n,y0)
%datos
%a =limite inferior
%b =limite superior
%y0 =f(a)
%x =es el vector x
%n =numero de segmentos
%resultados
h=(b-a)/n;
n=n+1;
y=zeros(n,1);
x=zeros(n,1);
x(1)=a;
y(1)=y0;
fprintf(' x y \n');
fprintf('====================\n');
fprintf('%10.6f%10.6f\n',x(1),y(1));
for i=1:n-1
k1=feval('f',x(i),y(i));
k2=feval('f',x(i)+h/2,y(i)+h*k1/2);
k3=feval('f',x(i)+h/2,y(i)+h*k2/2);
k4=feval('f',x(i)+h,y(i)+h*k3);
x(i+1)=a+h*i;
y(i+1)=y(i)+h*(k1+2*k2+2*k3+k4)/6;
fprintf('%10.6f%10.6f\n',x(i+1),y(i+1));
end
--RESULTADO
>> RK4('4*exp(0.8*x)-0.5*y',0,2,4,0.2)
x y
====================
0.000000 0.200000
0.500000 0.126468
1.000000 0.102669
1.500000 0.137399
2.000000 0.386643
METODO DE HEUN
--CODIGO
function heun(f,a,b,n,y0)
%datos
%a =limite inferior
%b =limite superior
%y0 =f(a)
%x =es el vector x
%n =numero de segmentos
%resultados
h=(b-a)/n;
n=n+1;
y=zeros(n,1);
x=zeros(n,1);
x(1)=a;
y(1)=y0;
p(1)=0;
fprintf(' x p y \n');
fprintf('===============================\n');
fprintf('%10.6f%10.6f%10.6f\n',x(1),p(1),y(1));
for i=1:n-1
p(i+1)=y(i)+h*feval('f',x(i),y(i));
x(i+1)=a+h*i;
y(i+1)=y(i)+0.5*h*(feval('f',x(i),y(i))+feval('f',x(i+1),p(i+1)));
fprintf('%10.6f%10.6f%10.6f\n',x(i+1),p(i+1),y(i+1));
end
--RESULTADO
>> heun('x^2',0,1,10,0.1)
x p y
===============================
APLICACION 01
--FUNCION 01
% p.m
function f=p(t)
f=1;
end
--FUNCION 02
% q.m
function f=q(t)
f=0;
end
--FUNCION 03
% r.m
function f=r(t)
f=t*(t-1);
end
--CODIGO 01
% x(t)‟‟ = p(t)x‟(t)+q(t)x(t)+r(t)
% Entradas
% n numero de pasos
% Salida
T = zeros(1,n+1); X = zeros(1,n-1);
Va = zeros(1,n-2); Vb = zeros(1,n-1);
Vc = zeros(1,n-2); Vd = zeros(1,n-1);
h = (b - a)/n;
for j=1:n-1,
Vt(j) = a + h*j;
end
for j=1:n-1,
Vb(j) = -h^2*feval(r,Vt(j));
end
for j=1:n-1,
Vd(j) = 2 + h^2*feval(q,Vt(j));
end
for j=1:n-2,
Va(j) = -1 - h/2*feval(p,Vt(j+1));
end
for j=1:n-2,
Vc(j) = -1 + h/2*feval(p,Vt(j));
end
X = trisys(Va,Vd,Vc,Vb);
T = [a,Vt,b];
X = [alpha,X,beta];
--CODIGO 02
% trisys.m
function X = trisys(A,D,C,B)
%---------------------------------------------------------
% Entradas
% D vector diagonal
% Salida
% X vector solucion
%---------------------------------------------------------
n = length(B);
for k = 2:n,
mult = A(k-1)/D(k-1);
end
X(n) = B(n)/D(n);
for k = (n-1):-1:1,
--RESULTADO
T=
Columns 1 through 4
Column 5
1.0000
X=
Columns 1 through 4
Column 5
PROPUESTO 03
y=dsolve('Dy=(y-x-1)^2+2','y(0)=1','x');
>> simplify(y)
ans =
x + tan(x) + 1
>> y=dsolve('D2y-19.62*y=0','y(0)=0','Dy(0)=0.25','x');
>> simplify(y)
ans =
(5*218^(1/2)*sinh((3*218^(1/2)*x)/10))/1308
>> ezplot('(5*218^(1/2)*sinh((3*218^(1/2)*x)/10))/1308',[-1,1])