This commit is contained in:
Barrett Ruth 2024-11-29 23:07:55 -06:00
parent 61f879d636
commit 63ba27d58a

View file

@ -92,8 +92,7 @@ function drawSolowGraph() {
.attr("y", y(outputData[K_MAX - 1].Y)) .attr("y", y(outputData[K_MAX - 1].Y))
.append("xhtml:body") .append("xhtml:body")
.style("font-size", "0.75em") .style("font-size", "0.75em")
.html(`<div class="solow-visualization-y"></div>`); .html(`\\(Y\\)`);
katex.render("Y", document.querySelector(".solow-visualization-y"));
const depreciationData = Array.from({ length: K_MAX }, (_, k) => ({ const depreciationData = Array.from({ length: K_MAX }, (_, k) => ({
K: k, K: k,
@ -121,8 +120,8 @@ function drawSolowGraph() {
.attr("y", y(depreciationData[K_MAX - 1].Y)) .attr("y", y(depreciationData[K_MAX - 1].Y))
.append("xhtml:body") .append("xhtml:body")
.style("font-size", "0.75em") .style("font-size", "0.75em")
.html(`<div class="solow-visualization-d"></div>`); .append("xhtml:div")
katex.render("\\bar{d}K", document.querySelector(".solow-visualization-d")); .html("\\(\\bar{d}K\\)");
const investmentData = outputData.map((d) => ({ const investmentData = outputData.map((d) => ({
K: d.K, K: d.K,
@ -150,8 +149,7 @@ function drawSolowGraph() {
.attr("y", y(investmentData[K_MAX - 1].Y)) .attr("y", y(investmentData[K_MAX - 1].Y))
.append("xhtml:body") .append("xhtml:body")
.style("font-size", "0.75em") .style("font-size", "0.75em")
.html(`<div class="solow-visualization-i"></div>`); .html("\\(I\\)");
katex.render("I", document.querySelector(".solow-visualization-i"));
const k_star = L * Math.pow((s * A) / d, 1 / (1 - alpha)); const k_star = L * Math.pow((s * A) / d, 1 / (1 - alpha));
svg svg
@ -169,15 +167,11 @@ function drawSolowGraph() {
.append("foreignObject") .append("foreignObject")
.attr("width", "20em") .attr("width", "20em")
.attr("height", "2em") .attr("height", "2em")
.attr("x", x(k_star) - 150) .attr("x", x(k_star) - 40)
.attr("y", y(y_star) - 50) .attr("y", y(y_star) - 40)
.append("xhtml:body") .append("xhtml:body")
.style("font-size", "0.75em") .style("font-size", "0.75em")
.html(`<div class="solow-visualization-eq"></div>`); .html(`(${k_star.toFixed(0)}, ${y_star.toFixed(0)})`);
katex.render(
`(K^*,Y^*)=(${k_star.toFixed(0)},${y_star.toFixed(0)})`,
document.querySelector(".solow-visualization-eq"),
);
} }
const formatNumber = (num) => { const formatNumber = (num) => {
@ -191,12 +185,9 @@ const updateRomerTable = (romerData) => {
const rowA_t = document.getElementById("row-A_t"); const rowA_t = document.getElementById("row-A_t");
const rowY_t = document.getElementById("row-Y_t"); const rowY_t = document.getElementById("row-Y_t");
tableHeader.innerHTML = `<th ${normalFont}><div class="romer-table-time"></th>`; tableHeader.innerHTML = `<th ${normalFont}>t</th>`;
katex.render(`t`, document.querySelector(".romer-table-time")); rowA_t.innerHTML = `<td class="romer-table-at">A_t</td>`;
rowA_t.innerHTML = `<td class="romer-table-at"></td>`; rowY_t.innerHTML = `<td class="romer-table-yt">Y_t</td>`;
rowY_t.innerHTML = `<td class="romer-table-yt"></td>`;
katex.render("A_t", document.querySelector(".romer-table-at"));
katex.render("Y_t", document.querySelector(".romer-table-yt"));
romerData.forEach((d) => { romerData.forEach((d) => {
if (d.year % 20 === 0 || d.year === 1) { if (d.year % 20 === 0 || d.year === 1) {
@ -291,8 +282,7 @@ function drawRomerGraph() {
.attr("y", y(romerData[T_MAX - 1].Y)) .attr("y", y(romerData[T_MAX - 1].Y))
.append("xhtml:body") .append("xhtml:body")
.style("font-size", "0.75em") .style("font-size", "0.75em")
.html(`<div class="romer-visualization-y"></div>`); .html(`\\(log_{10}Y\\)`);
katex.render("log_{10}Y", document.querySelector(".romer-visualization-y"));
updateRomerTable(romerData); updateRomerTable(romerData);
} }
@ -398,11 +388,7 @@ function drawRomerlGraph() {
.attr("y", y(romerData[0].Y)) .attr("y", y(romerData[0].Y))
.append("xhtml:body") .append("xhtml:body")
.style("font-size", "0.6em") .style("font-size", "0.6em")
.html(`<div class="romer-changel-before"></div>`); .html(`\\(\\bar{l}_0=${l_}\\)`);
katex.render(
`\\bar{l}_0=${l_}`,
document.querySelector(".romer-changel-before"),
);
svg svg
.append("foreignObject") .append("foreignObject")
@ -412,11 +398,7 @@ function drawRomerlGraph() {
.attr("y", y(romerData[t0].Y)) .attr("y", y(romerData[t0].Y))
.append("xhtml:body") .append("xhtml:body")
.style("font-size", "0.6em") .style("font-size", "0.6em")
.html(`<div class="romer-changel-after"></div>`); .html(`\\(\\bar{l}_1=${l}\\)`);
katex.render(
`\\bar{l}_1=${l}`,
document.querySelector(".romer-changel-after"),
);
svg svg
.append("foreignObject") .append("foreignObject")
@ -426,8 +408,7 @@ function drawRomerlGraph() {
.attr("y", y(romerData[T_MAX - 1].Y)) .attr("y", y(romerData[T_MAX - 1].Y))
.append("xhtml:body") .append("xhtml:body")
.style("font-size", "0.75em") .style("font-size", "0.75em")
.html(`<div class="romer-changel-y"></div>`); .html(`\\(log_{10}Y\\)`);
katex.render("log_{10}Y", document.querySelector(".romer-changel-y"));
} }
function calculateRomerSolowData( function calculateRomerSolowData(
@ -552,11 +533,7 @@ function drawRomerSolowGraph() {
.attr("y", y(romerSolowData[T_MAX - 1].Y)) .attr("y", y(romerSolowData[T_MAX - 1].Y))
.append("xhtml:body") .append("xhtml:body")
.style("font-size", "0.75em") .style("font-size", "0.75em")
.html(`<div class="romer-solow-visualization-y"></div>`); .html(`\\(log_{10}Y\\)`);
katex.render(
"log_{10}Y",
document.querySelector(".romer-solow-visualization-y"),
);
} }
function drawRomerSolowChangeGraph() { function drawRomerSolowChangeGraph() {
@ -666,11 +643,7 @@ function drawRomerSolowChangeGraph() {
.attr("y", y(romerSolowData[T_MAX - 1].Y)) .attr("y", y(romerSolowData[T_MAX - 1].Y))
.append("xhtml:body") .append("xhtml:body")
.style("font-size", "0.75em") .style("font-size", "0.75em")
.html(`<div class="romer-solow-change-visualization-y"></div>`); .html(`\\(log_{10}Y\\)`);
katex.render(
"log_{10}Y",
document.querySelector(".romer-solow-change-visualization-y"),
);
} }
document.addEventListener("DOMContentLoaded", function () { document.addEventListener("DOMContentLoaded", function () {