Capital for STEM majors (works in progress)

1. Extracting surplus value from workers

I use this applet when teaching the x and y axis to adults. Here’s the handout we work through together in class.

Dynamically updated 3D graphs of Marx's model (S = E p n) for the extraction of surplus value from n workers paid $P daily with degree of extraction E.

Source: Capital, Vol. 1, Ch. 11

2. Distributions of market prices and the formation of a general rate of profit

The applet pictured above illustrates the mathematical model Marx presents in Capital Vol. 3, Ch. 9 (“Formation of a general rate of profit”).

Market prices are generated randomly and the distributions of prices in each branch of production are shown. (Here 7 branches are pictured.)

The Mathematica code (zipped NB file) for the applet is unfinished, but functional.

3. Mathematical modeling in Marx’s Capital for STEM majors

Interest in classical Marxian economics has grown in recent years among young people.

The best source is the primary text, Capital.

But it’s easy for STEM types to get frustrated with it. It doesn’t use modern mathematical notation. It doesn’t give tidy definitions of all the key concepts.

And if you’re just seeing this stuff for the first time, you’re probably not going to start by consulting research-level secondary sources where all the details are rigorously laid out. Those sources tend to assume you already understand Capital, anyway.

The linked document (PDF) is an incomplete first attempt to state mathematical models of certain ideas in Capital in a way that’s accessible to math educators and advanced undergrad STEM majors with no background in economics.

It’s not done—let alone peer-reviewed! There’s more work that’s not in the document (e.g. the model behind the applet pictured above). Without it, some of my formal choices (like calling “commodity” a random variable) may seem odd. Also, I haven’t nailed down a model for the relevant parts of Theories of Surplus Value (Capital Vol 4) yet.

I’ve spotted some errors, too. I haven’t noticed any big conceptual errors, but there might be some.

I’ll update and expand the PDF as time allows.

Mathematica Code for (1) Surplus value 3D graphs:

plot2DSize = 320;
plot3DSize = 350; MoneyForm[y_] := Row[{ "$", If[IntegerPart[y] == y, NumberForm[IntegerPart[y], DigitBlock -> 3], NumberForm[y, {10, 2}, DigitBlock -> 3] ] }]; HundredthForm[y_] := If[IntegerPart[y] == y, NumberForm[IntegerPart[y], DigitBlock -> 3], NumberForm[y, {10, 2}, DigitBlock -> 3] ]; profitModel[P_, eMax_, ymax_] := Plot3D[ S[ee, P, n], {ee, .1, eMax}, {n, 1, 250}, AxesLabel -> (Style[#, TextAlignment -> Right, 12] & /@ { "\!\(\*
StyleBox[\"E\",\nFontSlant->\"Italic\"]\) = degree of \nexploitation ", "\!\(\*
StyleBox[\"n\",\nFontSlant->\"Italic\"]\) = # of workers in shop", "\n\n\n\n\!\(\*
StyleBox[\"S\",\nFontSlant->\"Italic\"]\) = bosses' daily \n\
take-home " } ), Ticks -> { Table[{k, PercentForm[k]}, {k, 0, eMax, 2}], Automatic, Table[{k, MoneyForm[k]}, {k, 0, ymax, .25 ymax}] }, Mesh -> None, PlotStyle -> Opacity[0.5], (*ViewPoint\[Rule]{1,1,1},*) ImageSize -> plot3DSize ]; S[ee_, PP_, nn_] := ee PP nn; applet1 = With[ {eMax = 9, nMax = 250}, Manipulate[ Smax1 = S[eMax, P, nMax]; Row[{ ymax = Ceiling[Smax1, 10^(Last[MantissaExponent[Smax1]] - 1)]; Plot[ S[e, P, n], {e, .1, eMax}, AxesLabel -> (Style[#, 12] & /@ {"\n\!\(\*
StyleBox[\"E\",\nFontSlant->\"Italic\"]\) = degree of\nexploitation", Row[{"bosses' daily\ntake-home\n\!\(\*
StyleBox[\"S\",\nFontSlant->\"Italic\"]\) = ", P n, "\!\(\*
StyleBox[\"E\",\nFontSlant->\"Italic\"]\)"}]} ), GridLines -> Automatic, PlotRange -> {Automatic, {0, Smax1}}, ImageSize -> plot2DSize, Ticks -> {Table[{k, PercentForm[k]}, {k, 0, eMax, 2}], Table[{k, MoneyForm[k]}, {k, 0, ymax, .25 ymax}]} ], " ", Show[{ profitModel[P, eMax, ymax] // Quiet, ParametricPlot3D[ {u, n, v}, {u, 0, eMax}, {v, 0, Smax1}, Mesh -> None, PlotStyle -> {Blue, Opacity[0.5]}] }, Frame -> True] } ], {{n, 200, Style["\!\(\*
StyleBox[\"n\",\nFontSlant->\"Italic\"]\) = # of workers in shop", 12]}, 1, nMax, 1, Appearance -> "Open"}, {{P, 120, Style["\!\(\*
StyleBox[\"P\",\nFontSlant->\"Italic\"]\) = hourly \"living wage\" \
\[Cross] 8 hours", 12]}, 8, 200, Appearance -> "Open"} ] ]; applet2 = With[ {eMax = 10, nMax = 250}, Manipulate[ Smax2 = S[eMax, PP, nMax]; ymax = Ceiling[Smax2, 10^(Last[MantissaExponent[Smax2]] - 1)]; Row[{ Plot[ S[e, PP, nn], {nn, 1, 250}, AxesLabel -> (Style[#, 12] & /@ {"\n\!\(\*
StyleBox[\"n\",\nFontSlant->\"Italic\"]\) = # of workers\nin shop", Row[{"bosses' daily\ntake-home\n\!\(\*
StyleBox[\"S\",\nFontSlant->\"Italic\"]\) = ", HundredthForm[e PP], "\!\(\*
StyleBox[\"n\",\nFontSlant->\"Italic\"]\)"}]} ), GridLines -> Automatic, PlotRange -> {Automatic, {0, Smax2}}, ImageSize -> plot2DSize, Ticks -> {Automatic, Table[{k, MoneyForm[k]}, {k, 0, ymax, .25 ymax}]} ], " ", Show[{ profitModel[PP, eMax, ymax] // Quiet, ParametricPlot3D[ {e, u, v}, {u, 0, nMax}, {v, 0, Smax2}, Mesh -> None, PlotStyle -> {Blue, Opacity[0.5]}] }] } ], {{e, 2, Style["\!\(\*
StyleBox[\"E\",\nFontSlant->\"Italic\"]\) = degree of exploitation \
", 12]}, .1, eMax}, {{PP, 120, Style["\!\(\*
StyleBox[\"P\",\nFontSlant->\"Italic\"]\) = hourly \"living wage\" \
\[Cross] 8 hours", 12]}, 8, 200, Appearance -> "Open"} ] ]; Column[Quiet /@ {applet1, applet2}]

Leave a Reply

Your email address will not be published. Required fields are marked *