Professional Documents
Culture Documents
La deformacin de una lmina rectangular y alargada que soporta una carga uniforme bajo una fuerza de tensin axial, se modela mediante una
ecuacin diferencial de segundo orden. Sea S la fuerza axial, q la intensidad de la carga uniforme, D la rigidez a flexin, l la longitud de la placa,
la deformacin w viene dada por la siguiente expresin:
en donde
O restart;
O Digits:=18;
Digits := 18
1.1) Comprobacin de que el problema posee solucin nica.
En primer lugar se comprueba si el problema de frontera, tambin denominado de contorno, posee solucin nica. Para ello han de verificarse las
siguientes condiciones:
> La funcin f y sus derivadas con respecto a w(x) y w'(x) son continuas;
> La derivada parcial de f con respecto a w(x) es positiva;
> La derivada parcial de f con respecto a w'(x) est acotada.
Se reescribe la ecuacin diferencial como una funcin f(x,w,w').
O f:=(x,w,wprima)->S/Dl*w-q*l*x/(2*Dl)+q*x^2/(2*Dl);
(1
f := x, w, wprima /
Sw
1 qlx
1 qx
K
C
Dl
2 Dl
2 Dl
(2
La derivada de f respecto de w(x), donde se comprueba que es continua y positiva, en tanto que S y Dl son constantes positivas.
O diff(f(x,w,wprima),w);
S
Dl
La derivada de f respecto de w'(x), donde se comprueba que es continua y se encuentra acotada.
O diff(f(x,w,wprima),wprima);
0
(3
(4
(5
(6
1
500000000000
1
K
10000000000
284090909090909090 x
1
10000000000
284090909090909090
K1 Ce
284090909090909090
Ke
1
10000000000
(7
284090909090909090
1
K
500000000000
50000000000000000000000 e
C
28409090909090909
1
10000000000
284090909090909090 x
K1 Ce
284090909090909090
Ke
1
10000000000
1
10000000000
284090909090909090
284090909090909090
50000000000000000000000
2
C50 x Kx
28409090909090909
O SOL:=evalf(rhs(EDsol));
5 0.00106600358177805217 x
5 K0.00106600358177805217 x
SOL := 8.56553471726022908 10 e
C9.03446528273977102 10 e
K
(8
(9
(10
1.3) Resolucin del problema de contorno mediante el Mtodo de las Diferencias Finitas.
En primer lugar se define la funcin f(x,w,w')=w''(x)=m(x)w'(x)+n(x)w(x)+r(x), a travs de las funciones m(x), n(x) y r(x).
O m:=x->0;
n:=x->evalf(S/Dl);
r:=x->evalf(-q*l*x/(2*Dl)+q*x^2/(2*Dl));
m := x/0
S
n := x/evalf
Dl
2
r := x/evalf K
1 qlx
1 qx
C
2 Dl
2 Dl
(11
(12
E := 0
F := 0
Se divide el intervalo en 50 partes, de forma que queda definido el paso (h). Se utiliza N=49 pues el valor de la funcin es conocido en el extremo.
O h:=1;
N:=floor((b-a)/h)-1;
h := 1
N := 49
Se carga el paquete linalg, que permite utilizar sentencias de Maple para resolver sistemas tridiagonales.
O with(linalg);
BlockDiagonal, GramSchmidt, JordanBlock, LUdecomp, QRdecomp, Wronskian, addcol, addrow, adj, adjoint, angle, augment,
backsub, band, basis, bezout, blockmatrix, charmat, charpoly, cholesky, col, coldim, colspace, colspan, companion, concat, cond,
copyinto, crossprod, curl, definite, delcols, delrows, det, diag, diverge, dotprod, eigenvals, eigenvalues, eigenvectors, eigenvects,
entermatrix, equal, exponential, extend, ffgausselim, fibonacci, forwardsub, frobenius, gausselim, gaussjord, geneqns, genmatrix,
grad, hadamard, hermite, hessian, hilbert, htranspose, ihermite, indexfunc, innerprod, intbasis, inverse, ismith, issimilar, iszero,
jacobian, jordan, kernel, laplacian, leastsqrs, linsolve, matadd, matrix, minor, minpoly, mulcol, mulrow, multiply, norm,
normalize, nullspace, orthog, permanent, pivot, potential, randmatrix, randvector, rank, ratform, row, rowdim, rowspace,
rowspan, rref, scalarmul, singularvals, smith, stackmatrix, submatrix, subvector, sumbasis, swapcol, swaprow, sylvester, toeplitz,
trace, transpose, vandermonde, vecpotent, vectdim, vector, wronskian
Se define una matriz M con todos sus valores nulos, y sobre la cual se rellenar el sistema tridiagonal.
O M:=matrix(N,N+1,0);
M := 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ,
(13
(14
(15
(16
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
Se define un vector de coordendas x sobre el cual se van rellenado los distintos valores de la variable independiente.
O for i from 1 to N do
x[i]:=a+i*h;
od:
Se generan los valores no nulos de la primera fila del sistema tridiagonal, donde M[N,N+1] es el correspondiente al trmino independiente.
O M[1,1]:=2+h^2*n(x[1]);
M1, 1 := 2.00000113636363636
,
,
,
,
,
,
,
,
(17
O M[1,2]:=-1+(h/2)*m(x[1]);
M1, 2 := K1
(18
O M[1,N+1]:=-h^2*r(x[1])+(1+(h/2)*m(x[1]))*alpha;
M1, 50 := 0.0000556818181818181816
(19
(20
O M[N,N]:=2+(h^2)*n(x[N]);
M49, 49 := 2.00000113636363636
(21
O M[N,N+1]:=-(h^2)*r(x[i])+(1-(h/2)*m(x[N]))*beta;
M49, 50 := 0.00005568181818181818
(22
Se resuelve el sistema de ecuaciones mediante el Mtodo de Gauss, utilizando para ello la setencia gausselim, recogindose los resultados en un vector
U.
O R:=gausselim(M):
O U:=backsub(R);
U := 0.0118290245124076515, 0.0236023806487067944, 0.0352666726968021290, 0.0467707775479346188,
(23
0.0580658446385870494, 0.0691052958949720236, 0.0798448256801023325, 0.0902424007434436412,
0.100258260173149431, 0.109854915350878144, 0.118997149909192483, 0.127652019691540809, 0.135788852714820602,
0.143379249134523934, 0.150397081212464919, 0.156818493287089099, 0.162621901746364742, 0.167787995003256004,
0.172299733473777952, 0.176142349557633392, 0.179303347621431510, 0.181772503984488288, 0.183541866907208684,
0.184605756582050565, 0.184960765127070379, 0.184605756582050565, 0.183541866907208684, 0.181772503984488288,
0.179303347621431510, 0.176142349557633391, 0.172299733473777951, 0.167787995003256004, 0.162621901746364742,
0.156818493287089101, 0.150397081212464921, 0.143379249134523937, 0.135788852714820604, 0.127652019691540811,
0.118997149909192484, 0.109854915350878145, 0.100258260173149431, 0.0902424007434436418,
0.0798448256801023330, 0.0691052958949720241, 0.0580658446385870498, 0.0467707775479346193,
0.0352666726968021294, 0.0236023806487067948, 0.0118290245124076517
1.4) Resolucin del problema de contorno mediante el Mtodo del Disparo Lineal.
Se utiliza en este caso el Mtodo del Disparo Lineal, el cual consiste, como ya es sabido, en sustituit el problema de contorno por dos problemas de valor
inicial que poseen solucin nica.
O G1:=(t,U1,U2)->evalf(U2);
G2:=(t,U1,U2)->evalf(S/Dl*U1-q*l/(2*Dl)*t+q/(2*Dl)*t^2);
G1 := t, U1, U2 /evalf U2
2
G2 := t, U1, U2 /evalf
1 qlt
S U1
1 qt
K
C
Dl
2 Dl
2 Dl
(24
G2, 0 := 0
(25
(26
(27
K2[2,1]:=h*H1(t+(h/2),H[1,i-1]+(1/2)*K2[1,1],H[2,i-1]+(1/2)*K2[1,2]);
K2[2,2]:=h*H2(t+(h/2),H[1,i-1]+(1/2)*K2[1,1],H[2,i-1]+(1/2)*K2[1,2]);
K2[3,1]:=h*H1(t+(h/2),H[1,i-1]+(1/2)*K2[2,1],H[2,i-1]+(1/2)*K2[2,2]);
K2[3,2]:=h*H2(t+(h/2),H[1,i-1]+(1/2)*K2[2,1],H[2,i-1]+(1/2)*K2[2,2]);
K2[4,1]:=h*H1(t+h,H[1,i-1]+K2[3,1],H[2,i-1]+K2[3,2]);
K2[4,2]:=h*H2(t+h,H[1,i-1]+K2[3,1],H[2,i-1]+K2[3,2]);
H[1,i]:=H[1,i-1]+(1/6)*(K2[1,1]+2*K2[2,1]+2*K2[3,1]+K2[4,1]);
H[2,i]:=H[2,i-1]+(1/6)*(K2[1,2]+2*K2[2,2]+2*K2[3,2]+K2[4,2])
od:
Las soluciones del primer problema de valor inicial:
O for i from 0 to N+1 do;
W2[i]:=H[1,i];
od:
1.4.3) Solucin final de la ecuacin diferencial de 2 orden con condiciones de contorno.
Se aplica la frmula que combina las soluciones de las dos ecuaciones diferenciales de primer orden con condiciones iniciales resueltas anteriormente.
O for i from 0 to N+1 do
W[i]:=W1[i]+(beta-W1[N+1])*W2[i]/W2[N+1];
od:
1.5) Comprobacin de la validez de los resultados obtenidos mediante los mtodos numricos.
Se define una matriz B en la cual se recogen los resultados obtenidos con el mtodo numrico y los que resultan de la solucin excata de la ecuacin
diferencial.
O B:=array(1..N+1,1..6):
A continuacin se muestran los resultados y el error cometido en cada aproximacin.
O B[1,1]:='x[i]':
B[1,2]:='Sol._exacta':
B[1,3]:='Sol._Diferencias_Finitas':
B[1,4]:='Error_Diferencias_Finitas':
B[1,5]:='Sol._Disparo_Lineal':
B[1,6]:='Error_Disparo_Lineal':
O for i from 2 to N+1 do
c:=evalf(a+(i-1)*h);
B[i,1]:=c;
B[i,2]:=evalf(subs(x=c,SOL));
B[i,3]:=U[i-1];
B[i,4]:=abs(B[i,3]-B[i,2]);
B[i,5]:=W[i-1];
B[i,6]:=abs(B[i,5]-B[i,2]);
od:
O print(B);
xi
Sol._exacta
Sol._Diferencias_Finitas Error_Diferencias_Finitas
Sol._Disparo_Lineal
Error_Disparo_Lineal
-12
1.1393291 10
4.414048 10
3.0509417 10
3.1761811 10
7.1663360 10
2.4136209 10
3.5407958 10
2.0538390 10
9. 0.10022333597 0.100258260173149431
0.000034924203149431
0.100223335978576875
8.576875 10
0.000037857980878144
0.109817057367669307
2.330693 10
0.000040602469192483
0.118956547445225104
5.225104 10
0.000043157641540809
0.127608862048454188
1.545812 10-12
0.000045523524820602
0.135743329188445884
1.554116 10
0.000047700124523934
0.143331549015314377
5.314377 10
0.000049687422464919
0.150347393785926166
4.073834 10
0.000051485457089099
0.156767007834209430
4.209430 10-12
0.000053094206364742
0.162568807544045323
4.045323 10
0.000054513673256004
0.167733481324741129
5.258871 10
0.000055743883777952
0.172243989589085275
9.14725 10
0.000056784827633392
0.176085564733984162
3.984162 10
0.000057636501431510
0.179245711123680791
3.680791 10
-13
-12
-12
-12
-12
-12
-12
-12
-12
-12
-12
-12
-12
-12
-12
-13
-12
-12