Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

To resolve issues starting MATLAB on Mac OS X 10.10 (Yosemite) visit: http://www.mathworks.com/matlabcentral/answers/159016

'solve' Command - Only shows one value

Asked by Cristian on 18 Nov 2012

Hi,

In another pc where I test this line:

double(solve('1=2.*sin(m)'))

Return values are 0.5236 and 2.6180. However, in my computer only returns the 0.5236 value. How I show the second value?

Thank you.

4 Comments

Cristian on 18 Nov 2012

My error. Excuse me.

double(solve('1=2*sin(m)'))

Without the dot.

bym on 18 Nov 2012

the documentation says the string can not contain an equals sign. Here are my results (R2008b)

solve('1-2*sin(x)')
ans =
       pi/6
   (5*pi)/6
Walter Roberson on 18 Nov 2012

The equals sign can appear in modern MATLAB.

Cristian

Products

2 Answers

Answer by bym on 18 Nov 2012

try this (without using string input)

syms t
  >> double(solve(1-2.*sin(t)))
ans =
      0.5236
      2.6180

5 Comments

Cristian on 18 Nov 2012

This:

>> solve('1-2*sin(t)')
ans =
1/6*pi
Walter Roberson on 18 Nov 2012

Which MATLAB version are you using?

Cristian on 18 Nov 2012

Version 7.0

bym
Answer by Walter Roberson on 18 Nov 2012

MATLAB 7.0 used Maple for its Symbolic Mathematics Toolbox. Maple only bothers to find a single value in this situation. When Maple is asked to find AllSolutions, it says they are

(1/6)*Pi + (2/3)*Pi*_B1 + 2*Pi*_Z1

The way to read this is that _B1 can be 0 or 1, and _Z1 is any integer (positive or negative). So solutions are at

[...], -11*Pi/6, -7*Pi/6, Pi/6, 5*Pi/6, 13*Pi/6, 17*Pi/6, [...]

0 Comments

Walter Roberson

Contact us