Contact US

Log In

Come Join Us!

Are you an
Engineering professional?
Join Eng-Tips Forums!
  • Talk With Other Members
  • Be Notified Of Responses
    To Your Posts
  • Keyword Search
  • One-Click Access To Your
    Favorite Forums
  • Automated Signatures
    On Your Posts
  • Best Of All, It's Free!

*Eng-Tips's functionality depends on members receiving e-mail. By joining you are opting in to receive e-mail.

Posting Guidelines

Promoting, selling, recruiting, coursework and thesis posting is forbidden.

Students Click Here

Solve Block for Systems (Another Solve Block Question)

Solve Block for Systems (Another Solve Block Question)

Solve Block for Systems (Another Solve Block Question)

I can't seem to wrap my mind around the solve blocks in MathCAD.  Trying the attached problem - simple enough to solve by hand, but I just can't get MathCAD to provide the solution to the system of equations via the solve block. Three equations, three unknowns.  Units consistent (though the strains are unitless, which is correct, but may cause an issue).  Tried the whole thing without units, didn't help.

Help file (and mathcad book) doesn't help. I feel like I'm fundamentally not getting how the solve block works...


RE: Solve Block for Systems (Another Solve Block Question)

Your first assignment statement E = erroneously uses the boolean equate instead of the assignment or definition operator := like you correctly used elsehwere.

RE: Solve Block for Systems (Another Solve Block Question)

Also Mathcad doesn't understand your units. I had removed the units and fixed the assignment and got it to work. Putting the units back in broke it again. I've never used units in a solve block but not saying it shouldn't work. I would say research the Mathcad utilization of your units

RE: Solve Block for Systems (Another Solve Block Question)

When you consider that the find() function returns a vector containing values measured in different units, it makes sense to disallow units in that vector and hence in the quantities of the solve block. I'm letting you research this and tell me if my reasoning is correct.

RE: Solve Block for Systems (Another Solve Block Question)


So there were three issues.  First, the equate.  Second, the units (though I'm not sure I understand the issue, since I tried using various other units I know MathCAD understands without success; it seems it can't handle mixing unitless variables with units in the solve block even if the equations are consistent.)

Third, the big gotcha, seems to have prevented me from identifying the other issues by trial and error. The solve block doesn't work if two of my known values are equal... I stumbled upon the issue while correcting my units issue. When I had (temporarily) different values and a solution occured.  Upon correcting the known value the solution became an error.  

Curious, since the equations remain algebraicly solvable in this case but MathCAD can't hack it.  

In the attached file you can replicate the issue by removing the ".1" from sigma_y.  Can you see what causes this final issue?

RE: Solve Block for Systems (Another Solve Block Question)

Can you save it in Ver 11 or 13?

The unit problem is probably caused by have the results with different units.  As noted by groovimus, the results are a vector and a vector has to have the same units for all elements.

RE: Solve Block for Systems (Another Solve Block Question)

I understand the units now - thanks!  I got a solution with units when returning only a single value and using a unit I've known to work previously (psi). No problem with mixing in dimensionless values until trying to return the mixed vector.  A little wacky, since you can only use a single find, but at least I get it.

Still stumped by the lack of a solution when sigma_y and sigma_x have the same value.  I'm inclined to think it is an issue within the numerical solver, but its entirely possible I'm misssing something.

Here is the file in v11 format.   

RE: Solve Block for Systems (Another Solve Block Question)

Yeah this is a kind of quirky situation that I haven't seen, but apparently it has to do with the first 2 constraints in your solve block. With the original assigned values, these two constraints are numerically identical. When the algorithm then begins to tweak sigma-z these two constraints behave identically and the LMA interprets this as incorrect conditions in the constraints and will not migrate down the gradient and the problem has become "ill-posed".

So far as units go the Levenberg-Marquardt algorithm is a numerical one obviously. To allow units in a solve block, Mathcad would be stripping out the units before passing parameters to the LMA and then re-scaling the parameters to account for unit prefixes etc. but the big bugaboo is like I said before, the units would have to be put back in, the scaling done, and then you would end up with a vector of values with arbitrarily mixed units which makes no sense from a correct usage standpoint. A vector should either be unitless or of uniform units.

RE: Solve Block for Systems (Another Solve Block Question)

When sigma-x and sigma-y are identical, two of the equations are identical and you are left with two equations and three unknowns and Find() doesn't work.  Minerr() does give the solution.

RE: Solve Block for Systems (Another Solve Block Question)

Agreed, the two first equations become identical, but that also collapses the number of unknows to two (epsilon_x = epsilon_y), which is quite solvable, at least symbolically.

I can begin to understand the issue with the numeric solution, but I still find it troubling that the case isn't handled by the software.  Wouldn't unknowns becoming equal under certain conditions be a common special case for systems of equations?   

As far as the units, I do understand, but I find it odd that the software doesn't have a method to work around.  

Obviously, I'm more used to working symbolically than numerically, so these challenges aren't the sort I'm used to dealing with.

Thanks again.

Red Flag This Post

Please let us know here why this post is inappropriate. Reasons such as off-topic, duplicates, flames, illegal, vulgar, or students posting their homework.

Red Flag Submitted

Thank you for helping keep Eng-Tips Forums free from inappropriate posts.
The Eng-Tips staff will check this out and take appropriate action.

Reply To This Thread

Posting in the Eng-Tips forums is a member-only feature.

Click Here to join Eng-Tips and talk with other members! Already a Member? Login


Close Box

Join Eng-Tips® Today!

Join your peers on the Internet's largest technical engineering professional community.
It's easy to join and it's free.

Here's Why Members Love Eng-Tips Forums:

Register now while it's still free!

Already a member? Close this window and log in.

Join Us             Close