鱼C论坛

 找回密码
 立即注册
查看: 2428|回复: 0

求教matlab三维等势面画法

[复制链接]
发表于 2019-4-15 14:27:50 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
close;clear;clc;
m=120;n=120;
Va=zeros(m,n);%计算矩阵
Vb=zeros(m,n);%初始矩阵
Vc=zeros(m,n);%误差矩阵
a=2/(1+sin(pi/(m-1)));%正方形磁场收敛因子

Va(1,1:3*m/4-1)=30;
Va(1,3*m/4:m)=10;

p=ones(m,n);%判断矩阵
p(m,:)=0;
p(:,n)=0;
p(1,:)=0;
p(:,1)=0;

k=0;
while sum(sum(abs(p)))~=0
    k=k+1;
    Vb=Va;
    for i=2:m-1
        for j=2:n-1
            Va(i,j)=Vb(i,j)+a/4*(Va(i-1,j)+Va(i,j-1)+Vb(i+1,j)+Vb(i,j+1)-4*Vb(i,j));%超松弛迭代
            if abs(Va(i,j)-Vb(i,j))<1e-3
                p(i,j)=0;
                Vc(i,j)=abs(Va(i,j)-Vb(i,j));
            end
        end
    end
end
max=max(max(Vc));
A=Va;
B=flipud(Va);
C=rot90(Va,2);
D=fliplr(Va);
E=[C,B;D,A];
contour(E,30);
grid on
以上是二维等势线,已经画出。

close;clear;clc;
m=8;n=8;o=8;
Va=zeros(m,n,o);%计算矩阵
Vb=zeros(m,n,o);%初始矩阵

a=2/(1+sin(pi/(m-1)));%正方形磁场收敛因子

Va(4,1:3*m/4-1,1)=30;
Va(4,3*m/4:m,1)=10;

p=ones(m,n,o);%判断矩阵
p(m,:,:)=0;
p(:,n,:)=0;
p(:,:,o)=0;
p(1,:,:)=0;
p(:,1,:)=0;
p(:,:,1)=0;

count=0;
while sum(sum(sum(abs(p))))~=0
    count=count+1;
    Vb=Va;
    for i=2:m-1
        for j=2:n-1
            for k=2:o-1
                Va(i,j,k)=Vb(i,j,k)+a/6*(Va(i-1,j,k)+Va(i,j-1,k)+Va(i,j,k-1)+Vb(i+1,j,k)+Vb(i,j+1,k)+Vb(i,j,k+1)-6*Vb(i,j,k));%超松弛迭代
                if abs(Va(i,j,k)-Vb(i,j,k))<1e-3
                    p(i,j,k)=0;
                    
                end
            end
        end
    end
end
三维矩阵Va已经求出,怎么画三维等势面?在线等!!!!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-16 18:09

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表