I am applying the solution proposed in this answer in order to automatically draw a vertical line at the point where to functions intersect. That solution implies creating a new commands that receives the coordinate as input and gives the x and y coordinates as output. Yet, I get the error
Package tikz Error: Cannot parse this coordinate.
A MWE is below:
\documentclass[tikz,convert=false]{standalone}
\usepackage{lmodern}
\usepackage[T1]{fontenc}
\usetikzlibrary{calc}
\makeatletter
\newcommand{\gettikzxy}[3]{%
\tikz@scan@one@point\pgfutil@firstofone#1\relax
\edef#2{\the\pgf@x}%
\edef#3{\the\pgf@y}%
}
\makeatother
\begin{document}
\begin{tikzpicture}[scale=0.8,domain=0.8:13]
% Axis
\draw[thick] [->] (0,0) -- (14,0);
\draw[thick] [->] (0,0) -- (0,7);
\node at (14,-0.5) {$A$};
\node at (-0.5,7) {$B$};
% Functions
\draw[thick,name path=MR] plot (\x,{7-0.5*\x}) node[right] {{\small MR}};
\draw[thick,name path=PC] plot (\x,{0.5*\x}) node[right] {{\small PC}};
% Equilibrium
\draw[name intersections={of=MR and PC,by={equi1}}];
\fill (equi1) circle (3pt) node {};
\gettikzxy{equil1)}{\ax}{\ay}
\draw[thick,name path=VPC] [-] (\ax,0) -- (equi1);
\end{tikzpicture}
\end{document}

equi1vs.equil1might be an issue), there is an easier way to get individual coordinates:\draw[thick,name path=VPC] [-] let \p1 = (equi1) in (\x1,0) -- (equi1);. Look at the pgfmanual's Section 14.15, The Let Operation, if you're interested. – wrtlprnft Apr 18 '16 at 16:42\draw[thick,name path=VPC] [-] (0,0 -| equi1) -- (equi1);. Less powerful than theletsyntax, but quicker to type. The-|“operator” takes the horizontal part of its left operand and the vertical part of its right operator, which is kind of suggested by its symbol. Conversely,|-is also available. – wrtlprnft Apr 18 '16 at 16:48|-"operator". I will switch to that one. Theletseems to be more cumbersome. – luchonacho Apr 19 '16 at 06:55