Advertisement
FelipeNeto2

Matlab backup 4

Apr 3rd, 2024 (edited)
799
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 1.72 KB | None | 0 0
  1. =% Parâmetros
  2. U0 = 1;         % Condição de contorno em x=0
  3. UL = 0;         % Condição inicial
  4. phi = 1;      % Porosidade
  5. vel = 1;      % Velocidade
  6. D = 1;        % Coeficiente de difusão
  7. L = 1;          % Comprimento do intervalo
  8. T = 1;          % Tempo final
  9.  
  10. % Parâmetros adimensionais
  11. t_ref = D / (phi * L^2);       % Tempo característico
  12. T_estrela = T / t_ref;                 % Tempo final adimensional
  13.  
  14. % Variáveis e malhas adimensionais
  15. n = 100;                            % Número de pontos na malha espacial
  16. dx = L / (n - 1);
  17. x_adim = (0:dx:L) / L;       % Malha espacial adimensional
  18.  
  19. dt = 0.01 * t_ref;
  20. t_adim = (0:dt:T_estrela) * t_ref;   % Malha temporal adimensional
  21.  
  22. B = zeros(n, 1);
  23. % Preenchimento da matriz inicial B
  24. B(1) = U0;
  25. B(end) = UL;
  26.  
  27. % Inicialização da matriz A
  28. A = zeros(n);
  29.  
  30. % Coeficientes da matriz A
  31. z = dt / (phi * dx);
  32. A1 = z * (-vel/2 - D / dx);
  33. A2 = 1 + z * ((2*D)/dx);
  34. A3 = z * (vel/2 - D/dx);
  35.  
  36. for i = 2:n-1
  37.     A(i, i - 1) = A1;
  38.     A(i, i) = A2;
  39.     A(i, i + 1) = A3;
  40. end
  41.  
  42. A(1, 1) = 1;
  43. A(end, end) = 1;
  44.  
  45. tempos = [0.09, 0.14, 0.19, 0.32] * T_estrela;
  46.  
  47. % Solução dos sistemas A*u = B
  48. for j = 2:length(t_adim)
  49.     u = A \ B;  % Resolve o sistema linear
  50.    
  51.     % Verificar se o tempo atual está nos tempos desejados
  52.     if t_adim(j) == tempos(1) || t_adim(j) == tempos(2) || t_adim(j) == tempos(3) || t_adim(j) == tempos(4)
  53.         % Se sim, plotar a solução numérica
  54.         plot(x_adim * L, u, 'r'); % Convertendo x' de volta para x
  55.         hold on;
  56.     end
  57.    
  58.     % Atualiza o B para o próximo passo de tempo
  59.     B = u;
  60. end
  61.  
  62. xlabel('x');
  63. ylabel('C');
  64. title('Solução da Equação de Convecção-Difusão (Adimensional)');
  65. grid on;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement