Métodos Numéricos y Ecuaciones Diferenciales: Resolución y Aplicaciones
Enviado por Chuletator online y clasificado en Matemáticas
Escrito el en
español con un tamaño de 39,55 KB
CALOR
1.HOMOGENEIZAR CONDIC DE CONTORNO CON FUN AUX si tengo u(x,t)=A(t)+B(t)x hago ux=B(T9 derivada igualo con condición y saco B
y luego At+b*0=condición saco A--saco función U(X;T)
sustituyendo.
PASO PROBLEMA A LIMPIO: Sustituyo en elcuacion enunciado sacando ut,uxx,ux derivando U(X;T)
cond.Cont ahora son 0 : derivo U(X;T) e igualando con condiciones
Condición inicial de U igualo con condición de g U(X;T)
Busco sol tipo U(x,t)=T(t)X(t)
Autovalores y autofunciones
coseno=(2n+1)Pi/2 sen=Npi/L
Superposición de soluciones U(x,t)=Tn(t)*Xn(x)=$(Tn'(t)-Tn(t)*landan)*Xn(x)=Ut-Uxx del problema limpio
FUENTE EN AUTOF f(x,t)=$fn(t9*Xn(x) (SUSTITUYO LO D PROB LIMPIO) o si es 0
COND INIC EN AUTOFUNCI U(x,0) =$Tn(0)*Xn(x) ===g(x)=$gn(t)*Xn(T)
RESOLVER PVI T'n(t)-landaN*Tn(t)=fn(t) Tn(0)=gn
SUPERPOSIC DE SOLUC
VUELVO AL ORIG
Según la derivada temporal: uₜ → "modela la conducción de calor en una barra de longitud L" uₜₜ → "modela el movimiento de una cuerda vibrante de longitud L"
Término uₓ : No aparece uₓ (calor) → "la ausencia del término uₓ indica que la barra tiene sección transversal constante"No aparece uₓ (ondas)
→ "la ausencia del término uₓ indica que la tracción es constante"
Término en u (proporcional, tipo +cu o +2u): Aparece, en calor → "el término en u indica que la barra no está aislada térmicamente, ya que existe una disipación proporcional a la temperatura" No aparece, en calor → "al no aparecer un término proporcional a u, la barra está aislada lateralmente"Aparece, en ondas → "el término αu representa una fuerza elástica de restitución"
No aparece, en ondas → "al no aparecer un término proporcional a u, se desprecia la fuerza elástica de restitución"
Término en uₜ (solo se comenta en ondas): No aparece, en ondas → "la ausencia de un término en uₜ indica que se desprecia el rozamiento con el medio"
Término independiente(derec) = 0, en calor → "la ausencia de término independiente confirma que no existe ninguna fuente interna de calor" ≠ 0, en calor → "el término independiente indica una generación interna de calor" (añade "no uniforme" si depende de x)
= 0, en ondas → "no existe carga distribuida" ≠ 0, en ondas → "el término independiente representa una carga distribuida f(x,t)=[lo que sea]"
Condiciones de contorno (mismo criterio calor y ondas):
Te dan u (valor), Dirichlet → "se prescribe/fija la temperatura (o la cota) en el extremo a [valor]"
Te dan uₓ (derivada), Neumann, calor → "se prescribe un flujo de calor en el extremo"
Te dan uₓ = 0, Neumann, calor → "en el extremo no hay flujo de calor (extremo aislado)"
Te dan uₓ, Neumann, ondas → "condición de tipo flujo/pendiente en el extremo"
CONTORNO clear %%%%%% 1. DATOS DEL PROBLEMA a = 0; b = 4; h = 0.1; % paso (cambia a 1 en el apartado c) N = (b-a)/h; % numero de subintervalos a1 = @(x) 0*x; % 0*x -> vector de ceros del tamaño de x a0 = @(x) x/100; g = @(x) (-0.1*x.^3 + 0.5*x.^2 + 20)/100;
%%%%%% 2. DISCRETIZACIÓN ESPACIAL x = (a:h:b)'; % x: vector COLUMNA con la discretización
%%%%%% 3. SISTEMA DE ECUACIONES
% 3.1 Matrices del sistema extendidas a los N+1 nodos
K1=1/h^2*(2*diag(ones(1,N+1)) -diag(ones(1,N),-1) -diag(ones(1,N),1) );
A1=a1(x);
K2=1/(2*h)*( diag(A1(1:
end
1) ,1) - diag(A1(2:end) ,-1) );K3=diag(a0(x));
K=K1+K2+K3; % SISTEMA K.Y=G G=g(x);
% 3.2 CONDICIONES DE CONTORNO (Modelo A:
Dirichlet izq, Neumann der)
% primera fila -> Dirichlet u(0)=0
K(1,:) = 0; K(1,1) = 1; G(1) = 0;
% ultima fila -> Neumann u'(4)=-0.3 con (U(N-1)-4U(N)+3U(N+1))/(2h)=-0.3
K(N+1,:) = 0;
K(N+1,N-1) = 1; K(N+1,N) = -4; K(N+1,N+1) = 3;
G(N+1) = -0.3*2*h;
% 3.3 Resolución del sistema de ecuaciones U = K\G;
%4. POSTPROCESO
idx = round(2.1/h)+1; fprintf('u(2.1) = %.4f\n', U(idx));
idx = round(3.9/h)+1; fprintf('u(3.9) = %.4f\n', U(idx));
[umax, im] = max(U);
fprintf('máximo = %.4f en x = %.2f\n', umax, x(im));
figure; plot(x, U, 'LineWidth', 1.3); grid on;
xlabel('x')
; ylabel('u')
; title('Desplazamiento de la barra')
;
TRAPECIO clear; clc; close all;
% ---- DATOS (versión A: enfriamiento) ----
T0 = 800; TA = 21; c = 2.5; % versión B: T0=25, TA=600, c=3
h = 0.01; tfin = 10;
% ---- malla ----
t = 0:h:tfin; N = length(t); T = zeros(1,N); T(1) = T0;
% ---- bucle: formula del Trapecio ya despejada ----
for n = 1:N-1
T(n+1) = ( T(n) + (h/2)*c*(TA-T(n)) + (h/2)*c*TA ) / ( 1 + (h/2)*c );
end
% ---- 2.1) temperatura en t=0.5 ----
idx = round(0.5/h)+1;
fprintf('2.1) T(0.5) = %.4f\n', T(idx));
% comprobación del enunciado (t=0.03 -> 743.7094)
idx = round(0.03/h)+1;
fprintf('comprob t=0.03 : %.4f\n', T(idx));
% ---- 2.2) grafica 10 horas ----
figure; plot(t, T, 'LineWidth', 1.3); grid on;
xlabel('t (horas)'); ylabel('Temperatura');
title('Solución aproximada por método del Trapecio');
% ---- 2.3) primer instante que alcanza el ambiente ---
-
tol = 1e-3; % OJO: 10^-3, no e^-3 (despiste del enunciado)
inst = NaN;
for n = 1:N
if abs(T(n) - TA) <= tol
inst = t(n); break; % break = corta en el primero que cumple
end
end
fprintf('2.3) equilibrio en t = %.2f h\n', inst);
% EJERCICIO 3 - PVI
con Heun (RK2) -- Versión A (Marzo 2025)
% y' = -y^2 + (x^2/3 - x)^2 + 2x/3 - 1 , y(0)=0 , x en [0,3]
% Solución exacta: y_ex = -x + x^2/3
clear; clc; close all;
%% ---- f del enunciado (Versión A) y exacta ---- f = @(x,y) -y.^2 + (x.^2/3 - x).^2 + 2*x/3 - 1; exacta = @(x) -x + x.^2/3;
x0 = 0; y0 = 0; xfin = 3;
%% ---- apartado c) h = 0.25 ---- h = 0.25; x = x0:h:xfin; N = length(x); y = zeros(1,N); y(1) = y0; for n = 1:N-1 K1 = f(x(n), y(n)); K2 = f(x(n)+h, y(n)+h*K1); y(n+1) = y(n) + (h/2)*(K1 + K2); end % valores en x=1,2,3 for xp = [1 2 3] idx = round(xp/h)+1; fprintf('y(%d) = %.4f\n', xp, y(idx)); end % comprobación del enunciado (x=1.5 -> -0.788652) idx = round(1.5/h)+1; fprintf('comprob x=1.5 : %.6f\n', y(idx));
%% ---- apartado d) error máximo ---- err = abs(y - exacta(x)); [emax, im] = max(err); fprintf('error máximo = %.4f en x = %.2f\n', emax, x(im));
%% ---- apartado e) grafica exacta vs numérica ----
figure;
plot(x, exacta(x), 'b-', 'LineWidth', 1.3); hold on;
plot(x, y, 'r--o', 'LineWidth', 1.3);
grid on; xlabel('x')
; ylabel('y');
legend('Solución exacta','Aproximación numérica');
title('Comparación solución numérica y exacta');
HEUNN .Lado izq derivo y=Alpha+2bx y lado derecho sustituyo función e igualo coeficientes para q me de exacta.
Heunn x0=0 evaluar en k1=susutituir en función con 0
K2=f(x0+h, y0+h*k1) y evalúo en ese punto
Y1=y0 + (h/2)*(k1 + k2)
CVar: u=v' u=v'' var sep
POB: dN(t)/dt=k*N(t) n(t)=Noé^kt
CVar: x=e^t t=lnx y(x)=z(t) = z(lnx)
y''-y'/x=x hago u=y' para q sea factor integrante
Newton: dT/dt = K(Tamb - T) factor integrante
Euler: t=e^s z(s)=y(e^S) z(s)=y(e^s)---y'(e^s)=z'(s)*e^-s---y''(e^s)=z''(s) - z'(s) / e^2s
udif de 0= ninguna sol o solución única u=0 infinitas