Post on 19-Feb-2018
7/23/2019 Funciones en Matlab 2
1/21
function [Ra] =RaicesBesselMatriz(N,M,epsi)
Ra=zeros(N,M);
for n=1:N
[R]=RaicesBessel(n,M,epsi);
Ra(n,:)=[R];
end
end
DETERMINAR O ON!TR"IR #A! $"NIONE! DE BE!!E#
function [%] = felipe( f,p,N,# )
%Desarrolla la funcion f(x) en serie de ourier Bessel a !ra"#s de p,
%ci$ B suandos& 'a funcin es! dada en *,'&
x=[*:*&1:(+&pi&N-+*)];
.=/(x) $essel0(p,x);
.1=.(x); =1;
M=len!.(x);
for n=1:M21
if (.1(n)&.1(n-1)3*) 4()=[x(n)]; B()=[x(n-1)];
=-1;
end
end
R=len!.(4);
for n=1:R
iz=[4(n)]; de=[B(n)];
5.ile (de2iz)6*&******1
ed=(iz-de)&7+;
if .(iz)&.(ed)3* de=ed;
else
iz=ed;
end
end
raiz(n)=ed;
end
for n=1:N
f1=/(x) x&f(x)&$essel0(p,raiz(n)&x&7');
c(n)=in!eral(f1,*,'); c(n)=+&c(n)&7(('&$essel0(p-1,raiz(n)))&8+);
end
9=/(x) *&x;
for n=1:N
9=/(x) 9(x)-c(n)&$essel0(p,raiz(n)&x&7');
nd
O&IONA# =[*: *&*1:'];
1=f(x); %f1=f(u)
91=9(u);
iure, plo! (u,91,
7/23/2019 Funciones en Matlab 2
2/21
ARA A#"#AR #O! M !"MANDO! ORDEN &
function [u] = !erie$ourierBessel(f,p,M,epsi)
[R]=BesselRaices(p,M,epsi);
for =1:M
f1=/(x) x&f(x)&$essel0(p,R()&x);
>()=in!eral(f1,*,1);
>()=>()&+&7($essel0(p-1,R())&8+);end
u=/(x) *&x;
for =1:M
u=/(x) u(x)->()&$essel0(p,R()&x);
end
x=[*:*&*1:1];
fun1=f(x); u1=u(x);
?ure(),plo!(x,fun1,@r@),.old on,rid on, plo!(x,u1,@$@)
end
f='() *./01 M=*- epsi=+/+++++* p=-
&ARA ENONTRAR #O! N"MERO"! M RAIE! N N"MERO DE RAIE! 2 &
E# 3RADO DE BE!!E#
function [R]=BesselRaices(p,M,epsi)
x=[*:*&1:(pi&M)&+];
'=len!.(x); r=*;
for l=1:'21
if $essel0(p,x(l))&$essel0(p,x(l-1))3*
r=r-1;
4(r)=[x(l)]; B(r)=[x(l-1)]; end
end
for =1:M
iz=4(); de=B();
5.ile(de2iz)6epsi;
ed=(de-iz)&7+;
if $essel0(p,iz)&$essel0(p,ed)3*
de=ed;
else
iz=ed; end
end
R()=ed;
end
end
p=pi N=*- epsi==+/+++++*
[R]=BesselRaices(p,M,epsi)
function [%,R] =Bessel4uan(f,p,M,#,epsi)
[R]=BesselRaices(p,M,epsi);for n=1:M
f1=/(x) x&f(x)&$essel0(p,R(n)&(x&7'));
>(n)=in!eral(f1,*,');
7/23/2019 Funciones en Matlab 2
3/21
d='&$essel0(p-1,R(n));
d=d&8+;
d=d&7+;
>(n)=>(n)&7d;
end
9=/(x) *&x;
for n=1:M
9=/(x) 9(x)->(n)&$essel0(p,R(n)&(x&7'));end
u=[*:*&1:'];
91=9(u);
f1=f(u);
?ure(),plo!(u,91,@r@),.old on,rid on,plo!(u,f1,@$@);
end
$='(5) ep(sin(cos())) #=*- M=*- p=- epsi=+/++++*
[%,R] =Bessel4uan(f,p,M,#,epsi)
function [u] =On6a7o8o9enea(f,9,a,#,N)for n=1:N
f1=/(x) f(x)&sin(n&pi&x&7');
4(n)=in!eral(f1,*,')&+&7';
1=/(x) (x)&sin(n&pi&x&7');
B(n)=+&in!eral(1,*,')&7(n&pi&a);
end
u=/(x,!) *&x-*&!;
for n=1:N
u=/(x,!) u(x,!)-(4(n)&cos(a&n&pi&!&7')
-B(n)&sin(a&n&pi&!&7'))&sin(n&pi&x&7');end
x=[*:*&1:']; !=[*:1:1***];
M=len!.(!);
for =1:M
u1=u(x,!());
plo!(x,u1,@r@,@'ine9id!.@,A), .old on, rid on, .old o,axis([* ' 21 1])
pause(*&1)
end
end
function [u,A+,A,] = $ourierBessel:6(f,#,N,M,epsi)
[R]=RaicesBessel(*,M,epsi);
[Ra]=RaicesBesselMa!riz(N,M,epsi);
4*=zeros(1,M); 4=zeros(N,M); >=zeros(N,M);for =1:M
f1=/(?,r) r&f(r,?)&$essel0(*,R()&r&7');
d=('&$essel0(1,R()))&8+;
7/23/2019 Funciones en Matlab 2
4/21
d=d&pi&7+;
4*()=in!eral+(f1,2pi,pi,*,');
4*()=4*()&7d;
end
for n=1:N
for =1:M
fcos=/(?,r) r&f(?,r)&$essel0(n,Ra(n,)&r&7')&cos(n&?);
fsin=/(?,r) r&f(?,r)&$essel0(n,Ra(n,)&r&7')&sin(n&?); 4(n,)=in!eral+(fcos,2pi,pi,*,');
>(n,)=in!eral+(fsin,2pi,pi,*,');
d=('&$essel0(n-1,Ra(n,)))&8+;
d=d&pi&7+;
4(n,)=4(n,)&7d; >(n,)=>(n,)&7d;
end
end
u=/(?,r) *&r-?&*;
for =1:M
u=/(?,r) u(?,r)-4*()&$essel0(*,R()&r&7');end
u=/(?,r) +&u(?,r);
for n=1:N
for =1:M
u=/(?,r) u(?,r)-4(n,)&$essel0(n,Ra(n,)&r&7')&cos(n&?);
u=/(?,r) u(?,r)->(n,)&$essel0(n,Ra(n,)&r&7')&sin(n&?);
end
end
C=[*:*&1:']; i=[*:*&1:+&pi];
[i,C]=es.rid(i,C);[i,C]=pol+car!(i,C);
u1=u(i,C);
?ure(),surf(i,C,u1),.old on,rid on
end
function [;] =]=ourierBessel+d(f,',N,M,epsi);
5=/(?,r,!) r&*-?&*-!&*;
for =1:M
5=/(?,r,!) 5(?,r,!)-4*()&cos(a&R()&!&7')&$essel0(*,R()&r&7');end
5=/(r,?,!) 5(r,?,!)&+;
for n=1:N
7/23/2019 Funciones en Matlab 2
5/21
for =1:M
5=/(?,r,!) 5(r,?,!)
-4(n,)&cos(a&Ra(n,)&!&7')&$essel0(n,Ra(n,)&r&7')&cos(?&n);
5=/(?,r,!) 5(r,?,!)
->(n,)&cos(a&Ra(n,)&!&7')&$essel0(n,Ra(n,)&r&7')&sin(?&n);
end
end
s=[*:*&1:']; i=[*:*&*1:+&pi];[i,s]=es.rid(i,s);
[i,s]=pol+car!(i,s);
!=[*:1:**]; E=len!.(!);
for n=1:E
51=5(i,s,!(n));
surf(i,s,51);.old on, rid on,axis([2+&pi,+&pi,2+&',+&',21,1]),"ie5(),;
pause(*&A)
.old o;
end
end
function [u]=Ta8orircular:(f,a,#,N,M,epsi)
[R]=RaicesBessel(*,M,epsi);
[Ra]=RaicesBesselMa!riz(N,M,epsi);
4*=zeros(1,M); B*=zeros(1,M); 4=zeros(N,M); B=zeros(N,M);
>=zeros(N,M); D=zeros(N,M);
for =1:M
f1=/(?,r) r&f(?,r)&$essel0(*,R()&r&7');
4*()=in!eral+(f1,2pi,pi,*,');
d=pi&('&$essel0(1,R()))&8+; 4*()=4*()&7d;
end
for n=1:N
for =1:M
f1=/(?,r) r&f(?,r)&$essel0(n,Ra(n,)&r&7')&cos(n&?);
f+=/(?,r) r&f(?,r)&$essel0(n,Ra(n,)&r&7')&sin(n&?);
4(n,)=in!eral+(f1,2pi,pi,*,');
>(n,)=in!eral+(f+,2pi,pi,*,');
d=pi&('&$essel0(n-1,Ra(n,)))&8+;
4(n,)=4(n,)&+&7d; >(n,)=>(n,)&+&7d; end
end
u=/(?,r,!) ?&*-r&*-!&*;
for =1:M
u=/(?,r,!) u(?,r,!)- (4*()&cos(a&R()&!&7')
-B*()&sin(a&R()&!&7'))&$essel0(*,R()&r&7');
end
for n=1:N
for =1:M
u=/(?,r,!) u(?,r,!)-(4(n,)&cos(a&Ra(n,)&!&7')-B(n,)&sin(a&Ra(n,)&!&7'))&$essel0(n,Ra(n,)&r&7')&cos(n&?);
u=/(?,r,!) u(?,r,!)-(>(n,)&cos(a&Ra(n,)&!&7')
-D(n,)&sin(a&Ra(n,)&!&7'))&$essel0(n,Ra(n,)&r&7')&sin(n&?);
7/23/2019 Funciones en Matlab 2
6/21
end
end
!=[*:1:+**]; ?=[*:*&1:(+&pi)]; r=[*:*&*A:'];
[?,r]=es.rid(?,r);
[?,r]=pol+car!(?,r);
C=len!.(!);
?ure(),.old on,rid on
for s=1:C u1=u(?,r,!(s));
surf(?,r,u1), "ie5(2F&A,*);axis([2pi pi 2' ' 2*& *&]);
pause(*&*1);
.old o
end
end
function [u] =Ta8or!in>(f,9,a,#,N,epsi)
[R]=RaicesBessel(*,N,epsi);
4=zeros(N,1); B=zeros(N,1);for n=1:N
f1=/(r) r&f(r)&$essel0(*,R(n)&r&7');
f+=/(r) r&(r)&$essel0(*,R(n)&r&7');
4(n)=in!eral(f1,*,');
B(n)=in!eral(f+,*,');
d=('&$essel0(1,R(n)))&8+;
d1=d&a&R(n);
4(n)=4(n)&+&7d;
B(n)=B(n)&+&'&7d1;
endu=/(?,r,!) r&*-*&!-*&?;
for n=1:N
u=/(?,r,!) u(?,r,!)-(4(n)&cos(a&R(n)&!&7')
-B(n)&sin(a&R(n)&!&7'))&$essel0(*,R(n)&r&7');
end
u=/(?,r,!)-u(?,r,!)-*&sin(?);
r=[*:*&*1:']; ?=[2pi:*&1:pi-1]; !=[*:1:1***];
[?,r]=es.rid(?,r);
[?,r]=pol+car!(?,r);
?ure();M=len!.(!);
for =1:M
u1=u(?,r,!());
surf(?,r,u1), .old on, rid on;axis([2pi pi 2' ' 2*& *&]),"ie5(2*,F&A);
pause(*&*1);
.old o;
end
end
function [u]=Ta8orircular(f,9,a,#,N,M,epsi)[R]=RaicesBessel(*,M,epsi);
[Ra]=RaicesBesselMa!riz(N,M,epsi);
4*=zeros(1,M); B*=zeros(1,M); 4=zeros(N,M); B=zeros(N,M);
7/23/2019 Funciones en Matlab 2
7/21
>=zeros(N,M); D=zeros(N,M);
for =1:M
f1=/(?,r) r&f(?,r)&$essel0(*,R()&r&7');
1=/(?,r) r&(?,r)&$essel0(*,R()&r&7');
4*()=in!eral+(f1,2pi,pi,*,');
B*()=in!eral+(1,2pi,pi,*,');
d=pi&('&$essel0(1,R()))&8+;
d1=d&a&R()&7'; 4*()=4*()&7d; B*()=B*()&7d1;
end
for n=1:N
for =1:M
f1=/(?,r) r&f(?,r)&$essel0(n,Ra(n,)&r&7')&cos(n&?);
f+=/(?,r) r&f(?,r)&$essel0(n,Ra(n,)&r&7')&sin(n&?);
1=/(?,r) r&(?,r)&$essel0(n,Ra(n,)&r&7')&cos(n&?);
+=/(?,r) r&(?,r)&$essel0(n,Ra(n,)&r&7')&sin(n&?);
4(n,)=in!eral+(f1,2pi,pi,*,');
>(n,)=in!eral+(f+,2pi,pi,*,'); B(n,)=in!eral+(1,2pi,pi,*,');
D(n,)=in!eral+(+,2pi,pi,*,');
d=pi&('&$essel0(n-1,Ra(n,)))&8+;
d1=d&a&Ra(n,);
4(n,)=4(n,)&+&7d; >(n,)=>(n,)&+&7d;
B(n,)=B(n,)&+&'&7d1; D(n,)=D(n,)&+&'&7d1;
end
end
u=/(?,r,!) ?&*-r&*-!&*;
for =1:M u=/(?,r,!) u(?,r,!)- (4*()&cos(a&R()&!&7')
-B*()&sin(a&R()&!&7'))&$essel0(*,R()&r&7');
end
for n=1:N
for =1:M
u=/(?,r,!) u(?,r,!)-(4(n,)&cos(a&Ra(n,)&!&7')
-B(n,)&sin(a&Ra(n,)&!&7'))&$essel0(n,Ra(n,)&r&7')&cos(n&?);
u=/(?,r,!) u(?,r,!)-(>(n,)&cos(a&Ra(n,)&!&7')
-D(n,)&sin(a&Ra(n,)&!&7'))&$essel0(n,Ra(n,)&r&7')&sin(n&?);
endend
!=[*:1:1***]; ?=[*:*&*1:(+&pi)]; r=[*:*&1:']; lf=len!.(?); lr=len!.(r);
G=lf&lr;
[?,r]=es.rid(?,r);
[?,r]=pol+car!(?,r);
C=len!.(!);
?ure(),.old on,rid on
for s=1:C
u1=u(?,r,!(s));
surf(?,r,u1), "ie5(*,H*);axis([2+&pi +&pi 2+&' +&' 2+ +]); pause(*&*1);
.old o;
end
7/23/2019 Funciones en Matlab 2
8/21
end
function [z] =#aplasian*D(,?,a,,@)
M=len!.(I);
=di(I,+);
z=zeros(M,1);
z(1)=[a];
z(M)=[$];d=ones(M2+,1);
d*=2+&d;
B=[d d* d];
$=[21 * 1];
>=spdias(B,$,M2+,M2+);
D=(.&8+)&di(I,+);
D(1)=[D(1)2z(1)];
D(M2+)=[D(M2+)2z(M)];
J=in"(>)D@;
for =+:M21 z()=[J(21)];
end
?ure(),plo!(x,I,@r@),.old on, rid on,plo!(x,z,@$@);
end
function [] = #aplasianMatriz(A,@)
[M,N]=size(4);
>=zeros(M2+,N2+);
for =+:M21
for n=+:N21
>(21,n21)=[4(-1,n)2K&4(,n)-4(21,n)-4(,n-1)-4(,n21)]&7(.&8+);
end
end
end
METODO DE DI$ERENIA! $INITA! &ARA DARNO! #A OORDENADA DE
#O!
7/23/2019 Funciones en Matlab 2
9/21
d=[dp;*]; dM=[*;dp];
d1=d; dM1=dM;
for =+:
d1=[d1;d];
dM1=[dM;dM1];
end
B=[d d1 do dM1 d];
$=[2K 21 * 1 K];>=spdias(B,$,1+,1+);
D=zeros(1+,1);
D(1)=[(.&8+)&1(+,+)2u(1,+)2u(+,1)];
D(+)=[(.&8+)&1(+,)2u(1,)];
D()=[(.&8+)&1(+,K)2u(1,K)];
D(K)=[(.&8+)&1(+,A)2u(1,A)2u(+,L)];
D(A)=[(.&8+)&1(,+)2u(,1)];
D(L)=[(.&8+)&1(,)];
D(F)=[(.&8+)&1(,K)];
D()=[(.&8+)&1(,A)2u(,L)];D(H)=[(.&8+)&1(K,+)2u(A,+)2u(K,1)];
D(1*)=[(.&8+)&1(K,)2u(A,)];
D(11)=[(.&8+)&1(K,K)2u(A,K)];
D(1+)=[(.&8+)&1(K,A)2u(A,A)2u(K,L)];
O=in"(>)&D;
end
function [u] =#aplace($,3,a,,c,6,@)
x=[a:.:$]; I=[c:.:d];M=len!.(I); N=len!.(x);
[x,I]=es.rid(x,I); 1=(x,I);
1=(x,I);
u=zeros(M,N);
u(1,:)=[1(1,:)]; u(M,:)=[1(M,:)];
u(:,1)=[1(:,1)]; u(:,N)=[1(:,N)];
s=(M2+)&(N2+);
d=ones(s,1);
d*=2K&d;
dp=ones(N2,1); d=[dp;*]; d1=d;d=ones(N2,1); dM=[*;d]; dM1=dM;
for =1:M2
d1=[d1;d];
dM1=[dM1;dM];
end
B=[d d1 d* dM1 d];
$=[2(N2+) 21 * 1 (N2+)];
>=spdias(B,$,s,s);
D=zeros(s,1);
r=1;D((N2+)&(r21)-1)=[(.&8+)&1(+,+)2u(+,1)2u(1,+)];
D((N2+)&(r21)-(N2+))=[(.&8+)&1(+,N21)2u(+,N)2u(1,N21)];
for n=+:N2
7/23/2019 Funciones en Matlab 2
10/21
D((N2+)&(r21)-n)=[(.&8+)&1(+,n-1)2u(1,n-1)];
end
r=(M2+);
D((N2+)&(r21)-1)=[(.&8+)&1(M21,+)2u(M21,1)2u(M,+)];
D((N2+)&(r21)-(N2+))=[(.&8+)&1(M21,N21)2u(M21,N)2u(M,N21)];
for n=+:N2
D((N2+)&(r21)-n)=[(.&8+)&1(M21,n-1)2u(M,n-1)];
endfor r=+:M2
D((N2+)&(r21)-1)=[(.&8+)&1(r-1,+)2u(r-1,1)];
D((N2+)&(r21)-(N2+))=[(.&8+)&1(r-1,N21)2u(r-1,N)];
for n=+:N2
D((N2+)&(r21)-n)=[(.&8+)&1(r-1,n-1)];
end
end
O=in"(>)D;
for r=1:M2+
for n=1:N2+ u(r-1,n-1)=[O((N2+)&(r21)-n)];
end
end
surf(x,I,u);
end
function [#A] =#aplasiano:D(A)
[M,N]=size(4);
'4=zeros(M2+,N2+);
for =+:M21 for n=+:N21
'4(21,n21)=[4(21,n)2K&4(,n)-4(-1,n)-4(,n21)-4(,n-1)];
end
end
end
function [u] = Euacion#aplaceMatriz(A,Bi,Bs,#i,#6)
[M,N]=size(4);
['4]='aplasiano+D(4);
1=zeros(M,N);1(+:M21,+:N21)=['4];
u=zeros(M,N); .=1;
u(1,:)=[Bi]; u(M,:)=[Bs]; u(:,1)=['i]; u(:,N)=['d];
s=(M2+)&(N2+);
d=ones(s,1);
d*=2K&d;
dp=ones(N2,1); d=[dp;*]; d1=d;
d=ones(N2,1); dM=[*;d]; dM1=dM;
for =1:M2
d1=[d1;d]; dM1=[dM1;dM];
end
B=[d d1 d* dM1 d];
7/23/2019 Funciones en Matlab 2
11/21
$=[2(N2+) 21 * 1 (N2+)];
>=spdias(B,$,s,s);
D=zeros(s,1);
r=1;
D((N2+)&(r21)-1)=[(.&8+)&1(+,+)2u(+,1)2u(1,+)];
D((N2+)&(r21)-(N2+))=[(.&8+)&1(+,N21)2u(+,N)2u(1,N21)];
for n=+:N2
D((N2+)&(r21)-n)=[(.&8+)&1(+,n-1)2u(1,n-1)];end
r=(M2+);
D((N2+)&(r21)-1)=[(.&8+)&1(M21,+)2u(M21,1)2u(M,+)];
D((N2+)&(r21)-(N2+))=[(.&8+)&1(M21,N21)2u(M21,N)2u(M,N21)];
for n=+:N2
D((N2+)&(r21)-n)=[(.&8+)&1(M21,n-1)2u(M,n-1)];
end
for r=+:M2
D((N2+)&(r21)-1)=[(.&8+)&1(r-1,+)2u(r-1,1)];
D((N2+)&(r21)-(N2+))=[(.&8+)&1(r-1,N21)2u(r-1,N)];for n=+:N2
D((N2+)&(r21)-n)=[(.&8+)&1(r-1,n-1)];
end
end
O=in"(>)D;
for r=1:M2+
for n=1:N2+
u(r-1,n-1)=[O((N2+)&(r21)-n)];
end
endend
function [u] =&oissonEcuacion($,3,a,,c,6,@)
x=[a:.:$]; I=[c:.:d]; N=len!.(x); M=len!.(I);
[x,I]=es.rid(x,I);
1=(x,I); 1=(x,I);
u=zeros(M,N);
u(1,:)=[1(1,:)]; u(M,:)=[1(M,:)];
u(:,1)=[1(:,1)]; u(:,N)=[1(:,N)];
s=(M2+)&(N2+);d=ones(s,1);
d*=2K&d;
dp=ones(N2,1); d=[dp;*]; dM=[*;dp];
d1=d; dM1=dM;
for =:M21
d1=[d1;d]; dM1=[dM;dM1];
end
B=[d d1 d* dM1 d];
$=[2(N2+) 21 * 1 (N2+)];
>=spdias(B,$,s,s);D=zeros(s,1);
D(1)=[(.&8+)&1(+,+)2u(1,+)2u(+,1)];
D(N2+)=[(.&8+)&1(+,N21)2u(1,N21)2u(+,N)];
7/23/2019 Funciones en Matlab 2
12/21
for n=+:N2
D(n)=[(.&8+)&1(+,n-1)2u(1,n-1)];
end
D((N2+)&(M2)-1)=[(.&8+)&1(M21,+)2u(M,+)2u(M21,1)];
D((N2+)&(M2)-N2+)=[(.&8+)&1(M21,N21)2u(M,N21)2u(M21,N)];
for n=+:N2
D((N2+)&(M2)-n)=[(.&8+)&1(M21,n-1)2u(M,n-1)];
endfor =+:M2
D((N2+)&(21)-1)=[(.&8+)&1(-1,+)2u(-1,1)];
D((N2+)&(21)-N2+)=[(.&8+)&1(-1,N21)2u(-1,N)];
for n=+:N2
D((N2+)&(21)-n)=[(.&8+)&1(-1,n-1)];
end
end
O=in"(>)D;
for =1:M2+
for n=1:N2+ u(-1,n-1)=[O((N2+)&(21)-n)];
end
end
?ure()
surf(x,I,u);
end
function [r] =RaicesBessel(p,N)
x=[*:*&1:(+&pi&N-+*)];
M=len!.(x);f=/(x) $essel0(p,x);
f1=f(x); =1;
for n=1:M21
if (f1(n)&f1(n-1)3*)
4()=[x(n)]; B()=[x(n-1)];
=-1;
end
end
'=len!.(4);
for l=1:' iz=4(l); de=B(l);
5.ile (de2iz)6*&******1
ed=(de-iz)&7+;
if (f(iz)&f(ed)3*)==1
de=ed;
else
iz=ed;
end
end
r(l)=ed;end
end
7/23/2019 Funciones en Matlab 2
13/21
function [u] =Ta8orOscilante(f,9,a,#,N)
[r]=RaicesBessel(*,N);
r*=r;
for =1:N
f1=/(r,?) r&f(r,?)&$essel0(*,r()&r&7');
1=/(r,?) r&(r,?)&$essel0(*,r()&r&7')
4*()=in!eral+(f1,*,',2pi,pi);
4*()=4*()&7(pi&('&$essel0(1,r())&8+)); B*()=in!eral+(1,*,',2pi,pi);
B*()=B*()&7((a&pi&'&r())&($essel0(1,r())&8+));
end
for n=1:N
[r]=RaicesBessel(n,N)
r=r(1:N);
s(n,:)=[r];
end
for n=1:N
for =1:N .=/(r,?) r&f(r,?)&cos(n&?)&$essel0(n,s(n,)&r&7');
4(n,)=in!eral+(.,*,',2pi,pi);
4(n,)=+&4(n,)&7(pi&('&$essel0(n-1,r(n,)))&8+);
P=/(r,?) r&f(r,?)&sin(n&?)&$essel0(n,s(n,)&r&7');
>(n,)=in!eral+(P,*,',2pi,pi);
>(n,)=+&>(n,)&7(pi&('&$essel0(n-1,r(n,)))&8+);
d=/(r,?) r&(r,?)&cos(n&?)&$essel0(n,s(n,)&r&7');
B(n,)=in!eral+(d,*,',2pi,pi);
B(n,)=+&B(n,)&7(pi&('&$essel0(n-1,r(n,)))&8+);
B(n,)=B(n,)&a&7s(n,); e=/(r,?) r&(r,?)&sin(n&?)&$essel0(n,s(n,)&r&7');
D(n,)=in!eral+(d,*,',2pi,pi);
D(n,)=+&D(n,)&7(pi&('&$essel0(n-1,r(n,))&8+));
D(n,)=D(n,)&a&7s(n,);
end
end
u=/(r,?,!) r&*-?&*-!&*;
for =1:N
u=/(r,?,!) u(r,?,!)-(4*()&cos(a&r*()&!&7')
-B*()&sin(a&r*()&!&7'))&$essel0(*,r*()&r&7');end
for n=1:N
for =1:N
u=/(r,?,!)-(4(n,)&cos(a&s(n,)&!&7')
-B(n,)&sin(a&s(n,)&!&7'))&$essel0(n,s(n,)&r&7')&cos(n&?);
u=/(r,?,!)-(>(n,)&cos(a&s(n,)&!&7')
-D(n,)&sin(a&s(n,)&!&7'))&$essel0(n,s(n,)&r&7')&sin(n&?);
end
end
r=[*:*&1:'];?=[*:*&1:+&pi];
!=[*:*&1:1*];
[r,?]=es.rid(r,?);
7/23/2019 Funciones en Matlab 2
14/21
[r,?]=car!opol(r,?);
E=len!.(!);
for n=1:E
u1=u(r,?,!(n));
?ure();surf(r,?,u1),.old on,rid on,.old o
pause(*&A)
end
end
function [u]=On6aDif$inita(f,9,#,a,@,T)
x=[*:.:']; N=len!.(x);
G=.&7(+&a);
!=[*:G:E]; M=len!.(!);
u=zeros(M,N);
f1=f(x); 1=(x);
u(:,1)=[*]; u(:,N)=[*];
u(1,:)=[f1(:)];
for n=+:N21 u(+,n)=u(1,n)-G&1(n);
end
for =+:M21
for n=+:N21
u(-1,n)=[+&u(,n)2u(21,n)-(u(,n-1)2+&u(,n)-u(,n21))&7K];
end
end
?ure();
for =1:M
plo!(x,u(,:),@r@,@'ine9id!.@,),.old on,rid on; pause(*&1);
.old o
end
end
function [u] = Eplicita7iperolica(f,9,a,#,@,T)
x=[*:.:']; G=.&7(+&a); N=len!.(x);
!=[*:G:E]; M=len!.(!);
u=zeros(M,N); f1=f(x), 1=(x);
u(1,:)=[f1(:)]; u(:,1)=[*]; u(:,N)=[*];for n=+:N21
u(+,n)=u(1,n)-G&1(n);
end
for =+:M
for n=+:N21
u(-1,n)=[+&u(,n)2u(21,n)-(u(,n-1)2+&u(,n)-u(,n21))&7K];
end
end
?ure(), .old on, rid on
for =1:M plo!(x,u(,:));
pause(*&1);
.old o
7/23/2019 Funciones en Matlab 2
15/21
end
end
function ["] =7iperolica:DDif$($,3,a,#,D,@,T)
x=[*:.:']; N=len!.(x);I=[*:.:D]; M=len!.(I);
G=.&7(+&a); !=[*:G:E]; Q=len!.(!);
[x,I]=es.rid(x,I);
1=(x,I); 1=(x,I);
=zeros(M,N,Q);
(1,:,:)=[*]; (M,:,:)=[*];
(:,1,:)=[*]; (:,N,:)=[*];
for =+:M21
for n=+:N21
(,n,1)=[1(,n)]; end
end
for =+:M21
for n=+:N21
(,n,+)=(,n,1)-G&1(,n);
end
end
for o=+:Q21;
for =+:M21
for n=+:N21 (,n,o-1)=[+&(,n,o)2(,n,o21)-((-1,n,o)2+&(,n,o)-(2
1,n,o))&7+-((,n-1,o)2+&(,n,o)-(,n21,o))&7+];
end
end
end
?ure();
for o=1:Q
surf(x,I,(:,:,o)), .old on,rid on,axis([* ' * D 2+ +]);
pause(*&*1);
.old oend
end
&oisson
function [] = #aplasianMatriz(A,@)
[M,N]=size(4);
>=zeros(M2+,N2+);
for =+:M21
for n=+:N21
>(21,n21)=[4(-1,n)2K&4(,n)-4(21,n)-4(,n-1)-4(,n21)]&7(.&8+); end
end
end
7/23/2019 Funciones en Matlab 2
16/21
function [u] =#aplace($,3,a,,c,6,@)
x=[a:.:$]; I=[c:.:d];
M=len!.(I); N=len!.(x);
[x,I]=es.rid(x,I); 1=(x,I);
1=(x,I);u=zeros(M,N);
u(1,:)=[1(1,:)]; u(M,:)=[1(M,:)];
u(:,1)=[1(:,1)]; u(:,N)=[1(:,N)];
s=(M2+)&(N2+);
d=ones(s,1);
d*=2K&d;
dp=ones(N2,1); d=[dp;*]; d1=d;
d=ones(N2,1); dM=[*;d]; dM1=dM;
for =1:M2
d1=[d1;d]; dM1=[dM1;dM];
end
B=[d d1 d* dM1 d];
$=[2(N2+) 21 * 1 (N2+)];
>=spdias(B,$,s,s);
D=zeros(s,1);
r=1;
D((N2+)&(r21)-1)=[(.&8+)&1(+,+)2u(+,1)2u(1,+)];
D((N2+)&(r21)-(N2+))=[(.&8+)&1(+,N21)2u(+,N)2u(1,N21)];
for n=+:N2 D((N2+)&(r21)-n)=[(.&8+)&1(+,n-1)2u(1,n-1)];
end
r=(M2+);
D((N2+)&(r21)-1)=[(.&8+)&1(M21,+)2u(M21,1)2u(M,+)];
D((N2+)&(r21)-(N2+))=[(.&8+)&1(M21,N21)2u(M21,N)2u(M,N21)];
for n=+:N2
D((N2+)&(r21)-n)=[(.&8+)&1(M21,n-1)2u(M,n-1)];
end
for r=+:M2
D((N2+)&(r21)-1)=[(.&8+)&1(r-1,+)2u(r-1,1)];D((N2+)&(r21)-(N2+))=[(.&8+)&1(r-1,N21)2u(r-1,N)];
for n=+:N2
D((N2+)&(r21)-n)=[(.&8+)&1(r-1,n-1)];
end
end
O=in"(>)D;
for r=1:M2+
for n=1:N2+
u(r-1,n-1)=[O((N2+)&(r21)-n)];
endend
surf(x,I,u);
end
7/23/2019 Funciones en Matlab 2
17/21
function [#A] =#aplasiano:D(A)
[M,N]=size(4);
'4=zeros(M2+,N2+);
for =+:M21
for n=+:N21
'4(21,n21)=[4(21,n)2K&4(,n)-4(-1,n)-4(,n21)-4(,n-1)];
end
endend
function [u] = Euacion#aplaceMatriz(A,Bi,Bs,#i,#6)
['4]='aplasiano+D(4);
1=zeros(M,N);
1(+:M21,+:N21)=['4];
u=zeros(M,N); .=1;
u(1,:)=[Bi]; u(M,:)=[Bs]; u(:,1)=['i]; u(:,N)=['d];
s=(M2+)&(N2+);
d=ones(s,1);d*=2K&d;
dp=ones(N2,1); d=[dp;*]; d1=d;
d=ones(N2,1); dM=[*;d]; dM1=dM;
for =1:M2
d1=[d1;d];
dM1=[dM1;dM];
end
B=[d d1 d* dM1 d];
$=[2(N2+) 21 * 1 (N2+)];
>=spdias(B,$,s,s);D=zeros(s,1);
r=1;
D((N2+)&(r21)-1)=[(.&8+)&1(+,+)2u(+,1)2u(1,+)];
D((N2+)&(r21)-(N2+))=[(.&8+)&1(+,N21)2u(+,N)2u(1,N21)];
for n=+:N2
D((N2+)&(r21)-n)=[(.&8+)&1(+,n-1)2u(1,n-1)];
end
r=(M2+);
D((N2+)&(r21)-1)=[(.&8+)&1(M21,+)2u(M21,1)2u(M,+)];
D((N2+)&(r21)-(N2+))=[(.&8+)&1(M21,N21)2u(M21,N)2u(M,N21)];for n=+:N2
D((N2+)&(r21)-n)=[(.&8+)&1(M21,n-1)2u(M,n-1)];
end
for r=+:M2
D((N2+)&(r21)-1)=[(.&8+)&1(r-1,+)2u(r-1,1)];
D((N2+)&(r21)-(N2+))=[(.&8+)&1(r-1,N21)2u(r-1,N)];
for n=+:N2
D((N2+)&(r21)-n)=[(.&8+)&1(r-1,n-1)];
end
endO=in"(>)D;
for r=1:M2+
for n=1:N2+
7/23/2019 Funciones en Matlab 2
18/21
u(r-1,n-1)=[O((N2+)&(r21)-n)];
end
end
end
function [A] =Bor6a6a(A,r)
[M,N]=size(4);
4$=ones(M,N);p=1&7r; a=[p:p:1];
for n=1:r
4$(n,n:N2(n21))=[a(n)];
4$(M2(n21),n:N2(n21))=[a(n)];
4$(n:M2(n21),n)=[a(n)];
4$(n:M2(n21),N2(n21))=[a(n)];
end
end
function [u] = $oto8ontaCe(A,B,r,Bi,Bs,#i,#6)['a]='aplasiano+D(4); ['$]='aplasiano+D(B);
['a$]=Bordada('a,r); ['$$]=Bordada('$,r);
[,]=size('a$);
>=ones(,); D=>2'a$;
4f='a&'a$-'$&D;
[M,N]=size(4);
1=zeros(M,N);
1(+:M21,+:N21)=[4f];
u=zeros(M,N); .=1;
u(1,:)=[Bi]; u(M,:)=[Bs]; u(:,1)=['i]; u(:,N)=['d];s=(M2+)&(N2+);
d=ones(s,1);
d*=2K&d;
dp=ones(N2,1); d=[dp;*]; d1=d;
d=ones(N2,1); dM=[*;d]; dM1=dM;
for =1:M2
d1=[d1;d];
dM1=[dM1;dM];
end
B=[d d1 d* dM1 d];$=[2(N2+) 21 * 1 (N2+)];
>=spdias(B,$,s,s);
D=zeros(s,1);
r=1;
D((N2+)&(r21)-1)=[(.&8+)&1(+,+)2u(+,1)2u(1,+)];
D((N2+)&(r21)-(N2+))=[(.&8+)&1(+,N21)2u(+,N)2u(1,N21)];
for n=+:N2
D((N2+)&(r21)-n)=[(.&8+)&1(+,n-1)2u(1,n-1)];
end
r=(M2+);D((N2+)&(r21)-1)=[(.&8+)&1(M21,+)2u(M21,1)2u(M,+)];
D((N2+)&(r21)-(N2+))=[(.&8+)&1(M21,N21)2u(M21,N)2u(M,N21)];
for n=+:N2
7/23/2019 Funciones en Matlab 2
19/21
D((N2+)&(r21)-n)=[(.&8+)&1(M21,n-1)2u(M,n-1)];
end
for r=+:M2
D((N2+)&(r21)-1)=[(.&8+)&1(r-1,+)2u(r-1,1)];
D((N2+)&(r21)-(N2+))=[(.&8+)&1(r-1,N21)2u(r-1,N)];
for n=+:N2
D((N2+)&(r21)-n)=[(.&8+)&1(r-1,n-1)];
endend
O=in"(>)D;
for r=1:M2+
for n=1:N2+
u(r-1,n-1)=[O((N2+)&(r21)-n)];
end
end
end
function [u*] = Ecuacionalor(f,9,s,a,l,@,T)x=[*:.:l]; N=len!.(x);
G=(.&7(a)&8+)&7K;
!=[*:G:E]; M=len!.(!);
f1=f(x);
1=(!); s1=s(!);
u1=zeros(M,N);
u1(1,:)=[f1(:)];
u1(:,1)=[1(:)];
u1(:,N)=[s1(:)];
for =1:M21 for n=+:N21
u1(-1)=[u1(,n)&7+-(u1(,n-1)-u1(,n21))&7K];
end
end
?ure();
4=ax(ax(u1)); >=in(in(u1));
for =1:M
B=zeros(1*,N);
for r=1:1*
B(r,:)=[u1(,:)]; end
is.o5(B,[> 4]), colorap(5in!er), .old on, rid on
pause (*&1);
.old o
end
end
a=*+ #=:+ @=+,- T=-+
f='() (/(#.))/0:
9='(t) +/t
s='(t) +/t[u*] = Ecuacionalor(f,9,s,a,l,@,T)
function [u] = 8e8rana6iferencias(f,9,A,B,,D,a,@,i,T) poisson
7/23/2019 Funciones en Matlab 2
20/21
x=[4:.,B];
M=len!.(x);
I=[>:i:D];
N=len!.(I);
G=(.-i)&7(+&a);
!=[*:G:E];
'=len!.(!);
[x,I]=es.rid(x,I);1=f(x,I);
1=(x,I);
u=Oeros(M,N,');
u(1,:,:)=[*];
u(M,:,:)=[*];
u(:,1,:)=[*];
u(:,N,:)=[*];
u(:,:,1)=[1(:,:)];
for =+:M21
for n=+:N21 u(,n,+)=u(,n,1)-G&1(,n);
end
end
for l=+:'21
for =+:M21
for n=+:N21
u(,n,l-1)=+&u(,n,l)2u(,n,l21)-[[(u(,n-1,l)2+&u(,n,l)-u(,n2
1,l))&i&8+]-[(u(-1,n,l)2+&u(,n,l)-u(21,n,l))&.&8+]]&7K;
end
endend
?ure()
for l=1:'
surf(x,I,u(:,:,l)),.old on, rid on, pause(*&+),.old o
end
end
Realizar la funcin !erie 6e $ourier Bessel en funcin 6e un ran9o 6e
(+,#)
func!ion [9,R] = Besse0Se"in(f,p,M,',epsi)
[R]=BesselRaices(p,M,epsi);
for n=1:M
f1=/(x) x&f(x)&$essel0(p,R(n)&(x&7'));
>(n)=in!eral(f1,*,');
d='&$essel0(p-1,R(n));
d=d&8+; d=d&7+;
>(n)=>(n)&7d;
end
7/23/2019 Funciones en Matlab 2
21/21
9=/(x) *&x;
for n=1:M
9=/(x) 9(x)->(n)&$essel0(p,R(n)&(x&7'));
end
u=[*:*&1:'];
91=9(u);
f1=f(u);
?ure(),plo!(u,91,@r@), .old on, rid on, plo!(u,f1,@$@);end