我是靠谱客的博主 冷静绿草,最近开发中收集的这篇文章主要介绍matlab运行一直正忙,matlab一直显示正忙,没反应,求大神帮助,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

代码如下,运行一直处于正忙状态,求大神帮忙看看代码有什么问题:Q

%% 定义 (x,t) 平面上的网格点坐标

clear;clc;

dx=0.05;              % x 方向的步长

dy=0.05;

H=0.4;

L=0.4;% t 方向的步长

x=0:dx:0.4;             % 得到 x 的序列 (离散点 x 坐标)

y=0:dy:0.4;  % 得到 t 的序列 (离散点 t 坐标)

v=2;cp=1.01;tcw=22.1;hfg=2500;ms=v*1.293*0.3*0.3;mp=v*1.293*0.3*0.3;

% hs=54*v^0.7;hp=54*v^0.7;

hs=(0.023*(v/(15*10^(-6)))^0.8*0.7^0.3*0.026)/(2*0.4*0.005/(0.4+0.005))^0.2;hp=(0.023*(v/(15*10^(-6)))^0.8*0.7^0.3*0.026)/(2*0.4*0.005/(0.4+0.005))^0.2;

hms=hs/cp;hmp=hp/cp;

NTUS=hs*H/(cp*ms);

NTUms=hms*H/(ms);

NTUP=hp*L/(cp*mp);

NTUmp=hmp*L/(cp*mp);

%% 设置偏微分方程的初始条件, 边界条件

M=length(x)-1;

N=length(y)-1;

TP=ones(N+1,M+1);

TS=ones(N+1,M+1);

WS=ones(N+1,M+1);

WP=ones(N+1,M+1);

TW=ones(N+1,M+1);

W=ones(N+1,M+1);

E=ones(1,400);

TA=ones(1,400);

TP(:,1)=34;          % 设置初值条件

TS(1,:)=24;

WP(:,1)=0.0168;

WS(1,:)=0.0112;

%% 根据推导出的差分方程, 计算偏微分方程的数值解

tic

for k=1:N

tic

for j=1:M

TA(1)=15;

tic

for i=1:400

Tw=273.15+TA(i);

a=[-5800.22,1.3914993,-0.04864,0.000041764768,-0.000000014452093,6.5459673];

yw=a(1)/Tw+a(2)+a(3)*Tw+a(4)*Tw^2+a(5)*Tw^3+a(6)*log(Tw);

xw=exp(yw);

Aw=1;bw=Aw*xw;

W(k,j)=0.622*(bw/(101325-bw));

if WP(k,j)<=W(k,j)

while k>=2

TS(k,j)= TS(k-1,j)+dy*NTUS*(TW(k-1,j)-TS(k-1,j));

WS(k,j)= WS(k-1,j)+dy*NTUms*(W(k-1,j)-WS(k-1,j));

end

TW(k,j)=(hp*TP(k,j)+hs*TS(k,j)-(W(k,j)-WS(k,j))*hfg*hms)/(hs+hp-(W(k,j)-WS(k,j))*cp*hms);

E(i)=abs(TA(i)-TW(k,j));

if E(i)<=0.1

TW(k,j)=TA(i);

WP(k,j+1)=WP(k,j);

TP(k,j+1)= TP(k,j)+dy*NTUP*(TP(k,j)-TW(k,j));

break;

else

TA(i+1)=TA(i)+0.05;

end

%        TW(k,j)=(ms*hfg*NTUms*(W(k,j)-WS(k,j)+mp*cp*NTUS*TS(k,j)+mp*cp*NTUP*TP(k,j)))/(mp*cp*NTUS+mp*cp*NTUms*(W(k,j)-WS(k,j)));

else

while k>=2

TS(k,j)= TS(k-1,j)+dy*NTUS*(TW(k-1,j)-TS(k-1,j));

WS(k,j)= WS(k-1,j)+dy*NTUms*(W(k-1,j)-WS(k-1,j));

end

TW(k,j)=(hs*TS(k,j)-hfg*hms*(W(k,j)-WS(k,j))-hp*TP(k,j)+(hfg+cp*tcw)*hmp*(WP(k,j)-W(k,j)))/(hs-hp-(W(k,j)-WS(k,j))*hmp*cp);

E(i)=abs(TA(i)-TW(k,j));

if  E(i)<=0.1

TW(k,j)=TA(i);

TS(k+1,j)= TS(k,j)+dy*NTUS*(TW(k,j)-TS(k,j));

WS(k+1,j)= WS(k,j)+dy*NTUms*(W(k,j)-WS(k,j));

TP(k,j+1)= TP(k,j)+dx*NTUP*(TP(k,j)-TW(k,j));

WP(k,j+1)= WP(k,j)+dx*NTUmp*(WP(k,j)-W(k,j));

break;

else

TA(i+1)=TA(i)+0.05;

end

end

end

toc

end

toc

end

toc

%% 绘制偏微分方程的计算结果: (x, t, Phi) 的三维网格图

figure

set(gcf,'units','normalized','position',[0.2 0.2 0.6 0.6],'name','三维图');  % 设置 figure 窗口的位置和尺寸

[x,y]=meshgrid(x,y);   % 得到所有计算点的 x 坐标和 t 坐标

mesh(x,y,TS)          % 绘制 (x,t,Phi) 的三维网格图

xlabel('x')

ylabel('y')

zlabel('TS(x,y)')

title('扩散方程的数值模拟')

view(75,50)

最后

以上就是冷静绿草为你收集整理的matlab运行一直正忙,matlab一直显示正忙,没反应,求大神帮助的全部内容,希望文章能够帮你解决matlab运行一直正忙,matlab一直显示正忙,没反应,求大神帮助所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(43)

评论列表共有 0 条评论

立即
投稿
返回
顶部