For loop with constraint as a function
4 views (last 30 days)
Show older comments
Hi,
Here is my code :
%Parameters%
a=1.5;
gamma=0.5
lambda=0.07
r=0.0025
q=0.01
z=0.3
p=0.45
dc=0.4 ;
de=0.5 ;
alphae=0.20 ;
alphac=0.15;
ratio1=(lambda*gamma*(1-p))/(r+q)
ratio2=(lambda*gamma*p)/(r+q);
upperlimity1=a;
upperlimity2=a;
y1bar1=z;
y2bar1=z;
y1bar2=z+de*(1+ratio1*(1-alphae));
y2bar2=z+dc*(1+ratio2*(1-alphae)*(1-alphac));
% Values%
syms y1 y2
D=(z+ratio1*(1-alphae)*y1)/(1+ratio1*(1-alphae));
E= (z+ratio2*(1-alphae)*(1-alphac)*y2)/(1+ratio2*(1-alphae)*(1-alphac));
F= (z+ratio2*(1-alphae)*(1-alphac)*y2bar2+ratio2*(1-alphae)*alphac*(y2bar2-dc))/(1+ratio2*(1-alphae)*(1-alphac)+ratio2*(1-alphae)*alphac);
%%Function - Red line%%
redline =solve(D==E, y2);
pointB=solve(F== D, y1);
%%Figure
y2=0:0.01:a;
plot(y1bar1,y2,'k-');
hold on
y2=0:0.01:a;
plot(y1bar2,y2,'k-');
hold on
y1=0:0.01:a;
plot(y1,y2bar1,'k-');
hold on
y1=0:0.01:a;
plot(y1,y2bar2,'k-');
hold on
xlabel('Y1'); ylabel('Y2')
y1=z:0.01:a ;
y2=z:0.01:a;
redline = matlabFunction( redline );
y1=y1bar1:0.01:pointB;
y2=y2bar1:0.01:y2bar2;
plot(y1 , redline(y1),'r-');
hold on
I have a black rectangle in the center of the figure. I want to compute an integral A for values of Y1 and Y2 on the right side of the red line Y2=f(Y1) and an integral B for values of Y1 and Y2 on the left side of the red line.
for y1=y1bar1: y1bar2;
for y2=y2bar1: y2bar2;
I cannot write :
for y2 > f(y1) % since y2=f(y1)
How can I manage to do that ? Thanks a lot, Mo
0 Comments
Answers (0)
See Also
Categories
Find more on Error Functions 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!