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');


DyjHmWByznnDAAAAAElFTkSuQmCC

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

Entradas relacionadas: