フィルターのクリア

Taking a long time to run, what is the problem?

3 ビュー (過去 30 日間)
raha ahmadi
raha ahmadi 2021 年 5 月 22 日
Hi , I really nead help with this code. I dont know what makes it so long. I want to solve a PDE by extending it based on orthogonal basis and at last I have a matrix which I need to calculate its exponential. I attached the data used in the code.
I really appreciate any help
clc
clear
close all
hair=20;
Ta=300;
G=3.8364e14+2.9841e14;
alpharev=3.014e2;
alpha=alpharev^-1;
K=250;
g1=0;
g2=3.8364e14;
g3=0;
g4=2.9841e14;
%%
load SmoothPhianddPhidy.mat ;
V=11;
nMax=7;
N2=2^nMax;
v=11/11;
xScEx=0:v/N2:V;
figure
plot(xSc,Phi)
title('\phi')
figure
dPhidy=dPhismudyfinal;
plot(xSc,dPhidy)
title('d\phi/dy')
figure
d2phidy2=d2phidyfinal';
plot(xSc,d2phidy2)
title('d^2\phi/dy^2')
%%
yend=1144;
yEnd=147841;
yF=149249;% (11+1155)*N2+1
xScEXT=-11:v/N2:1155;
%%
tic
% number of scaling functions in -11:1155
mPrimMax=yF-numel(Phi);
Imax=(mPrimMax-1)/N2+1;
iMax=1155;
d=zeros(1,iMax);
m=zeros(1,iMax);
mPrim=m;
A=zeros(iMax,iMax);
mMat=A;
d2phid2ym=zeros(iMax,yF);
Phim=d2phid2ym;
dphidy=Phim;
dfidyLM=zeros(1,iMax);
fiLM=dfidyLM;
y0=1409;
dfidy0M=dfidyLM;
fi0M=dfidyLM;
tic
for i=1:iMax
m(i)=1+(i-1)*N2;
d2phid2ym(i,:)=[zeros(1,m(i)),d2phidy2,zeros(1,(yF-m(i)-numel(d2phidy2)))];
Phim(i,:)=[zeros(1,m(i)),Phi,zeros(1,yF-m(i)-numel(Phi))];
dphidy(i,:)=[zeros(1,m(i)),dPhidy,zeros(1,(yF-m(i)-numel(dPhidy)))];
dfidyLM(i)=dphidy(yEnd-m(i));
fiLM(i)=Phim(yEnd-m(i));
if y0-m(i)>0 && y0-m(i)<11
dfidy0M(i)=dphidy(y0-m(i));
fi0M(i)=Phim(y0-m(i));
else
dfidy0M(i)=0;
fi0M(i)=0;
end
end
toc
tic
for k=1:iMax
for l=1:iMax
int1=Phim(l,:).*Phim(k,:);
int2=Phim(l,:).*d2phid2ym(k,:);
yy=linspace(1409,yEnd,149249);
y1=linspace(1409,41985,yF);
y2=linspace(41985,76929,yF);
y3=linspace(76929,88577,yF);
y4=linspace(88577,yEnd,yF);
%
A(k,l)=trapz(yy,int1);
mMat(k,l)=fiLM(l)*(alpha*hair/K*fiLM(k)-alpha*dfidyLM(k))+fi0M(l)...
*(alpha*hair/K*fi0M(k)+alpha*dfidy0M(k))...
+alpha*trapz(yy,int2);
d(k)=+alpha*hair/K*Ta*(-fiLM(k)-fi0M(k))+alpha*( g1/K*trapz(y1,Phim(k,:))+...
g2/K*trapz(y2,Phim(k,:))+g3/K*trapz(y3,...
Phim(k,:))+g4/K*trapz(y4,Phim(k,:)));
end
end
toc

回答 (0 件)

カテゴリ

Help Center および File ExchangeBoundary Conditions についてさらに検索

製品

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by