97 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Akash Gooljar il 7 Mar 2021
Commentato: Torsten il 6 Lug 2023
Risposta accettata: Jan
Apri in MATLAB Online
Hello i have plot two curves and i would like to create a function so as to find the intersections between the two curves
Here is my code :
x=-100*pi:pi/32:100*pi;
y1=exp(x);
y2=sin(x);
figure(1)
plot(y1,'b');hold on
plot(y2,'g');
hold off
grid
0 Commenti Mostra -2 commenti meno recentiNascondi -2 commenti meno recenti
Mostra -2 commenti meno recentiNascondi -2 commenti meno recenti
Accedi per commentare.
Accedi per rispondere a questa domanda.
Risposta accettata
Jan il 7 Mar 2021
Modificato: Jan il 7 Mar 2021
The intersection is the location, where both functions have the same value. Then their difference is 0.
You can use fzero with the function: @(x) exp(x) - sin(x).
8 Commenti Mostra 6 commenti meno recentiNascondi 6 commenti meno recenti
Mostra 6 commenti meno recentiNascondi 6 commenti meno recenti
Akash Gooljar il 7 Mar 2021
Link diretto a questo commento
https://it.mathworks.com/matlabcentral/answers/765326-find-intersection-between-two-curves#comment_1374296
Hello sir , thank you for the detailed explanations i did try but did not got the intersections
Jan il 7 Mar 2021
Link diretto a questo commento
https://it.mathworks.com/matlabcentral/answers/765326-find-intersection-between-two-curves#comment_1374321
Modificato: Jan il 7 Mar 2021
Apri in MATLAB Online
Please post the code you have tried and explain, what "did not get" mean.
What is a meaningul range for searching for intersections? exp(x) is growing very fast, while sin(x) lives inside [-1, +1]. So maybe:
x = linspace(-4*pi, pi, 1000);
y1 = exp(x);
y2 = sin(x);
figure
plot(x, y1, 'b', x, y2, 'g');
Then you could start the search for the zeros of @(x) exp(x) - sin(x) at e.g. -3 - these are the two inputs for fzero().
Akash Gooljar il 7 Mar 2021
Link diretto a questo commento
https://it.mathworks.com/matlabcentral/answers/765326-find-intersection-between-two-curves#comment_1374541
x = linspace(-4*pi, pi, 1000);
y1 = exp(x);
y2 = sin(x);
figure
plot(x, y1, 'b', x, y2, 'g');
x1=y1 -y2;
fzero = (x1,-3);
Akash Gooljar il 7 Mar 2021
Link diretto a questo commento
https://it.mathworks.com/matlabcentral/answers/765326-find-intersection-between-two-curves#comment_1374551
i did try it like this,but im getting some errors
Jan il 8 Mar 2021
Link diretto a questo commento
https://it.mathworks.com/matlabcentral/answers/765326-find-intersection-between-two-curves#comment_1376041
Modificato: Jan il 8 Mar 2021
Apri in MATLAB Online
Please post the error message, if you mention an error.
fzero is a function. You have to provide a function as 1st input:
fzero(@(x) exp(x) - sin(x), -3)
Jan il 16 Ott 2022
Link diretto a questo commento
https://it.mathworks.com/matlabcentral/answers/765326-find-intersection-between-two-curves#comment_2415863
Modificato: Jan il 16 Ott 2022
@Star Strider: What a pitty that you have deleted your answer. It was a valuable addition to my answer: You have considered the situation, that the input data are provided as vectors, while I suggested a method, when they are functions.
If somebody searchs in the forum for "intersection between two curves", your answer might have been more suiting then my one.
Your answers are too valuable to be deleted. They are useful and do not impede the readers.
I thought of unselecting my answer and accepting yours to keep it in the forum. But this cannot be a general strategy.
ANA MARIA SANCHEZ GONZALEZ il 6 Lug 2023
Link diretto a questo commento
https://it.mathworks.com/matlabcentral/answers/765326-find-intersection-between-two-curves#comment_2807418
Hi guys! I need to find the intersection between two curves but one of them is given as vectors (experimental data). Could you please help me with that? Thank you in advance!
Torsten il 6 Lug 2023
Link diretto a questo commento
https://it.mathworks.com/matlabcentral/answers/765326-find-intersection-between-two-curves#comment_2807468
Apri in MATLAB Online
Is interpolating the measurement data by a spline curve, taking the difference of the two so created curves and searching for a zero of this difference function an option ?
% Artificial measurement data
x = 0:0.1:2;
fi_measurement = x.^2;
% Second curve
f = @(x) x;
% Fit measurement data by spline curve
f_measurement = @(xq) interp1(x,fi_measurement,xq,'spline');
% Find intersection(s) between spline curve and second curve
sol1 = fzero(@(x)f(x)-f_measurement(x),0.5)
sol1 = -1.0469e-22
sol2 = fzero(@(x)f(x)-f_measurement(x),1.5)
sol2 = 1
Accedi per commentare.
Più risposte (0)
Accedi per rispondere a questa domanda.
Vedere anche
Categorie
AI, Data Science, and StatisticsCurve Fitting ToolboxSplinesSpline Postprocessing
Scopri di più su Spline Postprocessing in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
Si è verificato un errore
Impossibile completare l'azione a causa delle modifiche apportate alla pagina. Ricarica la pagina per vedere lo stato aggiornato.
Seleziona un sito web
Seleziona un sito web per visualizzare contenuto tradotto dove disponibile e vedere eventi e offerte locali. In base alla tua area geografica, ti consigliamo di selezionare: .
Puoi anche selezionare un sito web dal seguente elenco:
Americhe
- América Latina (Español)
- Canada (English)
- United States (English)
Europa
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- Deutsch
- English
- Français
- United Kingdom(English)
Asia-Pacifico
- Australia (English)
- India (English)
- New Zealand (English)
- 中国
- 日本Japanese (日本語)
- 한국Korean (한국어)
Contatta l’ufficio locale