Amplitude of signal and PSD peak height
This question is well-addressed in other posts; I would refer you elsewhere, but since you probably want the answer, here it is. 

A couple of notes:


There are three knobs you need to play around with to get the right FFT. The first knob is sampling enough (so the 1/700 parameter); in particular, if you don't do it at least twice the maximum frequency, you run into problems of aliasing (by far the best and easiest to understand resource is here: https://blogs.mathworks.com/steve/category/fourier-transforms/). The second knob is that you need to sample long enough (the 50 number below) - you could do 1/1000 sampling but if you do up to 10 - 1/1000 and do the FFT, you will notice the amplitude of the smallest frequency (1/(2 * pi)) is always a little too high. 
The linked blog explains VERY well why this third knob is important, which is the zero-padding, which allows you to get a better DFT with the same data. 
Finally, yes I am plotting the two-sided FFT, so usually people will take half the amplitude I am using: $$\text{plot}(\text{fshift},\text{abs}(\text{yshift})/\text{length}(x))$$ instead of $$\text{plot}(\text{fshift},2 * \text{abs}(\text{yshift})/\text{length}(x))$$. 


But this recreates the right amplitudes. The idea is you need to normalize by the number of data points you are using (I didn't come up with this code myself; I stole it from here: https://www.mathworks.com/matlabcentral/answers/162846-amplitude-of-signal-after-fft-operation).

Without further ado, here's the code you want:

\begin{equation}
t = 0:1/700:50-1/700; \\
x = cos(5.*t)+cos(25.*t)+cos(10.*t)+cos(1.*t)+cos(100.*t)+cos(200.*t)+cos(300.*t); \\
y = \text{fft}(x, 2^{\text{nextpow2}(\text{length}(t))+2)}); \\
n = \text{length}(y);    \\                     
\text{fshift} = (-n/2:n/2-1)*(700/n); \\
\text{yshift} = \text{fftshift}(y); \\
\text{figure}; \text{plot}(\text{fshift},2 * \text{abs}(\text{yshift})/\text{length}(x)) \\
\end{equation}