docstr: Update using order 3 Runge-Kutta Method.
          
docstr_tok: ["Update","using","order","3","Runge-Kutta","Method","."]
code: def _runge_kutta_update(self, dt):
      """Update using order 3 Runge-Kutta Method."""
      info_vector = np.asarray(
          [self.x_dot, self.theta_dot, self.x, self.theta]
      ).copy()
  
      t1a = -self.b * info_vector[0] * np.abs(info_vector[0])
      t1b = -self.spring_k1 * (
          info_vector[2] + self.d2 * info_vector[3]
      )
  
      t2a = -self.spring_k1 * self.d2 * info_vector[2]
      t2b = -info_vector[3] * (
          self.spring_k1 * (self.d2**2)
          + self.spring_k2 * (self.d1**2)
      )
  
      k1 = [
          (t1a + t1b) / self.little_m,
          (t2a + t2b) / self.j_term,
          info_vector[0],
          info_vector[1],
      ]
  
      k1 = np.asarray(k1) * dt
  
      updated_est = info_vector + 0.5 * k1
  
      t1a = -self.b * updated_est[0] * np.abs(updated_est[0])
      t1b = -self.spring_k1 * (
          updated_est[2] + self.d2 * updated_est[3]
      )
  
      t2a = -self.spring_k1 * self.d2 * updated_est[2]
      t2b = -updated_est[3] * (
          self.spring_k1 * (self.d2**2)
          + self.spring_k2 * (self.d1**2)
      )
  
      k2 = [
          (t1a + t1b) / self.little_m,
          (t2a + t2b) / self.j_term,
          updated_est[0],
          updated_est[1],
      ]
  
      k2 = np.asarray(k2) * dt
  
      updated_est = info_vector - k1 + 2 * k2
  
      t1a = -self.b * updated_est[0] * np.abs(updated_est[0])
      t1b = -self.spring_k1 * (
          updated_est[2] + self.d2 * updated_est[3]
      )
  
      t2a = -self.spring_k1 * self.d2 * updated_est[2]
      t2b = -updated_est[3] * (
          self.spring_k1 * (self.d2**2)
          + self.spring_k2 * (self.d1**2)
      )
  
      k3 = [
          (t1a + t1b) / self.little_m,
          (t2a + t2b) / self.j_term,
          updated_est[0],
          updated_est[1],
      ]
  
      k3 = np.asarray(k3) * dt
  
      final_est = info_vector + (1 / 6) * (k1 + 4 * k2 + k3)
  
      self.x_dot, self.theta_dot, self.x, self.theta = final_est.copy()
      self.t += dt
  
imports: from __future__ import division, print_function, absolute_import
  from vispy import app, visuals
  from vispy.visuals import transforms
  from vispy.io import load_data_file
  import sys
  import numpy
  import string
  import logging
  import traceback
  from PyQt5 import QtCore, QtGui, QtWidgets
label_desc: Use image node_id 7 for calling the WigglyBar obj's underlying member method code with example usage: obj._runge_kutta_update(dt) without return types