Вы находитесь на странице: 1из 8

CODIGOS EN MATLAB USADOS PARA LA SOLUCION DE PROBLEMA

%PROBLEMA 3.8
%Determinar la funcion de prueba para los tres
% terminos para la formulacion pesada.
syms x c0 c1 c2 c3 c4 c5 c6
y=c0+c1*x+c2*x^2+c3*x^3+c4*x^4+c5*x^5+c6*x^6;
c0 = 1;
c1 = -1 - c2 - c3 - c4 - c5 - c6;
c2 = 1/2;
c3 =-1/3 - 2*c4 - 10/3*c5 - 5*c6;
%renombrando c1
c1 = - 7/6 + c4 + (7*c5)/3 + 4*c6
%entonces el nuevo set de ecuaciones seria
c0 = 1;
c1 = - 7/6 + c4 + (7*c5)/3 + 4*c6
c2 = 1/2;
c3 =-1/3 - 2*c4 - 10/3*c5 - 5*c6;
%reemplazando en la ecuacion y=c0+c1*x+c2*x^2+c3*x^3+c4*x^4+c5*x^5+c6*x^6;
%se obtiene la funcion de prueba
y=c6*x^6 + c5*x^5 + c4*x^4 + (- 2*c4 - (10*c5)/3 - 5*c6 - 1/3)*x^3 + x^2/2 + (c4 +
(7*c5)/3 + 4*c6 - 7/6)*x + 1
%reemplazandp c6=c3; c5=c2; c4=c1; en y se obtiene
y=c3*x^6 + c2*x^5 + c1*x^4 + (- 2*c1 - (10*c2)/3 - 5*c3 - 1/3)*x^3 + x^2/2 + (c1 +
(7*c2)/3 + 4*c3 - 7/6)*x + 1
%tambien se puede reescribir de la siguiente manera
y=(- x^3/3 + x^2/2 - (7*x)/6 + 1) + (x^4 - 2*x^3 + x )*c1 + (x^5 - 10/3 *x^3
*c2 + (x^6 -5*x^3 + 4*x )*c3

+ 7/3 *x )

%aplicando galerkin
Fi_1= x^4 - 2*x^3 + x;
Fi_2= x^5 - 10/3 *x^3 + 7/3 *x ;
Fi_3= x^6 -5*x^3 + 4*x;
%Calculando la funcion residual R(x)=(x*y'')''+10*y''+9*y-cos(x)=0
R(x)=(x*diff(y,x,2),x,2)+10*diff(y,x,2)+9*y-cos(x)
R(x)=9*c3*(x^6 - 5*x^3 + 4*x) - cos(x) - (61*x)/2 + 9*c2*(x^5 - (10*x^3)/3 + (7*x)/3) 10*c1*(- 12*x^2 + 12*x) - 10*c2*(- 20*x^3 + 20*x) - 10*c3*(- 30*x^4 + 30*x) + 2*c2*(60*x^2
- 20) + 2*c3*(120*x^3 - 30) + 9*c1*(x^4 - 2*x^3 + x) + x*(360*c3*x^2 + 120*c2*x + 24*c1) +
(9*x^2)/2 - 3*x^3 + 2*c1*(24*x - 12) + 15
%Metodo de colocacion
%formulando el sistema de ecuaciones lineales para los punto (1/4, 1/2, 3/4)
1869124049571979/281474976710656 - (68695*c2)/1024 - (475767*c3)/4096 - (6783*c1)/256=0
%R(1/4)
- (243*c1)/16 - (1535*c2)/32 - (6639*c3)/64 - 212560085628885/562949953421312=0
%R(1/2)
(2433*c1)/256 + (35435*c2)/1024 + (297633*c3)/4096 - 66122425008726303/9007199254740992=0
%R(3/4)
%ordenando adecuadamente el sistema de ecuaciones
6783/256*c1 + 68695/1024*c2 + 475767/4096*c3 = 1869124049571979/281474976710656

243/16*c1 + 1535/32*c2 + 6639/64*c3 = - 212560085628885/562949953421312


