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))~=0mylist1(i)=0;elsemylist1 ( i )=max( 0 , mylist1 ( i) ) ;endif imag( mylist2 ( i ))~=0mylist2 ( i ) = 0 ;elsemylist2 ( i )=max( 0 , mylist2 ( i ) ) ;endif imag( mylist3 ( i ))~=0mylist3( i ) = 0 ;elsemylist3(i)= max( 0 , mylist3 ( i ) ) ;endend% 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 nhold 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
Best Answer