Thay $x=y=z$ ta có $f(xf(x))=x^2,\forall x\in\mathbb R^+$. (1)
Thay $y=z$ ta có $f(xf(y))+f(yf(y))+f(yf(x))=2xy+y^2\Rightarrow f(xf(y))+f(yf(x))=2xy,\forall x,y\in\mathbb R^+$. (2)
Thay $x=1$ vào (1) ta có $f(f(1))=1$.
Thay $x=f(1)$ vào (1) ta có $f(1)^2=f(f(1)f(f(1))=f(f(1))=1$. Suy ra $f(1)=1$.
Thay $y=1$ vào (2) ta có $f(x)+f(f(x))=2x$ hay $f(x)+f(f(x))-2x=0,\forall x\in\mathbb R^+$.
Với mỗi $x\in\mathbb R^+$, xét dãy $(u_n)$ có $u_1=x;u_n=f(u_{n-1}),\forall n\in\mathbb N^*$.
Khi đó ta có $u_n+u_{n+1}-2u_{n-1}=0,\forall n\in\mathbb N^*$.
Từ đó $u_n=a+b(-2)^n$ với $a=\frac{2u_0+u_1}{3}=\frac{2x+f(x)}{3};b=\frac{u_0-u_1}{3}=\frac{x-f(x)}{3}$.
+) Nếu $b>0$, chọn k lẻ sao cho $a+b(-2)^k<0\Rightarrow u_k<0$, vô lí.
+) Nếu $b<0$, chọn k chẵn sao cho $a+b(-2)^k<0\Rightarrow u_k<0$, vô lí.
Do đó với mọi $x\in\mathbb R^+$, ta có $b=0$ nên $f(x)=x,\forall x\in\mathbb R^+$.
Vậy ...