Need help finding intersection of two curves using fzero function

4 次查看(过去 30 天)
I'm new to MatLab (just started using it 2 days ago), and currently my goal is for the program to spit out the values of the points of intersections of two curves using the fzero command. This is my code:
syms x
y1 = x^8;
y2 = power(4,x);
f(x) = y1-y2;
fzero (f,-0.86)
The x value of the point of intersection is supposed to be x=-0.861345, however when I enter this code in, it outputs
ans =
-0.8357
, which isn't the correct value. When I change the value of the number inside the fzero command, it outputs a different number each time. How do I fix this? Thank you.

采纳的回答

Star Strider
Star Strider 2019-9-6
With symbolic variables, use the vpasolve function:
syms x
y1 = x^8;
y2 = power(4,x);
f(x) = y1-y2;
intersection = vpasolve(f)
producing:
intersection =
-0.8613453323096513195240262391528
To use fzero, first use the matlabFunction function to create ‘f’ as an anonymous function (here):
ffcn = matlabFunction(f)
intersection = fzero(ffcn, -1)
producing:
intersection =
-0.861345332309651
Experiment to get the result you want.

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Optimization 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by