You need to understand a bit more about Mathcad's numeric and symbolic processors.
When you make an assignment (:=) what is assigned is the result of evaluating the right hand side, with all defined variables replaced by their definitions. This is true for both the numeric and symbolic processors. For the symbolic processor undefined variables remain in the assigned value as free variables. For the numeric processor undefined variables result in an error. The only way to make a definition for the numeric processor that includes an expression that can be evaluated with different values is to make a function.
You cannot differentiate a constant (at least, not meaningfully). Differentiation in Mathcad is the differentiation of an expression (not a function) with respect to a variable that appears in the expression. For the numeric processor the variable must appear literally, it cannot be introduced by substitution of defined values (values for the numeric processor not allowing free variables). For the symbolic processor the variable can appear literally in the expression, or may be brought in by substitution (but not in MC13.1, where that is broken). The expression can be, and often is, as simple as a function name applied to some set of variables, including the variable of differentiation.
The numeric and symbolic values for a variable need not be the same, and it is possible for either to be defined without the other. The idiom x:=x will cause x to be undefined to the symbolic processor, but retain its previous definition for the numeric processor.
The attached sheet shows one way to get a symbolic solution, and to be able to evaluate that symbolic solution numerically. It works well in MC11, less so in MC14. MC14 is very slow on this problem (the symbolic processor in MC14 is generally quite slow), and produces results that are too big for MC14 to be willing to display.
Note that if you look through this collaboratory you will find a number of tool boxes available. The Jacobian etc. sheet does all manner of multivariate differentiation. The routines have been copied into the attached sheet, but the documentation is just in the Jacobian etc. work sheet.
I don't know what you want the Jacobian for. But if you are planning some sort of Newtonian iteration, it won't work anyway. For that you must use functions so that you can reevaluate the Jacobian at each iteration, using the then current guess values. It is also generally pointless to code a Newtonian iteration. A solve block will usually do the job a lot easier and a lot faster.
__________________
� � � � Tom Gutman