-
Notifications
You must be signed in to change notification settings - Fork 1
/
rlr_ex01.m
62 lines (55 loc) · 1.77 KB
/
rlr_ex01.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
% %
% Método Rayleigh Ritz %
% %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% Alunos: Igor Amorim Silva - 12092036 , Claudyane Araújo - 1209207
%
% Descrição: Implementação do Método de Rayleigh Ritz para resolução de Equações
% Diferenciais de Primeira e Segunda Ordem.
%
% Obs.: Foram utilizadas apenas 3 iterações de k...
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clear;
clf;
clc;
disp('\\\\\\\\\\\\\\\\\\\\\\ Método Rayleigh Ritz /////////////////////');
a=input('Intervalo Inferior:'); % Intervalo Inferior
b=input('Intervalor Superior:'); % Intervalor Superior
n=input('Número de iterações:');
syms x;
%Condições de Contorno
for i=1:n
phi(i)=x^i-x^(i+1);% função de aproximação para os respectivos valores de k
end
% Equação Diferencial
J=@(y)(diff(y)+2*x); % Colocar a E.D
A=[];
% Substituição dos Valores no funcional
JY=J(sum(phi));
%
% Encontranto os valores ak
A=int(JY,a,b);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Y=inline(A*JY); % A*sum(phi)
disp('Equação Aproximada');
disp(Y);
% Plotagem do Gráfico
x=a:0.01:b;
plot(Y(x),'--b');
hold on, grid on, title('Método de Rayleigh Ritz');
exat=-x.^2;
plot(exat,'-og')
legend('Sol. Aproximada','Sol. Exata');
% ERRO
erro= exat-Y(x);
disp('Exata');
disp(exat');
disp('Aproximada');
disp(Y(x)');
disp('Erro');
disp(erro');