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

Community Tip - Stay updated on what is happening on the PTC Community by subscribing to PTC Community Announcements. X

Question on Find Function

ghawkes
1-Visitor

Question on Find Function

what is the maximum number of nonlinear equations that can be solved in Mathcad with the Find function?

I am at 50 and it will not let me enter in the 51st variable.

ACCEPTED SOLUTION

Accepted Solutions
RichardJ
19-Tanzanite
(To:ghawkes)

It's not a limit on the number of variables, but on the number of arguments you are allowed to enter. Combine some or all of the variables into a vector.

View solution in original post

12 REPLIES 12

From the Mathcad 15 help file:

  • Solve Blocks can solve systems of up to 400 variables when using the Quasi-Newton or Conjugate-Gradient solvers. The Levenberg-Marquardt solver is unconstrained, and will solve any size system. Linear systems can have up to 8192 constraints, and nonlinear systems up to 200 constraints. When you solve for complex variables, Mathcad treats the real and imaginary parts as separate variables in the algorithm, increasing the overall variable and constraint count for the problem.

Alan

When I am typing in my variables to find in the Find Function, when I try and type in my 51st comma it will not respond.

RichardJ
19-Tanzanite
(To:ghawkes)

It's not a limit on the number of variables, but on the number of arguments you are allowed to enter. Combine some or all of the variables into a vector.

Thanks, that fixed it to put some of the variables into one of the arguments as a vector.  I put a 7 row by 1 column vector in the 48th argument.  It solves correctly, but now I need help on how to access these values in the 48th argument.

RichardJ
19-Tanzanite
(To:ghawkes)

How are you accessing the other 47?

Does this help (ignore the red; it's me being too lazy to actually define a solve block)?

I have:

F(P1,P2,P3):=Find(x1,x2,x3,x4,x5,....x46,x47,x48)   where x48 is a 7 row by 1 column vector  with succeeding rows of x48,0 x48,1 x48,2...

I access it as follows

F(P1,P2,P3)= x1

                     x2

                     x3

                      .

                      .

                     x47

                     [7,1]

where each x1, x2, x3 has a numerical value.

I'm wondering how to get at x48?  If I say F(P1,P2,P3)sub48,0 it shows the 7x1 vector.  If I subscript a 1 for the 0 it shows up as red.  How can I access each individual part?

RichardJ
19-Tanzanite
(To:ghawkes)

Assign F(P1,P2,P3) to a variable rather than just evaluating it.

X:=F(P1,P2,P3)

Then you can evaluate X[48.

RichardJ
19-Tanzanite
(To:ghawkes)

It is more likely a limit on the number of arguments in the function call. Try combining the variables into a vector (so instead, of x and y, x[0 and x[1, and solve for x)

DJF
16-Pearl
16-Pearl
(To:RichardJ)

So, I have a huge 'find' equation where combining variables into vectors would be advantageous.  Following your advice, I can replace everything with subscripted variables.  Nice, but that makes the equations awfully hard to read since everything becomes x[0, x[1 instead of Pressure, temperature or whatever.    Here's what I got to work based on your advice.

vector2.jpg

My question is if there is anyway to stick with the native variables in the equations?  Something like this is what I'm after, but never seems to work (no solution found).

vector3.jpg

Thanks, (3.1 attached)

RichardJ
19-Tanzanite
(To:DJF)

This works in Mathcad 15:

I haven't tried in in Prime.

DJF
16-Pearl
16-Pearl
(To:RichardJ)

That apparently doesn't work in Prime.  (But I'm sure 4.0 will both solve that and be released on schedule this month.  )

vector 4.jpg

RichardJ
19-Tanzanite
(To:DJF)

That's a pity, because I can't think of anything else.

Announcements

Top Tags