资源详细信息
有限差分法 - 资源详细说明
- function [alpha,N,U]=youxianchafen2(r1,r2,up,under,num,deta)
- %[alpha,N,U]=youxianchafen2(a,r1,r2,up,under,num,deta)
- %该函数用有限差分法求解有两种介质的正方形区域的二维拉普拉斯方程的数值解
- %函数返回迭代因子、迭代次数以及迭代完成后所求区域内网格节点处的值
- %a为正方形求解区域的边长
- %r1,r2分别表示两种介质的电导率
- %up,under分别为上下边界值
- %num表示将区域每边的网格剖分个数
- %deta为迭代过程中所允许的相对误差限
- n=num+1; %每边节点数
- U(n,n)=0; %节点处数值矩阵
- N=0; %迭代次数初值
- alpha=2/(1+sin(pi/num));%超松弛迭代因子
- k=r1/r2; %两介质电导率之比
- U(1,1:n)=up; %求解区域上边界第一类边界条件
- U(n,1:n)=under; %求解区域下边界第一类边界条件
- U(2:num,1)=0;U(2:num,n)=0;
- for i=2:num
- U(i,2:num)=up-(up-under)/num*(i-1);%采用线性赋值对上下边界之间的节点赋迭代初值
- end
- G=1;
- while G>0 %迭代条件:不满足相对误差限要求的节点数目G不为零
- Un=U; %完成第n次迭代后所有节点处的值
- G=0; %每完成一次迭代将不满足相对误差限要求的节点数目归零
- for j=1:n
- for i=2:num
- U1=U(i,j); %第n次迭代时网格节点处的值
- if j==1 %第n+1次迭代左边界第二类边界条件
- U(i,j)=1/4*(2*U(i,j+1)+U(i-1,j)+U(i+1,j));
- end
- if (j>1)&&(j U2=1/4*(U(i,j+1)+ U(i-1,j)+ U(i,j-1)+ U(i+1,j));
- U(i,j)=U1+alpha*(U2-U1); %引入超松弛迭代因子后的网格节点处的值
- end
- if i==n+1-j %第n+1次迭代两介质分界面(与网格对角线重合)第二类边界条件
- U(i,j)=1/4*(2/(1+k)*(U(i,j+1)+U(i+1,j))+2*k/(1+k)*(U(i-1,j)+U(i,j-1)));
- end
- if j==n %第n+1次迭代右边界第二类边界条件
- U(i,n)=1/4*(2*U(i,j-1)+U(i-1,j)+U(i+1,j));
- end
- end
- end
- N=N+1 %显示迭代次数
- Un1=U; %完成第n+1次迭代后所有节点处的值
- err=abs((Un1-Un)./Un1);%第n+1次迭代与第n次迭代所有节点值的相对误差
- err(1,1:n)=0; %上边界节点相对误差置零
- err(n,1:n)=0; %下边界节点相对误差置零
- G=sum(sum(err>deta))%显示每次迭代后不满足相对误差限要求的节点数目G
- end
立即下载 有限差分法
提示:下载后请用压缩软件解压,推荐使用 WinRAR 或 7-Zip
下载说明与使用指南
下载说明
- 本资源需消耗 2积分
- 24小时内重复下载不扣分
- 支持断点续传功能
- 资源永久有效可用
使用说明
- 下载后使用解压软件解压
- 推荐使用 WinRAR 或 7-Zip
- 如有密码请查看资源说明
- 解压后即可正常使用
积分获取方式
- 上传优质资源获得积分
- 每日签到免费领取积分
- 邀请好友注册获得奖励
- 查看详情 →