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」

  • 5
    点赞
  • 18
    收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:1024 设计师:我叫白小胖 返回首页
评论 1

打赏作者

Mr.Asamu

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值