Themultiple-inputmultiple-output(MIMO)technology has become an essential element of modern communication systems e.g.,3G,4 Gand massive MIMOtechnology has been recently standardized i n3GPPRel-15i.e. ,New Radio(NR)to enhance the spectral efficiency or the capacity of 5G networks. Given a digital communication system, a receiver will suffer from decoding errors if the transmission rate exceeds the capacity. Therefore, the capacity of a MIMO system is an important metric to characterize the system performance. More importantly,an efficient precoder design to achieve that capacity is of great interest. This thesis is dedicated to this fundamental problem under multiple power constraints. From the theoretical perspective, capacity maximization is a classical problem. However efficient algorithms considering realistic scenarios or multiple power constraints, especially for massive MIMO application, are still sparse. In the thesis, the author has sought new methods of determining the capacity under two practical power constraints: 1) per-antenna power constraint (PAPC) 2) linear transmit covariance constraint (LTCC). In particular, the PAPC imposes an individual power limit one ach power amplifier associated with atransmit antenna, thus is much more realistic than the traditional sum power constraint (SPC) in which all transmit antennas collaborate to satisfy a predefined total power budget. In many other practical scenarios, other power constraints can be imposed on a system, not necessarily to either SPC or PAPC. To this end, LTCCs are general enough to include those constraints. In both cases, we have proposed low-complexity approaches to the considered problems and the description of them is in the following. For the problem of capacity maximization under PAPC,two closed-formlow-complexity approaches have been developed for single-user MIMO and multi-user MIMO under different MIMO channels and precoding techniques. More specifically, the first approach is based on fixed-point-iterationtosolvetheproblemdirectlyinthebroadcast channel (BC), whereas the other relies on alternating optimization (AO) together with successive convex optimization (SCA) to solve the equivalent problem in dual multiple access channel (MAC) domain. Interestingly, the latter approach is also applicable to the problem of computing capacity with LTCCs. For the special case of joint SPC and PAPC, we have also derived analytical solutions to this important problem. Last but not least, we have investigated the applications of machine learning to our capacity problems and presented some preliminary results.