Find and display intersections using fzero

14 次查看(过去 30 天)
I have two functions: f(x) = x.^2-1, f(g) = exp(x/5) in a linspace(-2,2). I need to indicate on the graph where f = g using the fzero function. Also I would like to keep it in a single m file.
Thanks

采纳的回答

Brendan Hamm
Brendan Hamm 2015-3-12
编辑:Brendan Hamm 2015-3-12
If f(x) = g(x) then f(x) - g(x) = 0. So we need to define h(x) = f(x) - g(x) and find where h(x) = 0. This is exactly what fzero is made for.
h = @(x) x.^2 - 1 - exp(x/5); % Creates a function handle for your function
Now let's plot and see if we can find a point close to where this function is zero.
x = -2:0.01:2;
plot(x,h(x));
Looks like -1.5 and 1.5 are close.
firstZero = fzero(h,-1.5);
secondZero = fzero(h,1.5);
Now visualize these on the plot:
hold on
plot(firstZero,h(firstZero),'ro');
plot(secondZero,h(secondZero),'ro');
hold off
  2 个评论
Carlos
Carlos 2015-3-12
Thanks that's exactly what I needed. I used f(firstZero) and g(firstZero) rather than h to graph the point of intersection.
Brendan Hamm
Brendan Hamm 2015-3-13
Awesome. If you found this to solve your problem, please accept the answer so others with similar issues can find the solution.

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Graph and Network Algorithms 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by