How to finde intersections ?

1 view (last 30 days)
Hossein Alishahi
Hossein Alishahi on 9 Mar 2021
Commented: Jan on 9 Mar 2021
Hi,
I hope you are Keeping safe.
I have a code as belows
clear all
clc
close all
alpha1=input('Enter positive "alpha1"?');
alpha2=input('Enter positive "alpha2"?');
beta1=input('Enter positive "beta1"?');
beta2=input('Enter positive "beta2"?');
lambda=input('Enter positive "lambda"?');
eta1=input('Enter positive "eta1"?');
eta2=input('Enter positive "eta2"?');
P=input('Enter positive "P"?');
%% Feasible Area
M=max(P,eta1); N=max(P,eta2);
a = -1:M;m = 0; c = eta2; b = m * a + c;
plot(a, b, '--','Color', 'black')
hold on
b = -1:N; m = 0; c = eta1; b = m * a + c;
plot(b, a, ':','Color', 'black','LineWidth',2)
eta1=min (eta1,P); eta2=min (eta2,P);
if eta1+eta2<P
X=[0 0 eta1 eta1]; Y=[0 eta2 eta2 0];
fill(X,Y,[0.85 0.85 0.85]);
else
X=[0 0 P-eta2 eta1 eta1]; Y=[0 eta2 eta2 P-eta1 0];
fill(X,Y,[0.85 0.85 0.85]); axis([-1 P+eta1+1 -1 P+eta2+1])
end
g = @(a,b) a+b-P;
fimplicit(g,[0 P 0 P],'-.','Color', 'black')
f = @(a,b) log((1+alpha1*a./(1+alpha2*b))) -lambda*log((1+beta1*a./(1+beta2*b)));
fimplicit(f,[-1 P+eta1+1 -1 P+eta2+1], 'Color','green')
hold on
and want to find intersection between lines . For example consider
alpha1=beta1=1, alpha2=0.2, beta2=2, ambda=2, eta1=3, eta2=4 and P=2
Could you please give me how to find and plot the intersections points.
MAny Thanks in advance
  4 Comments
Hossein Alishahi
Hossein Alishahi on 9 Mar 2021
please try it !
%% Input Parameters
clear all
clc
close all
alpha1=input('Enter positive "alpha1"?');
alpha2=input('Enter positive "alpha2"?');
beta1=input('Enter positive "beta1"?');
beta2=input('Enter positive "beta2"?');
lambda=input('Enter positive "lambda"?');
eta1=input('Enter positive "eta1"?');
eta2=input('Enter positive "eta2"?');
P=input('Enter positive "P"?');
%% Feasible Area
M=max(P,eta1); N=max(P,eta2);
a = -1:M;m = 0; c = eta2; b = m * a + c;
plot(a, b, '--','Color', 'black')
hold on
b = -1:N; m = 0; c = eta1; b = m * a + c;
plot(b, a, ':','Color', 'black','LineWidth',2)
eta1=min (eta1,P); eta2=min (eta2,P);
if eta1+eta2<P
X=[0 0 eta1 eta1]; Y=[0 eta2 eta2 0];
fill(X,Y,[0.85 0.85 0.85]);
else
X=[0 0 P-eta2 eta1 eta1]; Y=[0 eta2 eta2 P-eta1 0];
fill(X,Y,[0.85 0.85 0.85]); axis([-1 P+eta1+1 -1 P+eta2+1])
end
g = @(a,b) a+b-P;
fimplicit(g,[0 P 0 P],'-.','Color', 'black')
f = @(a,b) log((1+alpha1*a./(1+alpha2*b))) -lambda*log((1+beta1*a./(1+beta2*b)));
fimplicit(f,[-1 P+eta1+1 -1 P+eta2+1], 'Color','green')
hold on
grid on
%% Legend
xlabel('{\rho_{1}}');
ylabel('{\rho_{2}}');
legend('\eta_{2}','\eta_{1}','Feasible Area','{\rho_{1}}+{\rho_{2}}={\rho}','{log}({1}+({\alpha_{1}} {\rho_{1}}))/({1}+{\alpha_{2}} {\rho_{2}})={\lambda} {log}{1}+({\beta_{1}} {\rho_{1}})/({1}+{\beta_{2}} {\rho_{2}})','Location','northeast')
Jan
Jan on 9 Mar 2021
You have asked some questions aboput the same problem already. It is still not clear, which intersections your are searching for. "intersection between lines" - between which lines? You post some code, which seems to work fine. But what exactly is your question?

Sign in to comment.

Answers (0)

Categories

Find more on Dates and Time in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!