cancel
Showing results for
Did you mean:
cancel
Showing results for
Did you mean:

Community Tip - Visit the PTCooler (the community lounge) to get to know your fellow community members and check out some of Dale's Friday Humor posts! X

3-Visitor

Solving with several unknown variables

Why can't MathCAD solve this equation? It obviously works after simplifying it manually first as shown in the last step. But how can i get MathCAD to do it in the previous step?

1 ACCEPTED SOLUTION

Accepted Solutions
23-Emerald III
(To:Rafael1)

Ah, I think I see the problem. You're trying to have the symbolic solver find m.Rd and you are using units. You should be aware that the symbolic solver does not know units, it treats each unit as an undefined variable. Prime's numeric processor knows, and can transform units as required, but the symbolic solver does nothing with/to them  In some cases, depending on the equation, they will cancel out, and then it does not hinder the symbolic processor...

Attached is a different approach, using the root function (Prime 4)

Success!
Luc

16 REPLIES 16
23-Emerald III
(To:Rafael1)

The problem might occur because you are using a variable named delta, that is undefined. Mathcad assumes that it's the delta function, which requires an argument...

You can change delta to be a variable, by setting its label (see the ribbon) accordingly.

Success!
Luc

3-Visitor
(To:LucMeekes)

I have tried changing delta to variable, replacing it with an other letter and even defining it as "1".

But nothing works.

23-Emerald III
(To:Rafael1)

What is the error message that you get from the first symbolic 'solve'?

3-Visitor
(To:LucMeekes)

This variable is undefined. Check that the label is set correctly.

23-Emerald III
(To:Rafael1)

Ah, I think I see the problem. You're trying to have the symbolic solver find m.Rd and you are using units. You should be aware that the symbolic solver does not know units, it treats each unit as an undefined variable. Prime's numeric processor knows, and can transform units as required, but the symbolic solver does nothing with/to them  In some cases, depending on the equation, they will cancel out, and then it does not hinder the symbolic processor...

Attached is a different approach, using the root function (Prime 4)

Success!
Luc

3-Visitor
(To:LucMeekes)

So you are saying that it's pure luck when the solver get units right like in this example?

23-Emerald I
(To:Rafael1)

@Rafael1 wrote:

So you are saying that it's pure luck when the solver get units right like in this example?

Absolutely!  The symbolics engine doesn't understand units, so if it comes out right it's a happy accident.  At first look in your example the units look wrong; but you got lucky:

3-Visitor
(To:LucMeekes)

Does the root function always work with units?

23-Emerald I
(To:Rafael1)

@Rafael1 wrote:

Does the root function always work with units?

"root" is a numeric function.  Mathcad numerics deal properly with units.

23-Emerald III
(To:Fred_Kohlhepp)

In Mathcad 11 root is not per se a numeric function:

I haven't found examples of Prime (trying) to use root symbolically...

Luc

24-Ruby V
(To:LucMeekes)

Mathcad 15 and also Prime will not accept the 2-argument flavor of "root" but insist on using the 4-argument form. There is no logic in doing so as the symbolic evaluation of "root" does NOT require the function values of the end points of the interval to be of opposite sign and will happily return all roots within that interval.

What hast changed concerning symbolic evaluation are at least two things:

1) We cannot evaluate a solve block sybolically

2) We cannot copy a symbolic evaluation inside a program

Prime 5:

23-Emerald III
(To:Werner_E)

That explains why I did not find examples in the help files using the root function symbolically. The preferred method is to use the solve keyword.

What happens if you set the two range parameters wrongly, like 0, 2  (does it find one root...) or -1, 1 (no roots) ?

Luc

24-Ruby V
(To:LucMeekes)

@LucMeekes wrote:

That explains why I did not find examples in the help files using the root function symbolically. The preferred method is to use the solve keyword.

What happens if you set the two range parameters wrongly, like 0, 2  (does it find one root...) or -1, 1 (no roots) ?

Luc

In case of interval [0;2] both MC15 and P5 return correctly just the one solution in this interval.

In case of [-1;1] only P5 fails with no solution found. MC15 strangely switches into float mode and returns both solutions. Only when start and end value are the same, MC15 fails, too.

The very same behaviour is shown by the symbolic "solve" in conjunction with "assume":

23-Emerald III
(To:Werner_E)

Mathcad 11's symbolics knows the bracketed root function, but:

Luc

23-Emerald III
(To:Rafael1)

Other than that, your equation is indeed simple. Here's how Mathcad can solve it fully symbolically:

Note that delta is not part of the solution, so can be any value that does not lead to (other) problems.

Success!
Luc

24-Ruby V
(To:Rafael1)

Your problem is basically that you define variables using an unknown, then you solve symbolically for this unknown and then you expect all those defined variables magically have their appropriate value based on the now solved for variable.

Thats not the way Mathcad works. It will never go back to a variable definition and insert a value for a variable which was calculated or assigned later. If you want this to be done, you have to define a function instead of a variable.

Her is a simplified version of your problem as I understand it

and her a three possible solutions/work-arounds:

1) Simply assign the solved for value to the appropriate variable and repeat/copy the variable definitions which will happily use the calculated value now.

2) Turn your variable definitions into functions as this is the mathematical construct which changes its value depending on one ore more input arguments

3) Do without the symbolic solve and use a numeric solve block instead. Note the picture below is erratically missing a guess value for x (we don't get an error because x was already assigned a value before in my sheet)!. Note that you have to "find" all variables which depend on the unknown, even though you might not be interested in all of them

Announcements
Top Tags