I want to discretize and numerically solve the equation: \begin{equation} v(k)\dfrac{\partial f}{\partial z} + F(z)\dfrac{\partial f}{\partial k} = \alpha f(z,k) \,\,. \end{equation}
Discretization with central differences, \begin{equation} v(k_j)\left(\dfrac{f(z_{i+1},k_j) - f(z_{i-1},k_j)}{2\Delta z}\right) + F(z_i)\left(\dfrac{f(z_{i},k_{j+1}) - f(z_i,k_{j-1})}{2\Delta k}\right) = \alpha f(z_i,k_j) \end{equation} results in spurious oscillations. Using upwind scheme, \begin{equation} v(k_j)\left(\dfrac{f(z_{i},k_j) - f(z_{i-1},k_j)}{\Delta z}\right) + F(z_i)\left(\dfrac{f(z_{i},k_{j}) - f(z_i,k_{j-1})}{\Delta k}\right) = \alpha f(z_i,k_j) \qquad {\color{blue}{\bigg[ v(k_j)>0 \,,\, F(z_i) > 0 \bigg]}} \end{equation}
\begin{equation} v(k_j)\left(\dfrac{f(z_{i},k_j) - f(z_{i-1},k_j)}{\Delta z}\right) + F(z_i)\left(\dfrac{f(z_{i},k_{j+1}) - f(z_i,k_{j})}{\Delta k}\right) = \alpha f(z_i,k_j) \qquad {\color{blue}{\bigg[ v(k_j)>0 \,,\, F(z_i) < 0 \bigg]}} \end{equation}
\begin{equation} v(k_j)\left(\dfrac{f(z_{i+1},k_j) - f(z_{i},k_j)}{\Delta z}\right) + F(z_i)\left(\dfrac{f(z_{i},k_{j}) - f(z_i,k_{j-1})}{\Delta k}\right) = \alpha f(z_i,k_j) \qquad {\color{blue}{\bigg[ v(k_j)<0 \,,\, F(z_i) > 0 \bigg]}} \end{equation}
\begin{equation} v(k_j)\left(\dfrac{f(z_{i+1},k_j) - f(z_{i},k_j)}{\Delta z}\right) + F(z_i)\left(\dfrac{f(z_{i},k_{j+1}) - f(z_i,k_{j})}{\Delta k}\right) = \alpha f(z_i,k_j) \qquad {\color{blue}{\bigg[ v(k_j) < 0 \,,\, F(z_i) < 0 \bigg]}} \end{equation} removes these oscillations but produces inaccurate results.
Is there any other simple scheme to improve the accuracy while keeping on to stability of discretizaion? Can I combine the trapezoidal rule with upwind scheme? What does the resulting discretization look like?