### Obtaining analytical solutions to utility maximization problems

A while back I posted asking about Solving Lagrangians in Sage. The numeric solutions I found to be extremely useful for understanding where exactly a maximum/ minimum lies. This is given by the following code:

```
x, y, l = var('x, y, l')
U = x^7/10 * y^3/10; U
m = 2*x+2*y; m
solve(m == 4000, y)
L = U - l * (m - 4000); L
dLdx = L.diff(x); dLdx
dLdy = L.diff(y); dLdy
dLdl = L.diff(l); dLdl
solve([dLdx == 0, dLdy == 0, dLdl == 0], x, y, l)
```

Im wondering however if there is a way to get an analytical solution? In the context of a utility maximization problem it would be a set of demand equations as a function of prices and Income. On paper we can do this easily in this context however it seems pretty difficult for me to understand.