Variational quantum algorithms have been proposed to solve static and dynamic problems of closed many-body quantum systems. Here we investigate variational quantum simulation of three general types of tasks---generalised time evolution with a non-Hermitian Hamiltonian, linear algebra problems, and open quantum system dynamics. The algorithm for generalised time evolution provides a unified framework for variational quantum simulation. In particular, we show its application in solving linear systems of equations and matrix-vector multiplications by converting these algebraic problems into generalised time evolution. Meanwhile, assuming a tensor product structure of the matrices, we also propose another variational approach for these two tasks by combining variational real and imaginary time evolution. Finally, we introduce variational quantum simulation for open system dynamics. We variationally implement the stochastic Schrodinger equation, which consists of dissipative evolution and stochastic jump processes. We numerically test the algorithm with a six-qubit 2D transverse field Ising model under dissipation.