标签:
杂谈 |
分类: 实验报告 |
实验一 编程计算平衡态pn结电势分布
一、实验目的
1. 掌握平衡态pn结中电势的分布特点;
2. 掌握微分方程的有限差分法求解;
3. 掌握线性方程组的追赶法求解;
4. 掌握非线性方程组的牛顿法求解。
二、实验内容
一个pn结,杂质分布为线性对称分布,其平衡态的泊松方程为:
http://s9/middle/7bf0c30f4a66c2ebbd938&690
用有限差分法结合Newton法,求解上式,并在计算机上绘出电势分布图。
泊松方程中各量如下:
http://s14/middle/7bf0c30f4a66c2ec8884d&690
http://s1/middle/7bf0c30f4a66c2eda3d80&690
求解区间离散化方式:
计算x≥0一侧的电势分布。设pn结厚度为W=0.5μm,区间均匀离散,网格距h=0.01μm,从x=0到x=0.5μm共有51个网格点,迭代终止标准是
max|δΨ(N)|≤http://s8/middle/7bf0c30f4a66c2efd0457&690, http://s3/middle/7bf0c30f4a66c2f06d132&690
要求:
1. 线性方程组用追赶法求解;
2. 给出满足迭代终止条件时各网格点处的电势值及迭代次数,绘出电势分布图。
三、实验原理
一维泊松方程
http://s13/middle/7bf0c30f4a66c2f1175bc&690
在0-0.5μm处取间隔0.01μm网格点51个,边界处http://s7/middle/7bf0c30f4a66c2f336136&690(0)=0V,
(w)= http://s11/middle/7bf0c30f4a66c2f80cf4a&690
各网格点初值
(x)= http://s1/middle/7bf0c30f4a66c2fa5fe60&690,x=X(N)。
写成差分形式:
http://s7/middle/7bf0c30f4a66c2fea7c56&690
根据初值,利用牛顿迭代法进行求解以上的非线性方程
http://s2/middle/7bf0c30f4a66c2ffc3641&690
整理,代换后:
http://s5/middle/7bf0c30f4a66c3010c8d4&690
其中
http://s7/middle/7bf0c30f4a66c3014e0c6&690,
http://s4/middle/7bf0c30f4a66c30362e53&690
N=1,2,……,L-1
矩阵形式:
http://s11/middle/7bf0c30f4a66c304898da&690
http://s9/middle/7bf0c30f4a66c305bc2d8&690
http://s12/middle/7bf0c30f0770ad1a4690b&690
A为三对角矩阵,可用追赶法求解
http://s13/middle/7bf0c30f4a66c3089b6fc&690
转换为:
http://s4/middle/7bf0c30f4a66c30e13eb3&690
其中:
http://s2/middle/7bf0c30f4a66c3103b9c1&690
http://s16/middle/7bf0c30f4a66c315b331f&690
然后对i=1,2,…,n-1,
http://s14/middle/7bf0c30f4a66c316eaa4d&690
http://s7/middle/7bf0c30f4a66c318e3076&690
这里ci=1,http://s10/middle/7bf0c30f0770ad1c47719&690
最后进行回代,计算
http://s4/middle/7bf0c30f4a66c31b57fb3&690
再对于i=n-1,n-2,…,2,1计算
http://s16/middle/7bf0c30f4a66c31c01e7f&690
第一次利用追赶法求出来的X即为初值所要加上的变化量,加上后再次当成初值使用追赶法计算出变化量,如此往复迭代,直至变化量中最大值小于规定值,停止迭代,此次迭代后的结果即为满足条件的计算出的各点的电势值。
四、实验步骤
(1)流程图如下:
http://s4/middle/7bf0c30f0770ad1d0bf83&690
|
|
|
http://s11/middle/7bf0c30f4a66c322dabea&690 |
(2)选取初值
(3)编写matlab程序
五、实验结果
迭代次数:K=5;
dFai最大值
keep_r = 0.2440 0.0622 0.0091 0.0004 0.0000;
每次迭代后Fai的值
keep_Fai =
1 |
2 |
3 |
4 |
5 |
0.0437 |
0.0278 |
0.0269 |
0.0269 |
0.0269 |
0.0860 |
0.0555 |
0.0536 |
0.0536 |
0.0536 |
0.1258 |
0.0829 |
0.0801 |
0.0800 |
0.0800 |
0.1622 |
0.1099 |
0.1061 |
0.1060 |
0.1060 |
0.1949 |
0.1362 |
0.1315 |
0.1313 |
0.1313 |
0.2237 |
0.1618 |
0.1561 |
0.1559 |
0.1559 |
0.2486 |
0.1864 |
0.1799 |
0.1797 |
0.1797 |
0.2699 |
0.2100 |
0.2025 |
0.2023 |
0.2023 |
0.2879 |
0.2322 |
0.2240 |
0.2238 |
0.2238 |
0.3029 |
0.2530 |
0.2442 |
0.2439 |
0.2439 |
0.3153 |
0.2719 |
0.2629 |
0.2625 |
0.2625 |
0.3256 |
0.2890 |
0.2799 |
0.2796 |
0.2796 |
0.3339 |
0.3039 |
0.2953 |
0.2949 |
0.2949 |
0.3408 |
0.3168 |
0.3089 |
0.3085 |
0.3085 |
0.3463 |
0.3276 |
0.3207 |
0.3204 |
0.3204 |
0.3509 |
0.3366 |
0.3308 |
0.3305 |
0.3305 |
0.3547 |
0.3439 |
0.3392 |
0.3390 |
0.3390 |
0.3578 |
0.3499 |
0.3462 |
0.3460 |
0.3460 |
0.3605 |
0.3547 |
0.3519 |
0.3517 |
0.3517 |
0.3627 |
0.3586 |
0.3565 |
0.3563 |
0.3563 |
0.3647 |
0.3617 |
0.3602 |
0.3601 |
0.3601 |
0.3664 |
0.3643 |
0.3632 |
0.3631 |
0.3631 |
0.3679 |
0.3664 |
0.3657 |
0.3656 |
0.3656 |
0.3693 |
0.3682 |
0.3677 |
0.3677 |
0.3677 |
0.3705 |
0.3698 |
0.3695 |
0.3694 |
0.3694 |
0.3717 |
0.3712 |
0.3709 |
0.3709 |
0.3709 |
0.3727 |
0.3724 |
0.3723 |
0.3722 |
0.3722 |
0.3738 |
0.3736 |
0.3734 |
0.3734 |
0.3734 |
0.3747 |
0.3746 |
0.3745 |
0.3745 |
0.3745 |
0.3756 |
0.3756 |
0.3755 |
0.3755 |
0.3755 |
0.3765 |
0.3765 |
0.3764 |
0.3764 |
0.3764 |
0.3774 |
0.3773 |
0.3773 |
0.3773 |
0.3773 |
0.3782 |
0.3782 |
0.3782 |
0.3782 |
0.3782 |
0.3790 |
0.3790 |
0.3790 |
0.3790 |
0.3790 |
0.3798 |
0.3797 |
0.3797 |
0.3797 |
0.3797 |
0.3805 |
0.3805 |
0.3805 |
0.3805 |
0.3805 |
0.3812 |
0.3812 |
0.3812 |
0.3812 |
0.3812 |
0.3819 |
0.3819 |
0.3819 |
0.3819 |
0.3819 |
0.3826 |
0.3826 |
0.3826 |
0.3826 |
0.3826 |
0.3833 |
0.3833 |
0.3833 |
0.3833 |
0.3833 |
0.3839 |
0.3839 |
0.3839 |
0.3839 |
0.3839 |
0.3845 |
0.3845 |
0.3845 |
0.3845 |
0.3845 |
0.3851 |
0.3851 |
0.3851 |
0.3851 |
0.3851 |
0.3857 |
0.3857 |
0.3857 |
0.3857 |
0.3857 |
0.3863 |
0.3863 |
0.3863 |
0.3863 |
0.3863 |
0.3869 |
0.3869 |
0.3869 |
0.3869 |
0.3869 |
0.3875 |
0.3875 |
0.3875 |
0.3875 |
0.3875 |
0.3880 |
0.3880 |
0.3880 |
0.3880 |
0.3880 |
0.3886 |
0.3886 |
0.3886 |
0.3886 |
0.3886 |
输出图像:
http://s12/middle/7bf0c30f4a66c3323999b&690
六、Matlab程序
%变量声明
m=10^29;h=10^-8;ni=1.5*10^16;seta=38.6;q=1.6*10^-19;ksai=1.064*10^-10;L=51;ksaiR=1*10^-4;
%初值计算
N=1:L-1;x=1:L-1;y=0:L-1;x(N)=N*h;Fai=1:L-1;b=1:L-2;f=1:L-2;a=1:L-2;
for i=1:L-2
a(i)=m*x(i)/(2*ni);
end
Fai0=0;
Fai(50)=(1/seta)*log(m*5*10^-7/(2*ni)+sqrt((m*5*10^-7/(2*ni))^2+1));
for i=1:49
Fai(i)=(1/seta)*log(a(i)+sqrt(a(i)^2+1));
end
%大循环
k=0;r=1;keep_Fai=zeros(49,5);keep_r=zeros(1,5);
while r>ksaiR
%计算bn,fn
for j=1:49
b(j)=-2-q/ksai*seta*ni*h^2*(exp(-seta*Fai(j))+exp(seta*Fai(j)));
end
f(1)=-q/ksai*h^2*(m*x(1)+ni*exp(-seta*Fai(1))-ni*exp(seta*Fai(1)))-Fai0+2*Fai(1)-Fai(2);
for j=2:49
f(j)=-q/ksai*h^2*(m*x(j)+ni*exp(-seta*Fai(j))-ni*exp(seta*Fai(j)))-Fai(j-1)+2*Fai(j)-Fai(j+1);
end
g=zeros(L-2,L-2);
g(1,1)=b(1);
for i=2:L-2
g(i,i)=b(i);
g(i-1,i)=1;
g(i,i-1)=1;
end
Fai1=1:L-2;
%追赶法求
G=zeros(49,49); F=zeros(1,49);
G(1,1)=b(1);
G(1,2)=1;
F(1)=f(1);
for i=2:49
for j=1:49
G(i,j)=g(i,j)-G(i-1,j)*g(i,i-1)/G(i-1,i-1);
end
F(i)=f(i)-F(i-1)*g(i,i-1)/G(i-1,i-1);
end
Fai1(49)=F(49)/G(49,49);
for z=48:-1:1
Fai1(z)=(F(z)-Fai1(z+1)*g(z,z+1))/G(z,z);
end
k=k+1;
r=max(abs(Fai1));
for i=1:49
Fai(i)=Fai(i)+Fai1(i);
end
for j=1:49
keep_Fai(j,k)=Fai(j)';
end
keep_r(k)=r;
end
%作图
Fai_1=zeros(49,1);
Fai_2=zeros(49,1);
Fai_3=zeros(49,1);
Fai_4=zeros(49,1);
Fai_5=zeros(49,1);
for j=1:49
Fai_1(j)=keep_Fai(j,1);
end
for j=1:49
Fai_2(j)=keep_Fai(j,2);
end
for j=1:49
Fai_3(j)=keep_Fai(j,3);
end
for j=1:49
Fai_4(j)=keep_Fai(j,4);
end
for j=1:49
Fai_5(j)=keep_Fai(j,5);
end
Fai_11=[Fai0,Fai_1',Fai(50)];
Fai_22=[Fai0,Fai_2',Fai(50)];
Fai_33=[Fai0,Fai_3',Fai(50)];
Fai_44=[Fai0,Fai_4',Fai(50)];
Fai_55=[Fai0,Fai_5',Fai(50)];
plot(y,Fai_11,'o',y,Fai_22,'x',y,Fai_33,'+',y,Fai_44,'--',y,Fai_55);
xlabel('x');
ylabel('Fai');
keep_Fai
keep_r