Clear Filters
Clear Filters

How do I plot a function that has a value given

1 view (last 30 days)
I'm trying to graph this question from here https://math.stackexchange.com/questions/2638189/express-density-as-a-ratio-of-height
I'm given values for D2 and D1, and then get the ratio D2/D1. I end up with an
equation 4*D2/D1 = 3x^2-x^3, and I need to acquire x from that equation and then plot it.
I tried doing the root of this equation, and when I tried to graph x, D2/D1, it says that "Vectors must be the same length".

Answers (2)

Star Strider
Star Strider on 7 Feb 2018
Edited: Star Strider on 7 Feb 2018
Since you did not post your code, I cannot help you troubleshoot it.
Two options —
Symbolic:
syms x
DRatio = 3*x^2-x^3;
xroot = solve(DRatio == 0)
xroot =
0
0
3
Numeric:
xroots = roots([-1 3 0 0])
xroots =
0
0
3
  5 Comments
Star Strider
Star Strider on 7 Feb 2018
Try this:
xroots = arrayfun(@(a) roots([1 -3 0 4*a]), [0.4, 0.87, 0.84,0.88], 'Uni',0)
Roots = [xroots{:}]'
Roots =
2.7952 0.8659 -0.6611
2.3916 1.5483 -0.9398
2.4318 1.4934 -0.9252
2.3770 1.5676 -0.9446

Sign in to comment.


Walter Roberson
Walter Roberson on 7 Feb 2018
For vector D1 and D2, you need D2./D1 instead of D2/D1

Categories

Find more on Function Creation in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!