Matlab编程用迭代有限差分求电势分布

Matlab编程用迭代有限差分求电势分布

题目要求

Matlab编程用迭代有限差分求电势分布,用程序画出等位线,求出电势以后用mesh()看2.5维分布,用旋转按钮来旋转2.5维立体图
在这里插入图片描述

分析: 此处的处理方法为有限差分迭代法,某点的电势 = 它周围四点电势的平均值, 在此思想下,我们可以写出如下程序,大致分析见如下代码及注释:

%设置矩阵大小,x:y = 10:5, 为方便处理边界条件,多加一行一列变为101、51
x_line=101;y_line=51;
% v1和v2分别是一次迭代前的矩阵和迭代后的矩阵,先对它进行初始化
v1=zeros(y_line,x_line);
for j=2:x_line-1
    v1(y_line,j)=10;%设置边界条件
end
v2=v1;m=1;t=0;k=0;
%m即误差epsilon
while(m>0.00001)
    k=k+1
    m=0;
    %对矩阵中的元素进行差分迭代
    for i=2:y_line-1
        for j=2:x_line-1;
            v2(i,j)=(v1(i,j+1)+v1(i+1,j)+v1(i-1,j)+v1(i,j-1))/4;
            t=(v2(i,j)-v1(i,j));
            if(t>m)
                m=t;
            end
        end
    end
v1=v2;
end
subplot(1,2,1),mesh(v2)
axis([0,x_line,0,y_line,0,10])
subplot(1,2,2),contour(v2,32)
%可以认为mesh是2.5维, contour是2维

建议使用matlab中的实时脚本进行编辑,比较方便,可以得到结果为:
在这里插入图片描述
「含第二类边界条件的可以看我的另一篇文章:matlab差分迭代解决静电场边界问题(含第二类边界条件)https://blog.csdn.net/Mr_tea_milk/article/details/115328052」

  • 12
    点赞
  • 69
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值