MATLAB Answers

solve an equation using solve() produces an array instead of a unique value

2 views (last 30 days)
jojo
jojo on 17 Nov 2019
Commented: Star Strider on 18 Nov 2019
d = 32*h + 200*(32*h - 8)*((4*h - 1)^2 - 1) - 16
I am trying to solve for h using "solve(d,h)" , however, I keep getting an array for of solutions!
[1/2
1/8 - (7*2^(1/2))/80
(7*2^(1/2))/80 + 1/8 ]
How could I obtain a unique value for h? The solution does not seem right. Is there a better function to be used ?
Thanks.

Accepted Answer

Star Strider
Star Strider on 17 Nov 2019
The result is correct. There are three roots.
Plot it to see the result:
syms h
d = 32*h + 200*(32*h - 8)*((4*h - 1)^2 - 1) - 16;
ds = solve(d)
figure
fplot(d, [-0.1 0.6])
hold on
plot(ds, zeros(size(ds)), 'pg')
hold off
grid
  6 Comments
Star Strider
Star Strider on 18 Nov 2019
I will need more details.
It depends on how you want to define ‘h’ and what you want to do.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!

Translated by