⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 youxianyuan.m

📁 数值分析方法,主要里面涵盖了计算方法方面matlab程序!
💻 M
字号:
clear
clc
x=0:1:2;
y=0:0.5:2;
k=0;
N1=length(x);
N2=length(y);
eps=1e-5;
fprintf('选取节点的方案:\n');
for j=1:length(y)
    for i=1:length(x)
        k=k+1;
        fprintf('第%d个节点坐标:\n',k);
        vj(k,:)=[x(i),y(j)];
        fprintf('(%0.2f,%0.2f)\n',x(i),y(j));
    end
end
N=0;
for t=1:k
    if vj(t,1)~=0&vj(t,2)~=0&vj(t,1)~=2&vj(t,2)~=2
        N=N+1;
        if rem(N,2)==0
            continue;
        end
        fprintf('第%d个中心节点为%d,相应单元号的节点号为:\n',N,t);
        q=1;
        for i=t-N1-1:t-N1
            fprintf('(%d,%d,%d)\n',t,i,i+1);
            y=[vj(t,2),vj(i,2),vj(i+1,2)];
            a(1)=y(2)-y(3);   
            a(2)=y(3)-y(1);
            a(3)=y(1)-y(2);
            A(q,:)=a;
            x=[vj(t,1),vj(i,1),vj(i+1,1)];
            b(1)=x(3)-x(2);   
            b(2)=x(1)-x(3);
            b(3)=x(2)-x(1);
            B(q,:)=b;
            q=q+1;
        end
        fprintf('(%d,%d,%d)\n',t,t-1,t-N1-1); 
        y=[vj(t,2),vj(t-1,2),vj(t-N1-1,2)];
        a(1)=y(2)-y(3);    
        a(2)=y(3)-y(1);
        a(3)=y(1)-y(2);
        A(q,:)=a;
        x=[vj(t,1),vj(t-1,1),vj(t-N1-1,1)];
        b(1)=x(3)-x(2);   
        b(2)=x(1)-x(3);
        b(3)=x(2)-x(1);
        B(q,:)=b;
        q=q+1;            
        fprintf('(%d,%d,%d)\n',t,t+N1-1,t-1); 
        y=[vj(t,2),vj(t+N1-1,2),vj(t-1,2)];
        a(1)=y(2)-y(3);    
        a(2)=y(3)-y(1);
        a(3)=y(1)-y(2);
        A(q,:)=a;
        x=[vj(t,1),vj(t+N1-1,1),vj(t-1,1)];
        b(1)=x(3)-x(2);   
        b(2)=x(1)-x(3);
        b(3)=x(2)-x(1);
        B(q,:)=b;
        q=q+1;         
        for i=t+N1+1:-1:t+N1
            fprintf('(%d,%d,%d)\n',t,i,i-1);
            y=[vj(t,2),vj(i,2),vj(i-1,2)];
            a(1)=y(2)-y(3);   
            a(2)=y(3)-y(1);
            a(3)=y(1)-y(2);
            A(q,:)=a;
            x=[vj(t,1),vj(i,1),vj(i-1,1)];
            b(1)=x(3)-x(2);   
            b(2)=x(1)-x(3);
            b(3)=x(2)-x(1);
            B(q,:)=b;
            q=q+1;
        end
        fprintf('(%d,%d,%d)\n',t,t+1,t+N1+1);  
        y=[vj(t,2),vj(t+1,2),vj(t+N1+1,2)];
        a(1)=y(2)-y(3);   
        a(2)=y(3)-y(1);
        a(3)=y(1)-y(2);
        A(q,:)=a;
        x=[vj(t,1),vj(t+1,1),vj(t+N1+1,1)];
        b(1)=x(3)-x(2);   
        b(2)=x(1)-x(3);
        b(3)=x(2)-x(1);
        B(q,:)=b;
        q=q+1;
        fprintf('(%d,%d,%d)\n',t,t-N1+1,t+1);  
        y=[vj(t,2),vj(t-N1+1,2),vj(t+1,2)];
        a(1)=y(2)-y(3);   
        a(2)=y(3)-y(1);
        a(3)=y(1)-y(2);
        A(q,:)=a;
        x=[vj(t,1),vj(t-N1+1,1),vj(t+1,1)];
        b(1)=x(3)-x(2);   
        b(2)=x(1)-x(3);
        b(3)=x(2)-x(1);
        B(q,:)=b;
        q=q+1;
    end
