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

조회 수: 1 (최근 30일)
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.

채택된 답변

Star Strider
Star Strider 2019년 11월 17일
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
jojo
jojo 2019년 11월 18일
I did not post them initially. I was just explaining that 'h' is to be assigned to some x and y parameters that take singular values. Is there a way of writing x and y such that they can take both single digits and arrays size of h? like x(:,3) something like that. I am knew to matlab and I do not fully grasp array slicing and indexing yet. Thanks.
Star Strider
Star Strider 2019년 11월 18일
I will need more details.
It depends on how you want to define ‘h’ and what you want to do.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Number Theory에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by