Anda di halaman 1dari 2

Programas

%METODO_VARIACIONAL
clc;
clear;
syms x Q0 Q1 Q2 c1 c2 w0 w1;
wo=1;
w1=x;
Q0=x;
Q1=x^2-2*x;
Q2=x^3-3*x;

U(x)=Q0+c1*Q1+c2*Q2 ;

D1=diff(U(x)) ;
D2=diff(U(x),2);

P=-D2-U(x)+x^2;

F1=wo*P;
F12=int(F1,1,0)

F2=w1*P;
F23=int(F2,1,0)

[c1 c2]=solve(F12,F23)
U=Q0+c1*Q1+c2*Q2

X=[0:0.001:1];
x=X;
U=eval(U)
y=(2*cos(X-1)-sin(X))/(cos(1))+(X.^2)-2;

Error=(y-U)/y

plot(X,Error,'--or',X,y,'g');
grid on;

%Metodo_diferencial

clc;
clear;

n=7
h=1/(n-1);
M(1,1)=h;
M(1,1)=1;
for j=2:n
M(1,j)=0;
end
escalera=0;
bandera=0;
for i=2:n-1
escalera=escalera+1;
for j=escalera:n
if bandera==0
bandera=1;
M(i,j)=-1;
elseif bandera==1
bandera=2;
M(i,j)=2-h^2;
elseif bandera==2
bandera=3;
M(i,j)=-1;
elseif bandera==3
M(i,j)=0;
end
end
bandera=0;
end
for j=1:n
if j<n-2
M(n,j)=0;
elseif j==n-1
M(n,j)=-1;
elseif j==n
M(n,j)=1
end
end

x=0;
deltax=1/(n-1);
for k=1:n
if k<=n-1
B(k,1)=-h^2*x^2;
x=x+deltax;
elseif k==n
B(k,1)=2*h
end
end

%y=((cos(p-1)-sin(p))/(cos(1)))+x^2-2;

C=linsolve(M,B)

plot(C)

Anda mungkin juga menyukai