Find Intersection between curves

3 Ansichten (letzte 30 Tage)
Anfal AlShehhi
Anfal AlShehhi am 28 Jun. 2022
Kommentiert: KSSV am 28 Jun. 2022
In the intersection part
I tried many functions but still couldn't get the right value

Antworten (2)

KSSV
KSSV am 28 Jun. 2022
  8 Kommentare
Anfal AlShehhi
Anfal AlShehhi am 28 Jun. 2022
When plotting eqauation A & B there is an intersect point between the 2 curves. Am trying to figure this out.
KSSV
KSSV am 28 Jun. 2022
clc; clear all;
% Defined values
atm=0.17 ; % km-1
xt=2.3; % target (x) in m
yt=2.3; % target (y) in m
p=50/100; % percent target
vis=23; %Visibility in km target
er=26; % LRF
dref=500; % LRF in m
pref=85/100; % LRF
vis2=23; % LRF Visbility
T=90/100; % LRF
sc=1; % LRF
% Range
x=0:0.01:10; % in km
A= exp(-2*atm.*x) ; % Attenuation func
B= ((pref/p)*((x.*x)*1000/dref*dref))*(((exp((-2*atm*dref/1000))*10^(-er/10)))/(T*sc)) ;% Sensi func
L1 = [x;A] ; L2 = [x;B] ;
P = InterX(L1,L2) ;

Melden Sie sich an, um zu kommentieren.


Sam Chak
Sam Chak am 28 Jun. 2022
I think the script shared File Exchange works. However, if you want something mathematically simple to understand, you can try fzero(). The approach is similar to what you did previously.
atm = 0.17; % km-1
xt = 2.3; % target (x) in m
yt = 2.3; % target (y) in m
p = 50/100; % percent target
vis = 23; % Visibility in km target
er = 26; % LRF
dref = 500; % LRF in m
pref = 85/100; % LRF
vis2 = 23; % LRF Visbility
T = 90/100; % LRF
sc = 1; % LRF
% Range
x = 0:0.01:10; % in km
A = exp(-2*atm.*x); % Attenuation func
B = ((pref/p)*((x.*x)*1000/dref*dref))*(((exp((-2*atm*dref/1000))*10^(-er/10)))/(T*sc)); % Sensi func
% Plotting two curves initially
plot(x, A, x, B)
ylim([0 1])
% Finding the intersection point
f1 = @(x) exp(-2*atm.*x);
f2 = @(x) ((pref/p)*((x.*x)*1000/dref*dref))*(((exp((-2*atm*dref/1000))*10^(-er/10)))/(T*sc));
f = @(x) f1(x) - f2(x);
x0 = 0.5; % initial guess value (intersection is somewhere near x = 0.5)
xsol = fzero(f, x0)
xsol = 0.4621
ysol = f1(xsol)
ysol = 0.8546
% Markng the intersection point
plot(x, A, x, B), hold on
plot(xsol, ysol, 'mo', 'MarkerSize', 14), hold on
ylim([0 1])

Kategorien

Mehr zu Kernel Creation from MATLAB Code finden Sie in Help Center und File Exchange

Produkte


Version

R2022a

Community Treasure Hunt

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

Start Hunting!

Translated by