Message Boards Message Boards


Assigning variables from rules

Posted 11 days ago
2 Replies
0 Total Likes

I'm new to Mathematica. I have to say, it's making me crazy. I want to solve a system of four simultaneous equations in four variables and then have the numerical solutions applied to those variables from the rules so that, in this case,

m=127, b=7,f=14.5588, t=148.559:

solutions = 
Solve[m == 127 && b == 7 && f == 0.098*t && m + b + f == t, {m, b, f,

Then I want to set m, b, t, and f to the values in the rule assignment. I've tried every permutation I can think of of Part and ReplaceAll, but I either get an error or I get m=m, b=b, etc. It really shouldn't be that difficult, it seems like something users would want to do all the time. I see Stack Exchange with obscure code using @@@, and other stuff. Is there not just a simple way to solve a set of simultaneous equations and assign the results to the variables in the equations?

2 Replies

Hi 'Robert,

it is by no means clear what you want to do. Something like this?

m = 127;
b = 7;
solutions = Solve[{f == 0.098*t, m + b + f == t}, {t, f}]
{t, m} /. Flatten[solutions]


As Hans points out, its not clear exactly what you want, However, if you are asking how to change rules into assignments, you could do:

solutions /. Rule -> Set;

In Hans' corrected example, this will make assignments for t and m. HOWEVER, I believe that changing the rules to assignments is bad coding practice in Mathematica. I generally like to make notebooks that can be rerun without clearing the global variables or quitting the kernel. Once t and m are defined, the earlier code that creates your equations will no longer work without a Clear["Global`*"] or killing the kernel.

It is preferable to use the results of solving as Hans showed by doing

newexpression /. solutions

to make the variable assignments locally.



Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
or Discard

Group Abstract Group Abstract