In this case, the integrand is the derivative of a function composition (up to a multiplicative constant):
g(y)=e^y
f(x)=x^2+1
rArr g(f(x))=e^(x^2+1)
rArr d/(dx) [g(f(x))]=d/(dx)[e^(x^2+1)]=2x e^(x^2+1)
The only difference is the multiplicative constant (it's 2 instead of 3), so we can rewrite the integral to look like the derivative of e^(x^2+1) by working with multiplicative constants:
int 3x e^(x^2+1) dx=3/2 int 2x e^(x^2+1) dx=3/2 e^(x^2+1) + C
Another (very similar) way of solving this was to consider the substitution u(x)=x^2+1. We could relate the two differentials du=2x dx and rewrite the integral in terms of u:
int 3x e^(x^2+1) dx=int 3/2 e^(x^2+1) (2xdx)=int 3/2 e^u du=3/2e^u+C
Now we could return back to x:
3/2e^u+C=3/2 e^(x^2+1)+C