2433/256*c1 + 35435/1024*c2 + 97633/4096*c3 = 66122425008726303/9007199254740992
%solucionando el sistema de ecuaciones
c1= 0.4689
c2= 0.1954
c3=-0.1626
%reemplazando en ' y=(- x^3/3 + x^2/2 - (7*x)/6 + 1) + (x^4 - 2*x^3 + x )*c1 + (x^5 - 10/3
*x^3 + 7/3 *x )*c2 + (x^6 -5*x^3 + 4*x )*c3 '
x=0:0.001:1;
Y(x) = -0.1626*x^6 + 0.1954*x^5 + 0.4689*x^4 - 1.1095*x^3 + 0.5000*x^2 - 0.8922*x +
1.0000
plot(x,y(x),'r'); hold on

%Metodo de subdominio
%formulando el sistema de ecuaciones lineales para integrar por tramos (0 - 1/3
2/3 - 1)
int(R(x),0,1/3);
int(R(x),1/3,2/3);
int(R(x),2/3,1);

1/3 - 2/3

%el sistema de ecuaciones ser


(131/15*c1) + (9617/486*c2) + (222533/6804*c3) = 181/54 - sin(1/3)
- (71)/15*c1- (779/54*c2)- (208043/6804*c3)=-sin(1/3)+sin(2/3)-1/6
(109/15*c1)+ (13955/486*c2)(485251/6804*c3)=163/54-sin(2/3)+sin(1)
%solucionando el sistema de ecuaciones
c1= 18.5936
c2=-14.9371
c3= 4.1649
%reemplazando en ' y=(- x^3/3 + x^2/2 - (7*x)/6 + 1) + (x^4 - 2*x^3 + x )*c1 + (x^5 - 10/3
*x^3 + 7/3 *x )*c2 + (x^6 -5*x^3 + 4*x )*c3 '
x=0:0.001:1;
y=4.1649*x.^6 -14.9371*x^5 +18.5936*x^4
-8.5547*x.^3
+0.5000*x.^2
-0.7667*x
+1.0000;

plot(x,y,'b'); hold on

%Metodo de least square


int(R(x)*diff(R(x),c1),0,1)=0
int(R(x)*diff(R(x),c1),0,1)=0
int(R(x)*diff(R(x),c1),0,1)=0
%el sistema de ecuaciones sera
(37503)/70*c1 + (46607)/28*c2 + (2817369)/770*c3 =75*cos(1) + 24*sin(1) + 1063/10=0
(46607)/28*c1 + (1280660)/231*c2 + (713933)/56*c3 =376*cos(1)-00*sin(1) + 1090573/1680=0
(2817369)/770*c1 + (713933)/56*c2 + (30220616)/1001*c3 = - 2475*cos(1) - 2700*sin(1) +
2655703/560=0
%solucionando el sistema de ecuaciones
c1=0.5841;
c2=-0.2029;
c3= 0.0524;
%reemplazando en ' y=(- x^3/3 + x^2/2 - (7*x)/6 + 1) + (x^4 - 2*x^3 + x )*c1 + (x^5 10/3 *x^3 + 7/3 *x )*c2 + (x^6 -5*x^3 + 4*x )*c3 '
x=0:0.001:1;
y=0.0524x.^6-0.2029*x.^5+0.5841x.^4-1.0872*x.^3+0.5000*x.^2-0.8464*x+1.0000;
plot(x,y,'g');hold on

%Metodo de Galerkin
fi_1=x^4-2*x^3+x;
fi_2=x^5-10/3*x^3+7/3*x;
fi_3=x^6-5*x^3+4*x;
int(R(x)*fi_1,0,1);
int(R(x)*fi_2,0,1);
int(R(x)*fi_3,0,1);
%el sistema de ecuaciones sera
13*cos(1) - (19*c2)/4 - (18757*c3)/2310 - (141*c1)/70 - 24*sin(1) + 131/10=0
718049/5040 - (850*c2)/77 - (149*c3)/8 - (232*cos(1))/3 - 120*sin(1) - (19*c1)/4
360*sin(1) - (149*c2)/8 - (4438*c3)/143 - 625*cos(1) - (18757*c1)/2310 + 57299/1680
%solucionando el sistema de ecuaciones
c1=-9.6903;
c2= 7.8726;
c3=-2.2103;
%reemplazando en ' y=(- x^3/3 + x^2/2 - (7*x)/6 + 1) + (x^4 - 2*x^3 + x )*c1 + (x^5 - 10/3
*x^3 + 7/3 *x )*c2 + (x^6 -5*x^3 + 4*x )*c3 '
syms x
x=0:0.001:1;
y=-2.2103*x.^6 + 7.8726*x.^5 -9.6903*x.^4 +3.8568*x.^3 +0.5000*x.^2 -1.3288*x +1.0000;
plot(x,y,'m'); hold on

