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

# what is the syntaxis for numerical solvers?

Asked by Petr on 12 Dec 2012

Hi, for the last hour I am trying to start the numerical solver..

The copy-past from "help"

```numeric::solve([sin(x) = y^2 - 1, cos(x) = y], [x, y]);
```

gives

```Error: Unexpected MATLAB operator
```

for '::'

I can also use the other syntaxis option, which works fine in my script:

syms ha r2 positive; [h,rcone] = solve( hh(ha,r2) == 0, VV(ha,r2) == V0);

If use this, how do I define the range of ha and r2 in which I want the solutions?

## Products

No products are associated with this question.

Answer by Petr on 12 Dec 2012

thanks! but.. how to introduce the range in which I look for solutions? say, x=1..3 ? what's the syntax?

Walter Roberson on 12 Dec 2012
```syms x y
feval(symengine, 'numeric::solve', [sin(x) = y^2 - 1, cos(x) = y], [sym('x=1..3'), y])
```
Petr on 13 Dec 2012

! I found the way: using assumptions

Thanks

Walter Roberson on 13 Dec 2012

Note this from the numeric::solve documentation page:

```Note:   In contrast to the symbolic solver solve, the numerical solver does not react to properties of identifiers set via assume. To use these properties, call float ( hold( solve )(arguments)) instead.
```
Answer by Azzi Abdelmalek on 12 Dec 2012
Edited by Azzi Abdelmalek on 12 Dec 2012
```sol=solve('sin(x) = y^2 - 1', 'cos(x) = y')
```

%or

```sol=solve('sin(x) -y^2 + 1', 'cos(x) - y')
```

Answer by Zuhaib on 12 Dec 2012

it depend on your equation .. write function used in your equation for search in hepl of matlab

Answer by Walter Roberson on 12 Dec 2012

numeric::solve is a MuPAD call that cannot be directly used from MATLAB. Use

```feval(symengine, 'numeric::solve', [sym('sin(x) = y^2 - 1'), sym('cos(x) = y')], [sym('x'), sym('y')])
```

If you have R2011b or later (I think it is), you can use

```syms x y
feval(symengine, 'numeric::solve', [sin(x) = y^2 - 1, cos(x) = y], [x, y])
```

## 1 Comment

Petr on 13 Dec 2012

>> syms x y

>> feval(symengine, 'numeric::solve', [sin(x) = y^2 - 1, cos(x) = y], [x, y])

it tells

"Error: The expression to the left of the equals sign is not a valid target for an assignment." to the '=' sign after sin(x).

I tried == instead and it does not work.. Am I doing something completely wrong? Looks like all the toolboxes are installed and it is R2012a