end
%y=[vj(5,2),vj(1,2),vj(2,2)];
%a(1)=y(2)-y(3);   
%a(2)=y(3)-y(1);
%a(3)=y(1)-y(2);
%A(1,:)=a;
%y=[vj(5,2),vj(2,2),vj(3,2)];
%a(1)=y(2)-y(3);    
%a(2)=y(3)-y(1);
%a(3)=y(1)-y(2);
%A(2,:)=a;
%y=[vj(5,2),vj(4,2),vj(1,2)];
%a(1)=y(2)-y(3);    
%a(2)=y(3)-y(1);
%a(3)=y(1)-y(2);
%A(3,:)=a;
%y=[vj(5,2),vj(7,2),vj(4,2)];
%a(1)=y(2)-y(3);    
%a(2)=y(3)-y(1);
%a(3)=y(1)-y(2);
%A(4,:)=a;
%y=[vj(5,2),vj(9,2),vj(8,2)];
%a(1)=y(2)-y(3);    
%a(2)=y(3)-y(1);
%a(3)=y(1)-y(2);
%A(5,:)=a;
%y=[vj(5,2),vj(8,2),vj(7,2)];
%a(1)=y(2)-y(3);    
%a(2)=y(3)-y(1);
%a(3)=y(1)-y(2);
%A(6,:)=a;
%y=[vj(5,2),vj(6,2),vj(9,2)];
%a(1)=y(2)-y(3);    
%a(2)=y(3)-y(1);
%a(3)=y(1)-y(2);
%A(7,:)=a;
%y=[vj(5,2),vj(3,2),vj(6,2)];
%a(1)=y(2)-y(3);    
%a(2)=y(3)-y(1);
%a(3)=y(1)-y(2);
%A(8,:)=a;
y=[vj(11,2),vj(7,2),vj(8,2)];
a(1)=y(2)-y(3);    
a(2)=y(3)-y(1);
a(3)=y(1)-y(2);
A(9,:)=a;
y=[vj(11,2),vj(8,2),vj(9,2)];
a(1)=y(2)-y(3);    
a(2)=y(3)-y(1);
a(3)=y(1)-y(2);
A(10,:)=a;
y=[vj(11,2),vj(10,2),vj(7,2)];
a(1)=y(2)-y(3);    
a(2)=y(3)-y(1);
a(3)=y(1)-y(2);
A(11,:)=a;
y=[vj(11,2),vj(13,2),vj(10,2)];
a(1)=y(2)-y(3);    
a(2)=y(3)-y(1);
a(3)=y(1)-y(2);
A(12,:)=a;
y=[vj(11,2),vj(15,2),vj(14,2)];
a(1)=y(2)-y(3);    
a(2)=y(3)-y(1);
a(3)=y(1)-y(2);
A(13,:)=a;
y=[vj(11,2),vj(14,2),vj(13,2)];
a(1)=y(2)-y(3);    
a(2)=y(3)-y(1);
a(3)=y(1)-y(2);
A(14,:)=a;
y=[vj(11,2),vj(12,2),vj(15,2)];
a(1)=y(2)-y(3);    
a(2)=y(3)-y(1);
a(3)=y(1)-y(2);
A(15,:)=a;
y=[vj(11,2),vj(9,2),vj(12,2)];
a(1)=y(2)-y(3);    
a(2)=y(3)-y(1);
a(3)=y(1)-y(2);
A(16,:)=a;
A;

