为什么我算的结果(P2)是Nan,分母也不是0呀。
Show older comments
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
<blockquote>maxt=1;
迭代格式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,我感觉是不是数太小了导致的,希望指点迷津
Accepted Answer
More Answers (0)
Categories
Find more on Logical in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!