Math Problem Statement

assignment.pdf

104.19 KB

Produz código matlab para resolver o problema do ficheiro. O código deve incluir o cálculo exacto da solução para o ponto x onde a temperatura é máxima para t=3s

Solution

O problema envolve a resolução da equação do calor em 1-D com uma fonte de calor móvel. Vou gerar um código MATLAB para calcular a temperatura T(x,t)T(x, t) no intervalo t[0,3]t \in [0, 3] usando o método das diferenças finitas implícitas. O código incluirá o cálculo do ponto xx onde a temperatura é máxima para t=3st = 3 \, \mathrm{s}.

Segue o código MATLAB:

matlab
% Definição dos parâmetros L = 10; % Comprimento do domínio T_final = 3; % Tempo final Nx = 100; % Número de pontos espaciais Nt = 300; % Número de passos no tempo dx = L / (Nx - 1); % Passo espacial dt = T_final / Nt; % Passo no tempo % Propriedades físicas c = 1.5e6; rho = 1e-6; k = 0.25; u = 0.8; % Constantes auxiliares alpha = k / (rho * c); beta = u / alpha; % Malha espacial e temporal x = linspace(0, L, Nx); t = linspace(0, T_final, Nt); % Condições iniciais e de contorno T = ones(Nx, 1) * 20; % T(x,0) = 20 T_new = T; % Matriz do sistema implícito A = zeros(Nx, Nx); for i = 2:Nx-1 A(i, i-1) = -alpha / dx^2; A(i, i) = 1 / dt + 2 * alpha / dx^2; A(i, i+1) = -alpha / dx^2; end A(1, 1) = 1; % Condição de contorno ∂T/∂x(0,t)=0 A(Nx, Nx) = 1; % Condição de contorno T(10,t)=20 + (e^t - 1) % Vetor fonte Q = @(x, t) 85 * exp(-2 * ((x - u * t) / 0.25).^2); % Loop no tempo for n = 1:Nt % Atualização do vetor fonte b = T / dt; for i = 2:Nx-1 b(i) = b(i) + Q(x(i), t(n)); end b(1) = b(2); % ∂T/∂x(0,t)=0 b(Nx) = 20 + (exp(t(n)) - 1); % T(10,t)=20 + (e^t - 1) % Resolução do sistema linear T_new = A \ b; T = T_new; end % Cálculo da posição de temperatura máxima para t = 3 s [~, idx_max] = max(T); x_max = x(idx_max); % Resultados fprintf('Temperatura máxima em t=3s ocorre em x=%.4f m\n', x_max); fprintf('Valor da temperatura máxima: %.4f °C\n', T(idx_max)); % Plot dos resultados figure; plot(x, T, '-r', 'LineWidth', 1.5); xlabel('x (m)'); ylabel('T (°C)'); title('Distribuição de temperatura em t = 3 s'); grid on;

Descrição do Código:

  1. Definição dos Parâmetros: São utilizados valores do problema, incluindo constantes físicas e propriedades do domínio.
  2. Discretização Implícita: A matriz AA representa o sistema linear das diferenças finitas.
  3. Fonte de Calor: É implementada a função Q(x,t)Q(x, t) com o termo gaussiano.
  4. Condições de Contorno:
    • Derivada nula em x=0x=0: Tx(0,t)=0\frac{\partial T}{\partial x}(0,t) = 0.
    • Valor especificado em x=Lx=L: T(10,t)=20+(et1)T(10,t) = 20 + (e^t - 1).
  5. Cálculo da Temperatura Máxima: Determina-se o ponto xx e o valor da temperatura máxima em t=3t = 3.

Deseja explorar detalhes sobre algum trecho do código?

5 Perguntas Relativas:

  1. Como é montada a matriz do sistema implícito AA?
  2. Por que a condição de contorno Tx(0,t)=0\frac{\partial T}{\partial x}(0, t) = 0 é implementada dessa forma?
  3. Qual é a vantagem do método implícito sobre o método explícito nesse contexto?
  4. Deseja visualizar o comportamento da temperatura em outros momentos, além de t=3t = 3?
  5. Como ajustar o código para outros valores de uu ou propriedades físicas?

Dica:

Utilize funções vetoriais em MATLAB para otimizar cálculos como Q(x,t)Q(x, t), principalmente em malhas grandes.

Ask a new question for Free

By Image

Drop file here or Click Here to upload

Math Problem Analysis

Mathematical Concepts

Partial Differential Equations
Heat Equation
Finite Difference Method
Numerical Methods

Formulas

Heat equation: ∂T/∂t = α ∂²T/∂x²
Source term: Q(x, t) = 85 * exp(-2 * ((x - u * t) / 0.25)²)
Boundary conditions: ∂T/∂x(0,t) = 0, T(10,t) = 20 + (e^t - 1)

Theorems

Finite Difference Method
Implicit Scheme for Heat Equation

Suitable Grade Level

Undergraduate (Engineering, Physics, Applied Mathematics)