Stephen Huan

Multiplicative and additive functions

  ·  # math
  1. Introduction
    1. Examples
    2. Problem statement
  2. Solution
    1. Naturals
    2. Integers
    3. Rationals
    4. Reals
  3. Conclusion
  4. References


Multiplicative structure often shows up in number theory when one considers common arithmetic functions (functions whose domain are the integers).

Definition. We say an arithmetic function f:ZR f: \Z \to \R is multiplicative if it satisfies f(xy)=f(x)f(y)\begin{aligned} f(xy) = f(x) f(y) \end{aligned} for all coprime integers x,y x, y , that is, gcd(x,y)=1 \gcd(x, y) = 1 . An example is Euler's totient function φ(n) \varphi(n) which is defined as the number of integers between 1 1 and n n relatively prime to n n .

In addition, we say that f f is completely multiplicative if it satisfies (1) for all integers x,y x, y , not just those which are relatively prime. From now on we will use the term "multiplicative" to refer to completely multiplicative functions and take our domain to be the reals.

In contrast, some functions have additive structure. For example, for any real x,y x, y , the line f(x)=kx f(x) = k x for some fixed constant k k satisfies

f(x+y)=f(x)+f(y)\begin{aligned} f(x + y) = f(x) + f(y) \end{aligned}

since f(x+y)=k(x+y)=kx+ky=f(x)+f(y) f(x + y) = k(x + y) = k x + k y = f(x) + f(y) .


Some functions turn multiplicative structure into additive structure; for example, for any real x,y>0 x, y > 0 , the logarithm function (base irrelevant) satisfies

log(xy)=log(x)+log(y)\begin{aligned} \log(xy) = \log(x) + \log(y) \end{aligned}

which is an interesting and often quite useful property turning multiplications into additions. However, there is no easy formula (that I know of) for log(x+y) \log(x + y) , which is quite unfortunate.

Every symmetric positive-definite (s.p.d.) matrix Θ \Theta has a lower triangular Cholesky factor L L satisfying Θ=LL \Theta = L L^{\top} . In some sense all matrix factorizations are product structures since they write a complicated matrix as the product of matrices that are hopefully esimpler or easier to work with. Expanding LL L L^{\top} reveals the hidden additive structure of the Cholesky factorization, owing to the fact that the lower triangularity of L L implies a sort of decreasing or nested structure. Indeed, we can write Θ \Theta as the contributions of rank-one matrices given by the outer product of the columns of L L (4) (which is generally true for any matrix product) where each outer product affects smaller and smaller submatrices of Θ \Theta (from the triangularity of L L ).

Θ=LL=L:,1L:,1++L:,nL:,n\begin{aligned} \Theta = L L^{\top} = L_{:, 1} L_{:, 1}^{\top} + \dotsb + L_{:, n} L_{:, n}^{\top} \end{aligned}

Although the Cholesky factor is both an additive and multiplicative factorization, the chol() \operatorname{chol}(\cdot) operator itself does not play well with addition or multiplication. For multiplication the product of two s.p.d. matrices is not even necessarily s.p.d. and for addition even adding a multiple of the identity, that is, trying to factor Θ+σ2Id \Theta + \sigma^2 \text{Id} requires somewhat sophisticated tricks [3], even if one is able to factor Θ \Theta efficiently.

Finally, the trace() \operatorname{trace}(\cdot) and det() \det(\cdot) operators have additive and multiplicative structure, respectively. That is, for all square matrices A,B A, B of the same size,

trace(A+B)=trace(A)+trace(B)det(AB)=det(A)det(B)\begin{aligned} \operatorname{trace}(A + B) &= \operatorname{trace}(A) + \operatorname{trace}(B) \\ \det(AB) &= \det(A) \det(B) \end{aligned}

However, there are not as nice decompositions for trace(AB) \operatorname{trace}(AB) or det(A+B) \det(A + B) . Although it is possible to turn trace(AB) \operatorname{trace}(AB) into additive structure by expanding the matrix-matrix product and to turn det(A+B) \det(A + B) into multiplicative structure by the Sherman–Morrison–Woodbury identity, this is more of a conversion and a bit less natural than applying (5) directly.

Problem statement

Throughout these examples it seems although multiplicative and additive structure can be converted between, they are hard to mix in some sense. In order to make this notion precise,

Definition. Suppose some function T:RR T: \R \to \R satisfies both T(x+y)T(xy)=T(x)T(y)T(x)+T(y)[multiplicative structure]\begin{aligned} \hphantom{T(x + y)} \mathllap{T(x y)} &= \mathrlap{T(x) T(y)} \hphantom{T(x) + T(y)} && \text{[multiplicative structure]} \end{aligned} T(x+y)=T(x)+T(y)[multiplicative structure][additive structure]\begin{aligned} T(x + y) &= T(x) + T(y) && \hphantom{\text{[multiplicative structure]}} \mathllap{\text{[additive structure]}} \end{aligned} for all x,yR x, y \in \R . What can we infer about T T just from these conditions?


Our strategy will to identify a few specific observations and then work our way up to the naturals N \mathbb{N} , the integers Z \Z , the rationals Q \mathbb{Q} , and then finally, the reals R \R . Extension to the complex numbers C \mathbb{C} is left as an exercise for the reader.


First, we observe that if we fix y=1 y = 1 , then the multiplicative condition (6) implies xR \forall x \in \R

T(1x)=T(1)T(x)=T(x)\begin{aligned} T(1 \cdot x) &= T(1) \cdot T(x) = T(x) \\ \end{aligned}

Moving T(x) T(x) to the left side and factoring, we have

T(1x)=T(1)T(x)(T(1)1)T(x)=0T(x)\begin{aligned} \hphantom{T(1 \cdot x) = T(1) \cdot T(x)} \mathllap{(T(1) - 1) T(x)} &= \mathrlap{0} \hphantom{T(x)} \end{aligned}

implying either T(1)=1 T(1) = 1 or T(x)=0 T(x) = 0 for all x x . So immediately the constant function T(x)=0 T(x) = 0 is a candidate solution and indeed, it also satisfies the additive condition (7) trivially. For the more interesting situation where T(1)=1 T(1) = 1 , now using the additive condition (7), we have

T(x+1)=T(x)+T(1)=T(x)+1\begin{aligned} T(x + 1) &= T(x) + T(1) = T(x) + 1 \\ \end{aligned}

Therefore T(2)=T(1)+1=2 T(2) = T(1) + 1 = 2 , T(3)=T(2)+1=3 T(3) = T(2) + 1 = 3 , and so on. By induction T(x)=x T(x) = x for all natural numbers x x (where we exclude 0 as a natural number for now).


To extend this result to the integers, first we fill in the hole at 0 by making use of (7),

T(0+0)=2T(0)=T(0)    T(0)=0\begin{aligned} T(0 + 0) &= 2 T(0) = T(0) \\ \implies T(0) &= 0 \end{aligned}

Then we observe for a natural number x x and a negative number y=x y = -x , using (7),

T(x+(x))=T(x)+T(x)=T(0)=0    T(x)=T(x)\begin{aligned} T(x + (-x)) &= T(x) + T(-x) = T(0) = 0 \\ \implies T(-x) &= -T(x) \end{aligned}

where we use that T(x)=x T(x) = x for natural x x , concluding that T(x)=x T(x) = x for integer x x .


To extend this result to the rationals: let x=p/q x = p/q for integers p,q p, q and let y=q y = q . From (6),

T((p/q)q)=T(p/q)T(q)=T(p)=p    T(p/q)=p/T(q)=p/q\begin{aligned} T((p/q) q) &= T(p/q) T(q) = T(p) = p \\ \implies T(p/q) &= p/T(q) = p/q \end{aligned}

where we use T(p)=p T(p) = p and T(q)=q T(q) = q for integers p,q p, q , concluding that T(x)=x T(x) = x for rational x x .


