Find intersection between two curves
現在この質問をフォロー中です
- フォローしているコンテンツ フィードに更新が表示されます。
- コミュニケーション基本設定に応じて電子メールを受け取ることができます。
エラーが発生しました
ページに変更が加えられたため、アクションを完了できません。ページを再度読み込み、更新された状態を確認してください。
古いコメントを表示
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
採用された回答
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 件のコメント
Akash Gooljar
2021 年 3 月 7 日
Hello sir , thank you for the detailed explanations i did try but did not got the intersections
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
2021 年 3 月 7 日
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
2021 年 3 月 7 日
i did try it like this,but im getting some errors
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)
@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
2023 年 7 月 6 日
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
2023 年 7 月 6 日
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
その他の回答 (0 件)
カテゴリ
ヘルプ センター および File Exchange で Interpolation についてさらに検索
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- 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
- United Kingdom (English)