%Solucion exacta.

x=0:0.001:1;
> A=[1.0416430796610492
0.9980405471098316
0.9960922970751589
0.9941552085326862
0.9922292215914352
.
.
.
0.004724838731042608
0.0031508987686179224
0.001575949509286207
-3.7680642176381386e-26]';
plot(x,A,'k'); hold on

%PROBLEMA 3.12
%1. Determinando la funcin de prueba para tres trminos algebraicos.
y_R3=(-x+1)+(-x+x^2)*c1+(-x+x^3)*c2+(-x+x^4)*c3;
%2. Use un termino para la funcion de prueba de galerkin y use un termino
%para la funcion de prueba de Ritz para aproximar la eccuacion diferencial,
%dibuje para un termino en contra de la solucion exacta identifique cada
%metodo exactamente.
%solucion aproximada para Galerkin de 1 termino
y_G1=(- x^3/3 + x^2/2 - (7*x)/6 + 1) + (x^4 - 2*x^3 + x )*c1
K= int((x*diff(Fi_1,x,4)+10*diff(Fi_1,x,2)+9*Fi_1)*Fi_1,0,1);
p=int(-x*diff(Fi_0,x,4)*Fi_1-10*diff(Fi_0,x,2)*Fi_1-9*Fi_0*Fi_1,0,1)
int(Fi_1*cos(x),0,1);
c1=p/k;

%solucion aproximada para Ritz de 1 termino


y_RT1=(-x+1)+(-x+x^2)*c1;
K=int(x*diff(Fi_1,x,2)*diff(Fi_1,x,2)+10*diff(Fi_1,x,1)*diff(Fi_1,x,1)-9*Fi_1*Fi_1,0,1);
C=c1;
p=-int(x*diff(Fi_1,x,2)*diff(Fi_0,x,2)+10*diff(Fi_1,x,1)*diff(Fi_0,x,1)9*Fi_0*Fi_1+Fi_1*cos(x),0,1)-subs(diff(Fi_1,x,1),x,1);
c1=K/p;
%solucion aproximada para Galerkin de 2 terminos
y_G2=(- x^3/3 + x^2/2 - (7*x)/6 + 1) + (x^4 - 2*x^3 + x )*c1 + (x^5 - 10/3 *x^3
*x )*c2
K=[int((x*diff(Fi_1,x,4)+10*diff(Fi_1,x,2)+9*Fi_1)*Fi_1,0,1)
int((x*diff(Fi_2,x,4)+10*diff(Fi_2,x,2)+9*Fi_2)*Fi_1,0,1);

+ 7/3

int((x*diff(Fi_1,x,4)+10*diff(Fi_1,x,2)+9*Fi_1)*Fi_2,0,1)
int((x*diff(Fi_2,x,4)+10*diff(Fi_2,x,2)+9*Fi_2)*Fi_2,0,1)]
C=[c1; c2]
p=[int((-x*diff(Fi_0,x,4)-10*diff(Fi_0,x,2)-9*Fi_0+cos(x))*Fi_1,0,1); int((x*diff(Fi_0,x,4)-10*diff(Fi_0,x,2)-9*Fi_0+cos(x))*Fi_2,0,1)];
%solucion aproximada para Ritz de 2 termino
y_RT=(-x+1)+(-x+x^2)*c1+(-x+x^3)*c2;
K=[int(x*diff(Fi_1,x,2)^2+10*diff(Fi_1,x,1)^2-9*Fi_1^2,0,1)
int(x*diff(Fi_1,x,2)*diff(Fi_2,x,2)+10*diff(Fi_1,x,1)*diff(Fi_2,x,1)-9*Fi_2*Fi_1,0,1);
int(x*diff(Fi_2,x,2)*diff(Fi_1,x,2)+10*diff(Fi_2,x,1)*diff(Fi_1,x,1)-9*Fi_2*Fi_1,0,1)
int(x*diff(Fi_2,x,2)*diff(Fi_2,x,2)+10*diff(Fi_2,x,1)*diff(Fi_2,x,1)-9*Fi_2*Fi_2,0,1)];
C=[c1;c2];
p=[-int(x*diff(Fi_1,x,2)*diff(Fi_0,x,2)+10*diff(Fi_1,x,1)*diff(Fi_0,x,1)9*Fi_0*Fi_1+Fi_1*cos(x),0,1)-subs(diff(Fi_1,x,1),x,1);
-int(x*diff(Fi_2,x,2)*diff(Fi_0,x,2)+10*diff(Fi_2,x,1)*diff(Fi_0,x,1)9*Fi_2*Fi_0+Fi_2*cos(x),0,1)-subs(diff(Fi_2,x,1),x,1)]