%x=[vj(5,1),vj(1,1),vj(2,1)];
%b(1)=x(3)-x(2);   
%b(2)=x(1)-x(3);
%b(3)=x(2)-x(1);
%B(1,:)=b;
%x=[vj(5,1),vj(2,1),vj(3,1)];
%b(1)=x(3)-x(2);    
%b(2)=x(1)-x(3);
%b(3)=x(2)-x(1);
%B(2,:)=b;
%x=[vj(5,1),vj(4,1),vj(1,1)];
%b(1)=x(3)-x(2);    
%b(2)=x(1)-x(3);
%b(3)=x(2)-x(1);
%B(3,:)=b;
%x=[vj(5,1),vj(7,1),vj(4,1)];
%b(1)=x(3)-x(2);    
%b(2)=x(1)-x(3);
%b(3)=x(2)-x(1);
%B(4,:)=b;
%x=[vj(5,1),vj(9,1),vj(8,1)];
%b(1)=x(3)-x(2);    
%b(2)=x(1)-x(3);
%b(3)=x(2)-x(1);
%B(5,:)=b;
%x=[vj(5,1),vj(8,1),vj(7,1)];
%b(1)=x(3)-x(2);    
%b(2)=x(1)-x(3);
%b(3)=x(2)-x(1);
%B(6,:)=b;
%x=[vj(5,1),vj(6,1),vj(9,1)];
%b(1)=x(3)-x(2);    
%b(2)=x(1)-x(3);
%b(3)=x(2)-x(1);
%B(7,:)=b;
%x=[vj(5,1),vj(3,1),vj(6,1)];
%b(1)=x(3)-x(2);    
%b(2)=x(1)-x(3);
%b(3)=x(2)-x(1);
%B(8,:)=b;
x=[vj(11,1),vj(7,1),vj(8,1)];
b(1)=x(3)-x(2);    
b(2)=x(1)-x(3);
b(3)=x(2)-x(1);
B(9,:)=b;
x=[vj(11,1),vj(8,1),vj(9,1)];
b(1)=x(3)-x(2);    
b(2)=x(1)-x(3);
b(3)=x(2)-x(1);
B(10,:)=b;
x=[vj(11,1),vj(10,1),vj(7,1)];
b(1)=x(3)-x(2);    
b(2)=x(1)-x(3);
b(3)=x(2)-x(1);
B(11,:)=b;
x=[vj(11,1),vj(13,1),vj(10,1)];
b(1)=x(3)-x(2);    
b(2)=x(1)-x(3);
b(3)=x(2)-x(1);
B(12,:)=b;
x=[vj(11,1),vj(15,1),vj(14,1)];
b(1)=x(3)-x(2);    
b(2)=x(1)-x(3);
b(3)=x(2)-x(1);
B(13,:)=b;
x=[vj(11,1),vj(14,1),vj(13,1)];
b(1)=x(3)-x(2);    
b(2)=x(1)-x(3);
b(3)=x(2)-x(1);
B(14,:)=b;
x=[vj(11,1),vj(12,1),vj(15,1)];
b(1)=x(3)-x(2);    
b(2)=x(1)-x(3);
b(3)=x(2)-x(1);
B(15,:)=b;
x=[vj(11,1),vj(9,1),vj(12,1)];
b(1)=x(3)-x(2);    
b(2)=x(1)-x(3);
b(3)=x(2)-x(1);
B(16,:)=b;
B;

T=[A,B];
m=size(T,1);
S=1/4;
for i=1
    K=[[A(i,:)]',[B(i,:)]'];
    Ke1=1/(4*S)*K*K';
end
Ke1
for i=2
    K=[[A(i,:)]',[B(i,:)]'];
    Ke2=1/(4*S)*K*K';
end
for i=3
    K=[[A(i,:)]',[B(i,:)]'];
    Ke3=1/(4*S)*K*K';
end
for i=4
    K=[[A(i,:)]',[B(i,:)]'];
    Ke4=1/(4*S)*K*K';
