2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > matlab差分迭代解决静电场边界问题(含第二类边界条件)

matlab差分迭代解决静电场边界问题(含第二类边界条件)

时间:2024-01-27 10:41:28

相关推荐

matlab差分迭代解决静电场边界问题(含第二类边界条件)

matlab差分迭代解决静电场边界问题(含第二类边界条件)

相关链接:Matlab编程用迭代有限差分求电势分布/Mr_tea_milk/article/details/115327123

题目要求

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

(矩形长宽比为5:5)

分析:

关于差分迭代的分析和代码注释可见我的另一篇文章/Mr_tea_milk/article/details/115327123(只是其中的边界条件为第一类)

在 上 图 中 : ∂ ϕ ∂ x ∣ a = V 1 − V 0 d 01 在上图中: \frac{\partial \phi}{\partial x}|_a = \frac{V_1 - V_0}{d_{01}} 在上图中:∂x∂ϕ​∣a​=d01​V1​−V0​​

我们用一点(a点)两边点(1和0)电势差比上1和0的距离近似为a点电势,那么在此段代码中,我们的矩阵共有51*51个点,第51列点的 ∂ ϕ ∂ x \frac{\partial \phi}{\partial x} ∂x∂ϕ​应该用第52点和50点的元素来计算,但是我们没法求得52列点的电势,于是直接取 ϕ ∣ 51 列 = ϕ ∣ 50 列 \phi|_{51列} = \phi|_{50列} ϕ∣51列​=ϕ∣50列​即可(已知边界条件为 ∂ ϕ ∂ x = 0 \frac{\partial \phi}{\partial x} = 0 ∂x∂ϕ​=0)

所以我们在第一类边界条件代码的基础上做如下修改即可(见代码注释)

x_line=51;y_line=51;v1=zeros(y_line,x_line);for j=2:x_line-1v1(y_line,j)=10;endv2=v1;m=1;t=0;k=0;while(m>0.0001)k=k+1m=0;for i=2:y_line-1%51列的电势 = 50列的电势v2(i,x_line) = v1(i, x_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;endendendv1=v2;endsubplot(1,2,1),mesh(v2)axis([0,x_line,0,y_line,0,10])subplot(1,2,2),contour(v2,32)

最终得到图像如下:

如果左侧的边值条件改为 ∂ ϕ ∂ x = 0 \frac{\partial \phi}{\partial x} = 0 ∂x∂ϕ​=0,也可以类似地得出,在此不做赘述。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。