MATLAB Answers

Cristian

'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.

Products

2 Answers

bym
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


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


Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply today