diff --git a/scripts/symbolic_calculations.jl b/scripts/symbolic_calculations.jl
index 2b98fc48c18145c24f8c96e16dad58aadc71cc1f..a4cc08f498a877598111da90e83ea65f3c6ee8b2 100644
--- a/scripts/symbolic_calculations.jl
+++ b/scripts/symbolic_calculations.jl
@@ -17,3 +17,21 @@ function l1triangle()
 
     return result
 end
+
+function norm_grad()
+    function ref_int(f)
+        inty_f = Algebra.int(f, :y, 0, :(1 - x))
+        return Algebra.int(inty_f, :x, 0, 1)
+    end
+
+    # \|f\|
+    f = :(a * x + b * y + c * (1 - x - y))
+    n2_f = ref_int(:(($f)^2))
+
+    # \|grad f\|
+    dx_f = Algebra.df(f, :x)
+    dy_f = Algebra.df(f, :y)
+    n2_gradf = ref_int(:(($dx_f)^2 + ($dy_f)^2))
+
+    return :($n2_gradf / $n2_f)
+end