end
for i=5
    K=[[A(i,:)]',[B(i,:)]'];
    Ke5=1/(4*S)*K*K';
end
for i=6
    K=[[A(i,:)]',[B(i,:)]'];
    Ke6=1/(4*S)*K*K';
end
for i=7
    K=[[A(i,:)]',[B(i,:)]'];
    Ke7=1/(4*S)*K*K';
end
for i=8
    K=[[A(i,:)]',[B(i,:)]'];
    Ke8=1/(4*S)*K*K';
end
for i=9
    K=[[A(i,:)]',[B(i,:)]'];
    Ke9=1/(4*S)*K*K';
end
for i=10
    K=[[A(i,:)]',[B(i,:)]'];
    Ke10=1/(4*S)*K*K';
end
for i=11
    K=[[A(i,:)]',[B(i,:)]'];
    Ke11=1/(4*S)*K*K';
end
for i=12
    K=[[A(i,:)]',[B(i,:)]'];
    Ke12=1/(4*S)*K*K';
end
for i=13
    K=[[A(i,:)]',[B(i,:)]'];
    Ke13=1/(4*S)*K*K';
end
for i=14
    K=[[A(i,:)]',[B(i,:)]'];
    Ke14=1/(4*S)*K*K';
end
for i=15
    K=[[A(i,:)]',[B(i,:)]'];
    Ke15=1/(4*S)*K*K';
end
for i=16
    K=[[A(i,:)]',[B(i,:)]'];
    Ke16=1/(4*S)*K*K';
end
KK=zeros(15);
KK(5,5)=KK(5,5)+Ke1(1,1);
KK(1,1)=KK(1,1)+Ke1(2,2);
KK(2,2)=KK(2,2)+Ke1(3,3);
KK(1,5)=KK(1,5)+Ke1(2,1);
KK(5,1)=KK(5,1)+Ke1(1,2);
KK(1,2)=KK(1,2)+Ke1(2,3);
KK(2,1)=KK(2,1)+Ke1(3,2);
KK(5,2)=KK(5,2)+Ke1(1,3);
KK(2,5)=KK(2,5)+Ke1(3,1);

KK(5,5)=KK(5,5)+Ke2(1,1);
KK(2,2)=KK(2,2)+Ke2(2,2);
KK(3,3)=KK(3,3)+Ke2(3,3);
KK(2,5)=KK(2,5)+Ke2(2,1);
KK(5,2)=KK(5,2)+Ke2(1,2);
KK(2,3)=KK(2,3)+Ke2(2,3);
KK(3,2)=KK(3,2)+Ke2(3,2);
KK(5,3)=KK(5,3)+Ke2(1,3);
KK(3,5)=KK(3,5)+Ke2(3,1);

KK(5,5)=KK(5,5)+Ke3(1,1);
KK(4,4)=KK(4,4)+Ke3(2,2);
KK(1,1)=KK(1,1)+Ke3(3,3);
KK(4,5)=KK(4,5)+Ke3(2,1);
KK(5,4)=KK(5,4)+Ke3(1,2);
KK(4,1)=KK(4,1)+Ke3(2,3);
KK(1,4)=KK(1,4)+Ke3(3,2);
KK(5,1)=KK(5,1)+Ke3(1,3);
KK(1,5)=KK(1,5)+Ke3(3,1);

KK(5,5)=KK(5,5)+Ke4(1,1);
KK(7,7)=KK(7,7)+Ke4(2,2);
KK(4,4)=KK(4,4)+Ke4(3,3);
KK(7,5)=KK(7,5)+Ke4(2,1);
KK(5,7)=KK(5,7)+Ke4(1,2);
KK(7,4)=KK(7,4)+Ke4(2,3);
KK(4,7)=KK(4,7)+Ke4(3,2);
KK(5,4)=KK(5,4)+Ke4(1,3);
KK(4,5)=KK(4,5)+Ke4(3,1);

