Warning: Function figure has the same name as a MATLAB builtin.

5 ビュー (過去 30 日間)
Cumpaniciu Alexandru
Cumpaniciu Alexandru 2020 年 5 月 23 日
コメント済み: Walter Roberson 2020 年 5 月 24 日
HI,I am new to Matlab and I am trying this code,but it is not working...can you help me please.
Warning: Function figure has the same name as a MATLAB builtin. We suggest you rename the function to avoid a potential name conflict.\
how can i do this? what do i need to change?
THIS CODE WAS TESTED IN MATLAB 2020a...
lambda = 1866;
delta1=0.309;
delta2=0.251;
rho=0.457 ;
alpha = 0.177;
mu = 194;
omega = 0.256 ;
eta1 = 0.341 ;
eta2= 3.78 ;
beta = 0.569;
c = 15.5 ;
mu0 = 0.087;
mu1 = 0.172;
%bmax = 1.8 ; % backward b if u r c at i o n
bmax =10.8;% forward b if u r c at i o n
rend=100000;
rlst=linspace(0,2,rend) ;
mylist1=zeros( 1, length (rlst));
mylist2=zeros( 1 , length ( rlst ));
mylist3=zeros(1,length (rlst));
Q1= mu + alpha + delta1 ;
Q2= delta2 + mu + omega ;
for i =1:1:rend
r=rlst(i) ;
% Ao, A1 , A2 , A3 are the c o e f f i c i e n t s of the polynomial obtained t the
% endemic equilibrium point E*
Ao = beta * c * (mu0 + Q1 ) * (mu0* ( delta2 * eta2 + eta1 * rho ) + Q2* ( delta1*eta2+rho ) ) ;
A1 = beta * c * ( delta2 * eta2 + eta1 * rho ) * (mu0* ( 2 *bmax*mu1 + bmax*Q1+lambda) + bmax*mu1*Q1) + Q2* ( beta * c * delta1 * eta2 * ( bmax* (mu0 + mu1)-lambda) + beta * c * rho * ( bmax*mu1- lambda ) + mu0* rho * ( beta *bmax* c + mu )+Q1* ( 2 * beta *bmax* c * delta1 * eta2 + rho * ( 2 * beta *bmax* c + mu) ) ) ;
A2= bmax* (Q2* ( beta * c * delta1 * eta2 * ( bmax*mu1-2*lambda )+rho * (mu1* ( beta *bmax* c + mu )-2* beta * c *lambda + mu*mu0) +Q1* ( beta *bmax* c * delta1 * eta2 + beta *bmax* c * rho + 2*mu * rho ) ) +beta * c * ( delta2 * eta2 + eta1 * rho ) * (mu1* ( bmax* (mu1 + Q1) + lambda ) +lambda*mu0));
A3= bmax^2*rho *Q2*mu* (Q1 + mu1)*(1-r ) ;
mypoly=[Ao, A1 , A2 ,A3 ] ;
sol=roots( mypoly ) ; % we plot the root s ( sol ) of the polynomial mypoly
mylist1(i)=sol(1);
mylist2( i )= sol( 2 ) ;
mylist3 ( i )= sol( 3 ) ;
% we r epl a c e negative root s by zero and only st o r e the r e a l p o s it i v e
% root s into myli st
if imag( mylist1 (i))~=0
mylist1(i)=0;
else
mylist1 ( i )=max( 0 , mylist1 ( i) ) ;
end
if imag( mylist2 ( i ))~=0
mylist2 ( i ) = 0 ;
else
mylist2 ( i )=max( 0 , mylist2 ( i ) ) ;
end
if imag( mylist3 ( i ))~=0
mylist3( i ) = 0 ;
else
mylist3(i)= max( 0 , mylist3 ( i ) ) ;
end
end
% we determine the number i from the r l i s t fo r each fun ction myli st
% where the root of the polynomial i s r e a l and p o s it i v e .
lstpos=find( mylist1 ~=0);
index1=min( lstpos ) ;
index2=max( lstpos ) ;
mlstpos=find ( mylist2 ~=0);
index3=min( mlstpos ) ;
index4=max( mlstpos ) ;
vlstpos=find ( mylist3 ~=0);
index5=min(vlstpos) ;
index6=max(vlstpos) ;
% we formulate the di s ea s e f r e e equilibrium l i n e s on the x−a xi s
s=linspace( 0 ,1,rend) ;
z=linspace (1,1.5, rend);
y1= + 0*s ;
y2= + 0*z ;
%a xi s ( [ 0 . 3 , 1 . 5 , 0 , 5 ] ) % backward b if u r c at i o n
axis ( [ 0.7 , 1.5 , 0, 4 ] ) % forward b if u r c at i o n
hold on
%we plot the p o s it i v e root s of the polynomial
%plot ( r l s t ( index1 : index2 ) , myli st1 ( index1 : index2 ) , ’ b−’ ,
%r l s t ( index3 : index4 ) , myli st2 ( index3 : index4 ) , ’ b−’ , r l s t ( index5 : index6 ) ,
%myli st3 ( index5 : index6 ) , ’ r −−’,’ linewidth ’ ,2)% bacward b if u r c at i o n
plot(rlst( index1 : index2 ), mylist1 ( index1 : index2 ) ,' b-',rlst( index3 : index4 ),mylist2( index3 : index4 ) ,' b-',rlst( index5 : index6 ) , mylist3 ( index5 : index6 ) , 'b−' , 'linewidth ' ,2)% forwar
plot ( s , y1 , 'b− ' , 'linewidth ' , 2 )
plot ( z , y2 , ' r −−',' linewidth' , 2 )
%x l im it ( [ 0 . 2 , 1 . 8 ] )
xlabel ( ' Reproduction number Rh ' )
ylabel ( 'Infected population s i z e I ( t ) ' )
hold off
  2 件のコメント
Stijn Haenen
Stijn Haenen 2020 年 5 月 23 日
You try to define a variable or function which has the same name as a standard function of matlab, you can use capital letters or _ when you define your variables or function to avoid this problem.
Cumpaniciu Alexandru
Cumpaniciu Alexandru 2020 年 5 月 23 日
Thanks,Stijn Haenen!

サインインしてコメントする。

採用された回答

Walter Roberson
Walter Roberson 2020 年 5 月 23 日
You named your file figure.m which will cause problems. You should rename the file for your code.
  9 件のコメント
Cumpaniciu Alexandru
Cumpaniciu Alexandru 2020 年 5 月 24 日
I need define an function or somthing else?
If so, how could I do that?
what are the outputs and inputs for my code?
Walter Roberson
Walter Roberson 2020 年 5 月 24 日
What is the exact name of the the file you are using for this code?
What shows up if you you try
which -all figure

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeSignal Processing Toolbox についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by