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

📄 fsfjsgk.m

📁 本程序用边界元方法求解正方形柱体内电位分布
💻 M
字号:
%  FD.m
%  本程序用矩阵实现有限差分算法
%  本程序求解第一类边界条件下无源矩形金属槽电位分布
%  编程人    沙威(Wei Sha) 安徽大学(Anhui University) ws108@ahu.edu.cn


tic;
clear;clc;
%%%%%%%%%%%%%%%%%
%  1.常量赋值
M=10;  %  行数
N=8;  %  列数
TOTAL=M*N;  %  所有点数
UNKNOWN=(M-2)*(N-2);  %  所有未知点数
V0=100;  %  上侧电位
V1=0;    %  下侧电位
V2=0;    %  左侧电位 
V3=0;    %  右侧电位



%%%%%%%%%%%%%%%%%%
%  2.确定系数矩阵

%%  编号从左到右,从上到下
A=zeros(TOTAL,TOTAL);  %  系数矩阵初始化

%%  上半部分
i=0;  %  系数矩阵行标号
index=N+1; %  第二行第一个元素

for m=index+1:N:TOTAL-2*N+2;  %  找到未知点每行的起始标号
    for n=m:1:m+N-3;  %  找到未知点对应的真实编号
        i=i+1;  %  系数矩阵行循环
        A(i,n)=-4;  %  中心
        A(i,n+1)=1; %  右侧
        A(i,n-1)=1; %  左侧
        A(i,n+N)=1; %  下侧
        A(i,n-N)=1; %  上侧
    end;
end;

position=i;  %  记住系数矩阵循环位置

%%  下半部分

% 1.上侧
for j=1:N;  %  槽上侧包括角点
    i=i+1;  %  系数矩阵行循环
    A(i,j)=1;
end;

% 1.下侧
for j=TOTAL-N+1:TOTAL;  %  槽下侧包括角点
    i=i+1;  %  系数矩阵行循环
    A(i,j)=1;
end;

% 1.左侧
for j=N+1:N:TOTAL-2*N+1;  %  左侧不包括角点
    i=i+1;  %  系数矩阵行循环
    A(i,j)=1;
end;
    
  
% 1.右侧
for j=2*N:N:TOTAL-N;  %  左侧不包括角点
    i=i+1;  %  系数矩阵行循环
    A(i,j)=1;
end;





%%%%%%%%%%%%%%%%%%%%%%%%%%%
%  3.确定激励矩阵
B=zeros(TOTAL,1);  %  激励矩阵初始化

s=position;  %  找到矩阵需要赋值的位置

% 1.上侧
for j=1:N;  %  槽上侧包括角点
    s=s+1;  %  激励矩阵行循环
    B(s,1)=V0;
end;

% 1.下侧
for j=TOTAL-N+1:TOTAL;  %  槽下侧包括角点
    s=s+1;  %  激励矩阵行循环
    B(s,1)=V1;
end;

% 1.左侧
for j=N+1:N:TOTAL-2*N+1;  %  左侧不包括角点
    s=s+1;  %  激励矩阵行循环
    B(s,1)=V2;
end;
    
  
% 1.右侧
for j=2*N:N:TOTAL-N;  %  左侧不包括角点
    s=s+1;  %  激励矩阵行循环
    B(s,1)=V3;
end;




%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%  4.  求解矩阵方程
C=A\B;

r=0;  %   初值
for p=1:M;  %  行循环
    for q=1:N  %  列循环
        r=r+1;
        VOLTAGE(p,q)=C(r,1);  %  赋值便于观察
    end;
end;
    
disp(VOLTAGE);  %  显示
toc;

⌨️ 快捷键说明

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