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

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

Cristian on 18 Nov 2012

My error. Excuse me.

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

Without the dot.

proecsm 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

Answer by proecsm on 18 Nov 2012

try this (without using string input)

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

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, [...]
```