Funciones en Matlab 2

Embed Size (px)

Citation preview

  • 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