KK(5,5)=KK(5,5)+Ke5(1,1);
KK(9,9)=KK(9,9)+Ke5(2,2);
KK(8,8)=KK(8,8)+Ke5(3,3);
KK(9,5)=KK(9,5)+Ke5(2,1);
KK(5,9)=KK(5,9)+Ke5(1,2);
KK(9,8)=KK(9,8)+Ke5(2,3);
KK(8,9)=KK(8,9)+Ke5(3,2);
KK(5,8)=KK(5,8)+Ke5(1,3);
KK(8,5)=KK(8,5)+Ke5(3,1);

KK(5,5)=KK(5,5)+Ke6(1,1);
KK(8,8)=KK(8,8)+Ke6(2,2);
KK(7,7)=KK(7,7)+Ke6(3,3);
KK(8,5)=KK(8,5)+Ke6(2,1);
KK(5,8)=KK(5,8)+Ke6(1,2);
KK(8,7)=KK(8,7)+Ke6(2,3);
KK(7,8)=KK(7,8)+Ke6(3,2);
KK(5,7)=KK(5,7)+Ke6(1,3);
KK(7,5)=KK(7,5)+Ke6(3,1);

KK(5,5)=KK(5,5)+Ke7(1,1);
KK(6,6)=KK(6,6)+Ke7(2,2);
KK(9,9)=KK(9,9)+Ke7(3,3);
KK(6,5)=KK(6,5)+Ke7(2,1);
KK(5,6)=KK(5,6)+Ke7(1,2);
KK(6,9)=KK(6,9)+Ke7(2,3);
KK(9,6)=KK(9,6)+Ke7(3,2);
KK(5,9)=KK(5,9)+Ke7(1,3);
KK(9,5)=KK(9,5)+Ke7(3,1);

KK(5,5)=KK(5,5)+Ke8(1,1);
KK(3,3)=KK(3,3)+Ke8(2,2);
KK(6,6)=KK(6,6)+Ke8(3,3);
KK(3,5)=KK(3,5)+Ke8(2,1);
KK(5,3)=KK(5,3)+Ke8(1,2);
KK(3,6)=KK(3,6)+Ke8(2,3);
KK(6,3)=KK(6,3)+Ke8(3,2);
KK(5,6)=KK(5,6)+Ke8(1,3);
KK(6,5)=KK(6,5)+Ke8(3,1);

KK(11,11)=KK(11,11)+Ke9(1,1);
KK(7,7)=KK(7,7)+Ke9(2,2);
KK(8,8)=KK(8,8)+Ke9(3,3);
KK(7,11)=KK(7,11)+Ke9(2,1);
KK(11,7)=KK(11,7)+Ke9(1,2);
KK(7,8)=KK(7,8)+Ke9(2,3);
KK(8,7)=KK(8,7)+Ke9(3,2);
KK(11,8)=KK(11,8)+Ke9(1,3);
KK(8,11)=KK(8,11)+Ke9(3,1);

KK(11,11)=KK(11,11)+Ke10(1,1);
KK(8,8)=KK(8,8)+Ke10(2,2);
KK(9,9)=KK(9,9)+Ke10(3,3);
KK(8,11)=KK(8,11)+Ke10(2,1);
KK(11,8)=KK(11,8)+Ke10(1,2);
KK(8,9)=KK(8,9)+Ke10(2,3);
KK(9,8)=KK(9,8)+Ke10(3,2);
KK(11,9)=KK(11,9)+Ke10(1,3);
KK(9,11)=KK(9,11)+Ke10(3,1);

KK(11,11)=KK(11,11)+Ke11(1,1);
KK(10,10)=KK(10,10)+Ke11(2,2);
KK(7,7)=KK(7,7)+Ke11(3,3);
KK(10,11)=KK(10,11)+Ke11(2,1);
KK(11,10)=KK(11,10)+Ke11(1,2);
KK(10,7)=KK(10,7)+Ke11(2,3);
KK(7,10)=KK(7,10)+Ke11(3,2);
KK(11,7)=KK(11,7)+Ke11(1,3);
KK(7,11)=KK(7,11)+Ke11(3,1);

