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

New to MATLAB?

'solve' Command - Only shows one value

Asked by Cristian

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

Cristian

on 18 Nov 2012

My error. Excuse me.

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

Without the dot.

bym

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

Walter Roberson

on 18 Nov 2012

The equals sign can appear in modern MATLAB.

Cristian

Cristian

Products

2 Answers

Answer by bym

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

Cristian

on 18 Nov 2012

This:

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

Walter Roberson

on 18 Nov 2012

Which MATLAB version are you using?

Cristian

Cristian

on 18 Nov 2012

Version 7.0

bym

bym

Answer by Walter Roberson

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

Walter Roberson

Contact us