Solve the CO2 problem.

Get the eigenvalues and eigenvectors.

Remove[Afinal,secular,vectors,w,k,mO,mC] (* reset variables. *)
Afinal=(({{(k/mO), -(k/mO), 0}, {-(k/mC),  2*(k/mC), -(k/mC)}, {0, -(k/mO), (k/mO)}}));
secular=Afinal- (w^2)*(({{1, 0, 0}, {0, 1, 0}, {0, 0, 1}}));
Det[secular]

values=Solve[Det[secular]==0,w]

Get the eigenvectors and check the eigenvalue.

vectors=Eigenvectors[Afinal]

Afinal.vectors[[1]]

Afinal.vectors[[2]]

Afinal.vectors[[3]]

Apply the initial conditions and get the coefficients.

(Subscript[x, 1])=d  (Subscript[x, 2])=0   (Subscript[x, 3])=-d  or  (Subscript[x, 3])=-d and  a0 = ((2(Subscript[m, O]))/(Subscript[m, C]))

Remove[a1,a2,b1,b2,g1,g2,a0,d0,w1,w2,w3](* make sure the coefficients are variables. *)

soln=Solve[a1+a2-b1-b2+g1+g2==d0 &&
a1+a2 -a0*g1-a0*g2==d0 &&
a1+a2+b1+b2+g1+g2==d0 &&
w1*a1-w1*a2-w2*b1+w2*b2+w3*g1-w3*g2==0 && 
w1*a1-w1*a2-w3*a0*g1+w3*a0*g2==0 && 
w1*a1-w1*a2+w2*b1-w2*b2+w3*g1-w3*g2==0,{a1,a2,b1,b2,g1,g2}]

Put numbers in.

mO=16*931.5; (* MeV/(c^2) *)
mC=12*931.5; (* MeV/(c^2) *)
k0=139.0; (* ev/(A^2) *)
a0=((2*mO)/mC);
d0=-0.2; (* angstroms *)

w1=0;
w2=(Sqrt[(k0/mO)*((((10^10)))^2)*(((3*(10^8)))^2)])*(10^(-15)) ;(* convert to fempto-sec ((10^(-15))s)*)
w3=(Sqrt[((k0/mO) + ((2*k0)/mC))*((((10^10)))^2)*(((3*(10^8)))^2)])*(10^(-15)) ;(* convert to fempto-sec ((10^(-15))s)*)
(* get the results of Solve. *)
a1=soln[[1,1,2]];
a2=soln[[1,2,2]];
b1=soln[[1,3,2]];
b2=soln[[1,4,2]];
g1=soln[[1,5,2]];
g2=soln[[1,6,2]];

Make plots.

X1=vectors[[1]];
X2=vectors[[2]];
X3=vectors[[3]];
(* the solution. *)
X[t_]:=a1*X1*Exp[I*w1*t] + a2*X1*Exp[-I*w1*t] +
b1*X2*Exp[I*w2*t] + b2*X2*Exp[-I*w2*t] +
g1*X3*Exp[I*w3*t] + g2*X3*Exp[-I*w3*t]
(* plot x1. *)
t1=Table[{t,Re[X[t][[1]]]},{t,0,1,0.0002}];
tmin=0; tmax=0.3; xmin=-0.8;xmax=1.5;
p1=ListPlot[t1,PlotRange->{{tmin,tmax},{xmin,xmax}},Joined->True, Frame->True,
FrameLabel->{"t (fs)","x (angstroms)","(Subscript[x, 1])-Blue, (Subscript[x, 2])-Red, (Subscript[x, 3])-Green"},
LabelStyle->Black,BaseStyle->FontSize->16,ImageSize->8*72
];
(* plot x2. *)
t2=Table[{t,Re[X[t][[2]]]},{t,0,1,0.0002}];
p2=ListPlot[t2,PlotRange->{{0,2},Automatic},Joined->True,Frame->True,FrameLabel->{"t (fs)","(Subscript[x, 2]) (angstroms)"},LabelStyle->Black,BaseStyle->FontSize->16,
ImageSize->8*72,PlotStyle->RGBColor[1,0,0]
];
t3=Table[{t,Re[X[t][[3]]]},{t,0,1,0.0001}];
(* plot x3. *)
p3=ListPlot[t3,PlotRange->{{0,2},Automatic},Joined->True,Frame->True,FrameLabel->{"t (fs)","(Subscript[x, 1]) (angstroms)"},LabelStyle->Black,BaseStyle->FontSize->16,
ImageSize->8*72,PlotStyle->RGBColor[0,0.8,0]
];
(* plot all three. *)
p123=Show[p1,p2,p3]

Write out results.

Export["/run/media/gilfoyle/KINGSTON/303s17/examples/vibrations/nn9.pdf",p1]
Export["/run/media/gilfoyle/KINGSTON/303s17/examples/vibrations/nn10.pdf",p2]
Export["/run/media/gilfoyle/KINGSTON/303s17/examples/vibrations/nn11.pdf",p3]
Export["/run/media/gilfoyle/KINGSTON/303s17/examples/vibrations/nn12.pdf",p123]