KK(11,11)=KK(11,11)+Ke12(1,1);
KK(13,13)=KK(13,13)+Ke12(2,2);
KK(10,10)=KK(10,10)+Ke12(3,3);
KK(13,11)=KK(13,11)+Ke12(2,1);
KK(11,13)=KK(11,13)+Ke12(1,2);
KK(13,10)=KK(13,10)+Ke12(2,3);
KK(10,13)=KK(10,13)+Ke12(3,2);
KK(11,10)=KK(11,10)+Ke12(1,3);
KK(10,11)=KK(10,11)+Ke12(3,1);

KK(11,11)=KK(11,11)+Ke13(1,1);
KK(15,15)=KK(15,15)+Ke13(2,2);
KK(14,14)=KK(14,14)+Ke13(3,3);
KK(15,11)=KK(15,11)+Ke13(2,1);
KK(11,15)=KK(11,15)+Ke13(1,2);
KK(15,14)=KK(15,14)+Ke13(2,3);
KK(14,15)=KK(14,15)+Ke13(3,2);
KK(11,14)=KK(11,14)+Ke13(1,3);
KK(14,11)=KK(14,11)+Ke13(3,1);

KK(11,11)=KK(11,11)+Ke14(1,1);
KK(14,14)=KK(14,14)+Ke14(2,2);
KK(13,13)=KK(13,13)+Ke14(3,3);
KK(14,11)=KK(14,11)+Ke14(2,1);
KK(11,14)=KK(11,14)+Ke14(1,2);
KK(14,13)=KK(14,13)+Ke14(2,3);
KK(13,14)=KK(13,14)+Ke14(3,2);
KK(11,13)=KK(11,13)+Ke14(1,3);
KK(13,11)=KK(13,11)+Ke14(3,1);

KK(11,11)=KK(11,11)+Ke15(1,1);
KK(12,12)=KK(12,12)+Ke15(2,2);
KK(15,15)=KK(15,15)+Ke15(3,3);
KK(12,11)=KK(12,11)+Ke15(2,1);
KK(11,12)=KK(11,12)+Ke15(1,2);
KK(12,15)=KK(12,15)+Ke15(2,3);
KK(15,12)=KK(15,12)+Ke15(3,2);
KK(11,15)=KK(11,15)+Ke15(1,3);
KK(15,11)=KK(15,11)+Ke15(3,1);

KK(11,11)=KK(11,11)+Ke16(1,1);
KK(9,9)=KK(9,9)+Ke16(2,2);
KK(12,12)=KK(15,15)+Ke16(3,3);
KK(9,11)=KK(9,11)+Ke16(2,1);
KK(11,9)=KK(11,9)+Ke16(1,2);
KK(9,12)=KK(9,12)+Ke16(2,3);
KK(12,9)=KK(12,9)+Ke16(3,2);
KK(11,12)=KK(11,12)+Ke16(1,3);
KK(12,11)=KK(12,11)+Ke16(3,1);

KK
u(1)=50;
u(2)=50;
u(3)=50;
u(13)=100;
u(14)=100;
u(15)=100;
u;
K11=KK(1:N1,1:N1);
K12=KK(1:N1,N1+1:15-N1);
K13=KK(1:N1,16-N1:15);   %0
K21=KK(N1+1:15-N1,1:N1);
K22=KK(N1+1:15-N1,N1+1:15-N1);
K23=KK(N1+1:15-N1,16-N1:15);
K31=KK(16-N1:15,1:N1);   %0
K32=KK(16-N1:15,N1+1:15-N1);
K33=KK(16-N1:15,16-N1:15);
Y=-K21*u(1:3)'-K23*u(13:15)';
X=inv(K22)*Y;
fprintf('边界结果为:\n')
n=size(K22,1);
for i=1:n
    fprintf('u[%d]=%f\n',i,X(i));
end


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -