what is the syntaxis for numerical solvers?

on 12 Dec 2012

Petr (view profile)

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.

Petr (view profile)

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

Walter Roberson (view profile)

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

Petr (view profile)

on 13 Dec 2012

! I found the way: using assumptions

Thanks

Walter Roberson

Walter Roberson (view profile)

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

Azzi Abdelmalek (view profile)

on 12 Dec 2012
Edited by Azzi Abdelmalek

Azzi Abdelmalek (view profile)

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')
```

Zuhaib (view profile)

on 12 Dec 2012

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

Walter Roberson (view profile)

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])
```

Petr

Petr (view profile)

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

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

is [ empty sym ]

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