%solucion aproximada para Galerkin de 3 terminos


y_G3=(- x^3/3 + x^2/2 - (7*x)/6 + 1) + (x^4 - 2*x^3 + x )*c1 + (x^5 - 10/3 *x^3 + 7/3
*x )*c2 + (x^6 -5*x^3 + 4*x )*c3
K=[int((x*diff(Fi_1,x,4)+10*diff(Fi_1,x,2)+9*Fi_1)*Fi_1,0,1)
int((x*diff(Fi_2,x,4)+10*diff(Fi_2,x,2)+9*Fi_2)*Fi_1,0,1)
int((x*diff(Fi_3,x,4)+10*diff(Fi_3,x,2)+9*Fi_3)*Fi_1,0,1);
int((x*diff(Fi_1,x,4)+10*diff(Fi_1,x,2)+9*Fi_1)*Fi_2,0,1)
int((x*diff(Fi_2,x,4)+10*diff(Fi_2,x,2)+9*Fi_2)*Fi_2,0,1)
int((x*diff(Fi_3,x,4)+10*diff(Fi_3,x,2)+9*Fi_3)*Fi_2,0,1);
int((x*diff(Fi_1,x,4)+10*diff(Fi_1,x,2)+9*Fi_1)*Fi_3,0,1)
int((x*diff(Fi_2,x,4)+10*diff(Fi_2,x,2)+9*Fi_2)*Fi_3,0,1)
int((x*diff(Fi_3,x,4)+10*diff(Fi_3,x,2)+9*Fi_3)*Fi_3,0,1)]
C=[c1; c2; c3]
p=[int((-x*diff(Fi_0,x,4)-10*diff(Fi_0,x,2)-9*Fi_0+cos(x))*Fi_1,0,1); int((x*diff(Fi_0,x,4)-10*diff(Fi_0,x,2)-9*Fi_0+cos(x))*Fi_2,0,1); int((-x*diff(Fi_0,x,4)10*diff(Fi_0,x,2)-9*Fi_0+cos(x))*Fi_3,0,1)]
%solucion aproximada para Ritz de 3 termino
y_RT=(-x+1)+(-x+x^2)*c1+(-x+x^3)*c2+(-x+x^4)*c3;
K=[int(x*diff(Fi_1,x,2)^2+10*diff(Fi_1,x,1)^2-9*Fi_1^2,0,1)
int(x*diff(Fi_1,x,2)*diff(Fi_2,x,2)+10*diff(Fi_1,x,1)*diff(Fi_2,x,1)-9*Fi_2*Fi_1,0,1)
int(x*diff(Fi_1,x,2)*diff(Fi_3,x,2)+10*diff(Fi_1,x,1)*diff(Fi_3,x,1)-9*Fi_1*Fi_3,0,1);
int(x*diff(Fi_2,x,2)*diff(Fi_1,x,2)+10*diff(Fi_2,x,1)*diff(Fi_1,x,1)-9*Fi_2*Fi_1,0,1)
int(x*diff(Fi_2,x,2)*diff(Fi_2,x,2)+10*diff(Fi_2,x,1)*diff(Fi_2,x,1)-9*Fi_2*Fi_3,0,1)
int(x*diff(Fi_2,x,2)*diff(Fi_3,x,2)+10*diff(Fi_2,x,1)*diff(Fi_3,x,1)-9*Fi_2*Fi_3,0,1);
int(x*diff(Fi_3,x,2)*diff(Fi_1,x,2)+10*diff(Fi_3,x,1)*diff(Fi_1,x,1)-9*Fi_3*Fi_2,0,1)
int(x*diff(Fi_3,x,2)*diff(Fi_3,x,2)+10*diff(Fi_2,x,1)*diff(Fi_2,x,1)-9*Fi_3*Fi_2,0,1)
int(x*diff(Fi_3,x,2)*diff(Fi_3,x,2)+10*diff(Fi_3,x,1)*diff(Fi_3,x,1)-9*Fi_3*Fi_3,0,1)];
C=[c1; c2; c3];
P=[ p=[-int(x*diff(Fi_1,x,2)*diff(Fi_0,x,2)+10*diff(Fi_1,x,1)*diff(Fi_0,x,1)9*Fi_0*Fi_1+Fi_1*cos(x),0,1)-subs(diff(Fi_1,x,1),x,1);
-int(x*diff(Fi_2,x,2)*diff(Fi_0,x,2)+10*diff(Fi_2,x,1)*diff(Fi_0,x,1)9*Fi_2*Fi_0+Fi_2*cos(x),0,1)-subs(diff(Fi_2,x,1),x,1);
-int(x*diff(Fi_3,x,2)*diff(Fi_0,x,2)+10*diff(Fi_3,x,1)*diff(Fi_0,x,1)9*Fi_3*Fi_0+Fi_3*cos(x),0,1)-subs(diff(Fi_3,x,1),x,1)];

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%
%Problema 3.16
%sea la funcion suavisada y(x)=int[xv''y''+10v'y'-9yv]dx+int(cos(x)vdx +v'(1))]
%se obtiene la funcion cuadratica
%I(y)=0.5*int(xy''^2+10*y'^2-9*y^2+2*y*cos(x))dx+y'(1) donde y'', y', y son expresadas en
funcion de
%Fi_0, Fi_1, Fi_2, Fi_3, Fi_4 finalmente se obtiene
Fi_0=(-x+1);
Fi_1=(-x+x^2);
Fi_2=(-x+x^3);
Fi_3=(-x+x^4);
%para 1 terminos
y_RT=(-x+1)+(-x+x^2)*c1+(-x+x^3)*c2;
I(y)=0.5*inv(x*(diff(Fi_0,x,2)+c1*diff(Fi_1,x,2))^2+10*(diff(Fi_0,x,1)+c1*diff(Fi_1,x,1))^
2-9*(Fi_0+c1*Fi_1)^2+2*cos(x)*(Fi_0+c1*Fi_1),0,1)+
subs(diff(Fi_0,x,1),x,1)+c1*subs(diff(Fi_1,x,1),x,1);
diff(I(y),c1,1)
%para 2 terminos
y_RT=(-x+1)+(-x+x^2)*c1+(-x+x^3)*c2+(-x+x^4)*c3
I(y)=0.5*inv(x*(diff(Fi_0,x,2)+c1*diff(Fi_1,x,2)+c2*diff(Fi_2,x,2))^2+10*(diff(Fi_0,x,1)+c
1*diff(Fi_1,x,1)+c2*diff(Fi_2,x,1))^29*(Fi_0+c1*Fi_1+c2*Fi_2)^2+2*cos(x)*(Fi_0+c1*Fi_1+c2*Fi_2),0,1)+
subs(diff(Fi_0,x,1),x,1)+c1*subs(diff(Fi_1,x,1),x,1)+c2*subs(diff(Fi_2,x,1),x,1);
diff(I(y),c2,1)
%para 3 terminos
y_RT=(-x+1)+(-x+x^2)*c1+(-x+x^3)*c2+(-x+x^4)*c3+(-x+x^5)*c4;
I(y)=0.5*inv(x*(diff(Fi_0,x,2)+c1*diff(Fi_1,x,2)+c2*diff(Fi_2,x,2)+c3*diff(Fi_3,x,2))^2+10
*(diff(Fi_0,x,1)+c1*diff(Fi_1,x,1)+c2*diff(Fi_2,x,1)+c3*diff(Fi_3,x,1))^29*(Fi_0+c1*Fi_1+c2*Fi_2+c3*Fi_3)^2+2*cos(x)*(Fi_0+c1*Fi_1+c2*Fi_2+c3*Fi_3),0,1)+
subs(diff(Fi_0,x,1),x,1)+c1*subs(diff(Fi_1,x,1),x,1)+c2*subs(diff(Fi_2,x,1),x,1)+c3*subs(d
iff(Fi_3,x,1),x,1);
diff(I(y),c3,1)
%se procede a formar las matris K, y los vectores C y P; se obtiene los
%resultado de c1, c2 y c3, estos valores son reemplazados en la ecuacin

Вам также может понравиться