MATLAB Answers

Cristian
0

'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

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

The equals sign can appear in modern MATLAB.

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

This:

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

Which MATLAB version are you using?

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


Join the 15-year community celebration.

Play games and win prizes!

Learn more
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

MATLAB Academy

New to MATLAB?

Learn MATLAB today!