| 查看: 364 | 回复: 1 | ||
[求助]
求助,帮我分析下程序哪里出了问题?求指教
|
|
function H=Ha(nx,nz,hm,epslong,elta,N,w2,Ps,d,L) rj=d/2; u2=2*pi*N/60; deltax=2*pi*rj/(nx-1) deltaz=L/(nz-1) delta=2*pi/(nx-1) h=zeros(nx+1,nz+1); a=zeros(nx+1,nz+1); b=zeros(nx+1,nz+1); c=zeros(nx+1,nz+1); d=zeros(nx+1,nz+1); e=zeros(nx+1,nz+1); f=zeros(nx+1,nz+1); ff=zeros(nx+1,nz+1); k=1; Ax=12*elta*u2*L/(hm^2*Ps); Az=12*elta*w2*L/(hm^2*Ps); for i=1:nx theta=delta*(i-1); h(i, =hm*(1+epslong*cos(theta+delta/2));end S=0; T=0; ERR=1e-3; GAP=1; while GAP>ERR k=k+1 for j=2:1:nz-1 if i==1 a(i,j)=h(i,j)^3/deltax^2-3*h(i,j)^2*(h(i+1,j)-h(nx,j))/(4*deltax^2); b(i,j)=h(i,j)^3/deltax^2+3*h(i,j)^2*(h(i+1,j)-h(nx,j))/(4*deltax^2); c(i,j)=-2*h(i,j)^3/deltax^2-2*h(i,j)^3/deltaz^2; d(i,j)=h(i,j)^3/deltaz^2; e(i,j)=h(i,j)^3/deltaz^2; ff(i,j)=(a(i,j)*f(nx,j)+b(i,j)*f(i+1,j)+d(i,j)*f(i,j-1)+e(i,j)*f(i,j+1))/(-c(i,j)); elseif i==nx a(i,j)=h(i,j)^3/deltax^2-3*h(i,j)^2*(h(1,j)-h(i-1,j))/(4*deltax^2); b(i,j)=h(i,j)^3/deltax^2+3*h(i,j)^2*(h(1,j)-h(i-1,j))/(4*deltax^2); c(i,j)=-2*h(i,j)^3/deltax^2-2*h(i,j)^3/deltaz^2; d(i,j)=h(i,j)^3/deltaz^2; e(i,j)=h(i,j)^3/deltaz^2; pp(i,j)=(a(i,j)*f(i-1,j)+b(i,j)*f(1,j)+d(i,j)*f(i,j-1)+e(i,j)*f(i,j+1))/(-c(i,j)); else if pp(i,j)<0 pp(i,j)=0; else end end end for i=2:1:nx-1 if j==1 a(i,j)=h(i,j)^3/deltax^2-3*h(i,j)^2*(h(i+1,j)-h(i-1,j))/(4*deltax^2); b(i,j)=h(i,j)^3/deltax^2+3*h(i,j)^2*(h(i+1,j)-h(i-1,j))/(4*deltax^2); c(i,j)=-2*h(i,j)^3/deltax^2-2*h(i,j)^3/deltaz^2; d(i,j)=h(i,j)^3/deltaz^2; e(i,j)=h(i,j)^3/deltaz^2; ff(i,j)=(a(i,j)*f(i-1,j)+b(i,j)*f(i+1,j)+d(i,j)*Ps^2+e(i,j)*f(i,j+1))/(-c(i,j)); elseif j==nz a(i,j)=h(i,j)^3/deltax^2-3*h(i,j)^2*(h(i+1,j)-h(i-1,j))/(4*deltax^2); b(i,j)=h(i,j)^3/deltax^2+3*h(i,j)^2*(h(i+1,j)-h(i-1,j))/(4*deltax^2); c(i,j)=-2*h(i,j)^3/deltax^2-2*h(i,j)^3/deltaz^2; d(i,j)=h(i,j)^3/deltaz^2; e(i,j)=h(i,j)^3/deltaz^2; ff(i,j)=(a(i,j)*f(i-1,j)+b(i,j)*f(i+1,j)+d(i,j)*f(i,j-1)+e(i,j)*f(i,j+1))/(-c(i,j)); else if ff(i,j)<0 ff(i,j)=0; else end end end if i==1&&j==1 p(i,j)=Ps elseif i==nx&&j==1 p(i,j)=Ps elseif i==1&&j==nz a(i,j)=h(i,j)^3/deltax^2-3*h(i,j)^2*(h(1,j)-h(i-1,j))/(4*deltax^2); b(i,j)=h(i,j)^3/deltax^2+3*h(i,j)^2*(h(1,j)-h(i-1,j))/(4*deltax^2); c(i,j)=-2*h(i,j)^3/deltax^2-2*h(i,j)^3/deltaz^2; d(i,j)=h(i,j)^3/deltaz^2; e(i,j)=h(i,j)^3/deltaz^2; ff(i,j)=(a(i,j)*f(nx,j)+b(i,j)*f(i+1,j)+d(i,j)*f(i,j-1)+e(i,j)*f(i,nz))/(-c(i,j)); elseif i==nx&&j==nz a(i,j)=h(i,j)^3/deltax^2-3*h(i,j)^2*(h(1,j)-h(i-1,j))/(4*deltax^2); b(i,j)=h(i,j)^3/deltax^2+3*h(i,j)^2*(h(1,j)-h(i-1,j))/(4*deltax^2); c(i,j)=-2*h(i,j)^3/deltax^2-2*h(i,j)^3/deltaz^2; d(i,j)=h(i,j)^3/deltaz^2; e(i,j)=h(i,j)^3/deltaz^2; ff(i,j)=(a(i,j)*f(i-1,j)+b(i,j)*f(1,j)+d(i,j)*f(i,j-1)+e(i,j)*f(i,nz-1))/(-c(i,j)); else if ff(i,j)<0 ff(i,j)=0; else end end for i=2:1:nx for j=2:1:nz S=sum(sum(abs(ff-f))); T=sum(sum(abs(f))); end end GAP=S/T; f=ff end |
» 猜你喜欢
CSC难上岸,25年东京大学,早稻田,京都大学多Lab大量招募日本全奖博士生!
已经有6人回复
中国地质大学(北京)工程技术学院薛启龙课题组招收2026年博士生
已经有3人回复
工程热物理与能源利用论文润色/翻译怎么收费?
已经有159人回复
解决渗碳体倾斜角度问题
已经有0人回复
招收硕,博士,博士后及联培:设备状态监测, 可靠性与维护,人工智能,图像处理
已经有0人回复
【26年入学】红外半导体/电子信息/嵌入式视觉/诚招博士生 光电教育部重点实验室
已经有0人回复
读博入学申请
已经有1人回复
求助SambVca最新网址或等效工具
已经有0人回复
粉末热压生坯代加工
已经有0人回复
2026 博士自荐-机器人机构学方向
已经有12人回复
已编辑
已经有4人回复
2楼2016-03-19 00:24:51













=hm*(1+epslong*cos(theta+delta/2));
回复此楼