Throughout all these examples it seems that T(x)=x T(x) = x , but it is hard to extend to the reals without additional structure; we've sort of hit the limit on what our assumptions tell us. We would like our function to commute with limits, that is, we would like for any sequence (xn) (x_n) ,

T(limnxn)=limnT(xn)\begin{aligned} T \left (\lim_{n \to \infty} x_n \right ) &= \lim_{n \to \infty} T(x_n) \end{aligned}

This is precisely condition (iii) of Theorem 4.3.2. of [1] defining the continuity of a function:

Theorem 4.3.2 (Characterizations of Continuity). Let f:AR f: A \to \bm{R} , and let

cA c \in A . The function f f is continuous at c c if and only if any one of the following

three conditions is met:


(iii) For all (xn)c (x_n) \to c (with xnA x_n \in A ), it follows that f(xn)f(c) f(x_n) \to f(c) .

If we enforce that T(x) T(x) must be continuous, then every real number x x is a Cauchy sequence of rational numbers, so assume (xn)x (x_n) \to x for rational xn x_n and observe that

T(x)=T(limnxn)=limnT(xn)=limnxn=x\begin{aligned} T(x) = T \left (\lim_{n \to \infty} x_n \right) = \lim_{n \to \infty} T(x_n) = \lim_{n \to \infty} x_n = x \end{aligned}

where we use that T(xn)=xn T(x_n) = x_n from the fact that T T is identity on the rationals so we can conclude T(x)=x T(x) = x for all real x x . In summary, we have the following theorem:

Theorem. Suppose some continuous function T:RR T: \R \to \R satisfies both

T(xy)=T(x)T(y)[multiplicative structure]T(x+y)=T(x)+T(y)[additive structure]\begin{aligned} T(x y) &= T(x) T(y) && \text{[multiplicative structure]} \\ T(x + y) &= T(x) + T(y) && \text{[additive structure]} \end{aligned}

for all x,yR x, y \in \R . Then either

  1. T(x)=0 T(x) = 0 for all xR x \in \R or

  2. T(x)=x T(x) = x for all xR x \in \R .


This is just one of many reasons why the identity operator is perhaps the easiest possible operator to work with and analyze; for more details, see our soon-to-be released GitHub repository brownie-in-motion/identity which is joint work with Daniel Lu (brownie-in-motion) and Eshan Ramesh (eshrh).

It's well known [2] that Gilbert Strang's favorite matrix is the following -1, 2, -1 tridiagonal matrix (8) which forms a second-order finite difference approximation for the derivative.

strang(n)=(211211112112)\begin{aligned} \operatorname{strang}(n) &= \begin{pmatrix} 2 & -1 & & & & \\ -1 & 2 & -1 & & & \\ & -1 & \ddots & \ddots & & \\ & & \ddots & \ddots & -1 & \\ & & & -1 & 2 & -1 \\ & & & & -1 & 2 \\ \end{pmatrix} \end{aligned}
121 cupcakes with Gilbert Strang's favorite -1, 2, -1 matrix.
121 cupcakes with Gilbert Strang's favorite -1, 2, -1 matrix.

If I was asked upfront I'm not sure what my favorite linear operator would be, but the identity function/matrix/operator is definitely pretty high on the list after this discussion.

Lastly, this article is similar to Exercise 4.3.13 of [1] but I only discovered the connection after I already had the idea. A similar line of reasoning holds for the textbook exercise.



  1. [1] S. Abbott, Understanding Analysis. New York, NY: Springer New York, 2015. doi: 10.1007/978-1-4939-2712-8.

  2. [2] J. Bezanson, A. Edelman, S. Karpinski, and V. B. Shah, "Julia: A Fresh Approach to Numerical Computing," SIAM Review, vol. 59, no. 1, pp. 65–98, Jan. 2017, doi: 10.1137/141000671.

  3. [3] F. Schäfer, M. Katzfuss, and H. Owhadi, "Sparse Cholesky factorization by Kullback-Leibler minimization," arXiv:2004.14455 [cs, math, stat], Oct. 2021, Available:

さみしいも、たのしい。Page source. Last updated: .