本帖最后由 FIS-8007 于 2022-5-18 15:59 编辑
- clc
- clear
- %%
- %%
- m=100;
- n=100;
- H=ones(m,n);
- A=ones(m,n);
- B=ones(m,n);
- C=ones(m,n);
- D=ones(m,n);
- E=ones(m,n);
- F=ones(m,n);
- % Psi=5*1e-2;
- % lamda=2*z/l;
- d_lamda=2/n;
- phi=2*pi;%任意转角15
- epslion=linspace(-1,1,m);
- theta=linspace(pi/2,3*pi/2,n);
- d_phi=phi/m;
- l=0.18;%m
- d=l/0.8;%m
- H=1+epslion.*cos(phi-theta)';
- surf(theta,epslion,H);
- %% 初始条件
- % p0=2*ou*miu/Psi^2;
- P=zeros(m,n);
- for i=1:m
- for j=1:n
- epslion1(i,j)=epslion(i);
- end
- end
- for i=1:m
- theta1(i,:)=theta(1,:);
- end
- %% 边界条件
- P(1,:)=ones(1,n)*0;%最上面第一行全部是1
- P(m,:)=ones(1,n)*0;%最下面第一行全部是1
- for i=1:m
- P(:,1)=0;%最左边第一列为1,
- P(:,n)=0;%最右边最后一列为1,
- end
- %% 压力分布计算
- P2=ones(m,n);
- for i=2:m-1
- for j=2:n-1
- A(i,j)=((H(i+1,j)-H(i,j))/2)^3;
- B(i,j)=((H(i,j)-H(i-1,j))/2)^3;
- C(i,j)=(d/l*d_phi/d_lamda)^2*((H(i,j+1)-H(i,j))/2)^3;
- D(i,j)=(d/l*d_phi/d_lamda)^2*((H(i,j)-H(i,j-1))/2)^3;
- E(i,j)=A(i,j)+B(i,j)+C(i,j)+D(i,j);
- F(i,j)=3*d_phi*(H(i+1,j)+H(i,j))/2-(H(i,j)-H(i-1,j))/2;
- end
- end
复制代码 上面的没问题,最后迭代求解出来的结果就是nan了,P2迭代格式P2(i,j)=(A(i,j)*P(i+1,j)+B(i,j)*P(i-1,j)+C(i,j)*P(i,j+1)+D(i,j)*P(i,j-1)-F(i,j))/E(i,j) 的分母E也不是0,我感觉是不是数太小了导致的,希望指点迷津
|