Программирование МКЭ в МATLAB. Даутов P.З. - 62 стр.

UptoLike

Составители: 

62 Глава 3. Программирование сборки матриц МКЭ
f o r h=[0 . 5 0 . 1 0 .0 5 0 . 0 2 ]
[ p , e , t ]= in i t mesh ( g , 'hmax' , h ) ;
exu=@( x , y , s d l ) x . ^2+y . ^2; % exact s o l u t i o n
x=p ( 1 , : ) ; y=p ( 2 , : ) ;
u=exu ( x , y , 1 ) ' ;
c='2+x+y' ; a='x+y' ; f='86
*
(x+y)+(2+x+y ) .
*
( x . ^2+y . ^2)' ;
b1='x' ; b2='y' ;
bc.bsD =[1 3 ] ; bc.uD=' x.^2+ y . ^2! x .^2+y . ^2' ;
bc.bsN =[4 2 ] ; b c . s g=' 2 ! 0 ' ;
bc.mu='2
*
(2+x+y ) .
*
s q r t ( x .^2+y . ^2)+2
*
( x .^2+y . ^2)!2
*
(2+ x+y ) .
*
s q r t ( x .^2+y . ^2)' ;
t i c
[A, F ] = assemba ( p , t , c , a , b1 , b2 , f ) ;
tassemba =[ tassemba to c ] ;
t i c , [N, Me, ud , Ge]= assembe ( bc , p , e ) ; tbc =[ tbc to c ] ;
t i c
y= assembpde ( bc , p , e , t , c , a , b1 , b2 , f ) ;
t s o l =[ t s o l t o c ] ;
i f h==0. 1
f i g u r e
pd e su r f ( p , t , uy ) ;
x l a b e l ('x_1' )
y l a b e l ('x_2' )
z l a b e l ('uu_h' )
colormap (' hsv' )
end
np=[np s i z e ( p , 2 ) ] ; % number of mes h p o i n t s
nt =[nt s i z e ( t , 2 ) ] ; % number of f i n i t e elements
h2=h^2;
e r r =[ e r r norm( uy , i n f ) ] ;
err h 2 =[ err h 2 nor m (uy , i n f )/ h2 ] ;
end
di s p ( 'np tassemba tassembe tassembpde' )
di s p ( [ np' tassemba ' tbc ' t s o l ' ] )
e r r
err h 2
В результате выполнения этой функции был получен левый рис. 3 и
следующая таблица:
62                                                Глава 3. Программирование сборки матриц МКЭ


f o r h=[0 . 5 0 . 1 0 . 0 5 0 . 0 2 ]
    [ p , e , t ]= i n i t m e s h ( g , 'hmax' , h ) ;

     exu=@( x , y , s d l ) x . ^2+ y . ^ 2 ;        % exact s o l u t i o n

     x=p ( 1 , : ) ; y=p ( 2 , : ) ;
     u=exu ( x , y , 1 ) ' ;

     c='2+x+y' ; a='x+y' ;                  f='−8−6*(x+y)+(2+x+y ) . * ( x . ^2+ y . ^2)' ;
     b1='x' ; b2='y' ;

     bc.bsD =[1 3 ] ; bc.uD=' x . ^2+ y . ^ 2 ! x . ^2+ y . ^2' ;
     bc.bsN =[4 2 ] ;  b c . s g=' 2 ! 0 ' ;
     bc.mu='2 * (2+x+y ) . * s q r t ( x . ^2+ y . ^2)+2 * ( x . ^2+ y . ^2)!2 * (2+ x+y ) . * s q r t ( x . ^2+ y . ^2)' ;

     tic
     [ A, F ] = assemba ( p , t , c , a , b1 , b2 , f ) ;
     tassemba =[ tassemba t o c ] ;

     t i c , [ N, Me, ud , Ge]= assembe ( bc , p , e ) ;         t b c =[ t b c t o c ] ;

     tic
     y= assembpde ( bc , p , e , t , c , a , b1 , b2 , f ) ;
     t s o l =[ t s o l t o c ] ;

     i f h==0. 1
        figure
        p d e s u r f ( p , t , u−y ) ;
        x l a b e l ( 'x_1' )
        y l a b e l ( 'x_2' )
        z l a b e l ( 'u−u_h' )
        colormap ( 'hsv' )
     end

     np=[np s i z e ( p , 2 ) ] ;         % number o f mesh p o i n t s
     nt =[ nt s i z e ( t , 2 ) ] ;       % number o f f i n i t e e l e m e n t s
     h2=h ^ 2 ;

    e r r =[ e r r norm ( u−y , i n f ) ] ;
    e r r h 2 =[ e r r h 2 norm ( u−y , i n f ) / h2 ] ;
end
d i s p ( 'np          tassemba             tassembe                tassembpde' )
d i s p ( [ np' tassemba ' tbc ' t s o l ' ] )
err
errh2

В результате выполнения этой функции был получен левый рис. 3 и
следующая таблица: