Does a function change when you multiply both the denominator and numerator by the same function? For example:
$ 1) \, f(x): 3x+3$
$2) \, f(x)= \frac{(3x^2-3)}{(x-1)}$
If you simplify the second function it becomes the first, but isn't the function, in its present form, undefined for $x = 1$?
 A: we have $$\frac{3(x^2-1)}{x-1}=\frac{3(x-1)(x+1)}{x-1}=3(x+1)$$ only for $$x\ne 1$$
A: The only point at which the function may be changed is when the numerator and denominator equal to zero. Then you will get an undefined point as we have $0/0$. We merely take these points into account as a root is removed for each of these points
Similarly, when we divide $f(x)$ by $g(x)$ we must take into account where $g(x)$ is equal to zero, and see whether or not $f(x)$ is also zero at these points. Additionally, multiplying a function by another may add additional roots which we must account for
A: Remember that a function is a mapping from one set to another set.
Also recall that it is fundamentally defined as a set of (input, output) pairs.
The formula for a function is merely an "algorithm"1 for defining this mapping.
It is used to avoid listing an infinite number of pairs like $\{(0,3),(1,6),\ldots\}$ for the set.  
Naturally, if your algorithm (formula) fails somewhere, then you haven't specified the mapping there. This is commonly understood to mean that your function is undefined wherever the formula you specify for it fails to produce a value.
Therefore, if you do intend the function to be defined there, you do need to change the formula so that it doesn't fail there. Otherwise, you have specified a different function, because the mapping—which is a set of pairs—is not the same.
1 I put "algorithm" in quotes since it's not quite the computer-science notion of an algorithm.
