diff --git a/homework4/exercise_5.py b/homework4/exercise_5.py
index 1dc6dfb..82b1511 100644
--- a/homework4/exercise_5.py
+++ b/homework4/exercise_5.py
@@ -1,42 +1,65 @@
 #!/bin/env python3
 
 
 import numpy as np
 import argparse
 
-def readPositions(planet_name,directory):
+
+def readPositions(planet_name, directory):
     """
 
     :param planet_name:
     :param directory:
     :return:
     """
     m = 365
     n = 3
     planet_position = np.zeros((m, n), dtype=np.float64)
-    for i in range(0,m):
-        filename = directory+"step-"+'{:04}'.format(i)+".csv"
-        with open(filename, 'r') as f :
+
+    if directory == "Trajectories/":
+        last = 11
+    elif directory == "dumps/":
+        last = 10
+    else:
+        print("wrong directory for reference or solution files")
+
+    for i in range(0, m):
+        if directory == "Trajectories/":
+            filename = directory + "step-" + '{:04}'.format(i) + ".csv"
+        elif directory == "dumps/":
+            filename = directory + "step-" + '{:05}'.format(i) + ".csv"
+        else:
+            print("wrong directory for reference or solution files")
+
+        with open(filename, 'r') as f:
             data = f.readlines()
         for line in data:
-             words = line.split()
-             if words[11] == planet_name :
-                 planet_position[i,0:n] = np.array(words[0:n], dtype=np.float64)
+            words = line.split()
+            if words[last] == planet_name:
+                planet_position[i, 0:n] = np.array(words[0:n], dtype=np.float64)
 
     return planet_position
 
 
+def computeError(positions_sol, positions_ref):
+    error = np.sqrt(np.sum(np.power(np.subtract(positions_sol, positions_ref), 2)))
+    return error
 
-if __name__ == "__main__":
 
+if __name__ == "__main__":
     parser = argparse.ArgumentParser(description='Compute_error')
     parser.add_argument('planet_name', type=str,
                         help='specify the name of the planet')
-    parser.add_argument('directory', type=str,
+    parser.add_argument('directory_ref', type=str,
+                        help='directory with the reference files for all the steps from 1 to 365')
+    parser.add_argument('directory_sol', type=str,
                         help='directory with the solution files for all the steps from 1 to 365')
 
     args = parser.parse_args()
     planet_name = args.planet_name
-    directory = args.directory
-    planetPosition = readPositions(planet_name,directory )
-    print("done")
+    directory_ref = args.directory_ref
+    directory_sol = args.directory_sol
+    positions_ref = readPositions(planet_name, directory_ref)
+    positions_sol = readPositions(planet_name, directory_sol)
+    error = computeError(positions_sol, positions_ref)
+    print(error)
diff --git a/homework4/exercise_6.py b/homework4/exercise_6.py
new file mode 100644
index 0000000..9d3b166
--- /dev/null
+++ b/homework4/exercise_6.py
@@ -0,0 +1,42 @@
+#!/bin/env python3
+
+
+import numpy as np
+import argparse
+
+
+def generateInput(scale,planet_name,input_filename,output_filename):
+    scale_velocity = np.zeros((3,), dtype=np.float64)
+    out_file = open(output_filename, 'w')
+    separator = ' '
+    with open(input_filename, 'r') as f:
+        data = f.readlines()
+    for line in data:
+        words = line.split()
+        if words[10] == planet_name:
+            scale_velocity = np.multiply(scale, np.array(words[3:6], dtype=np.float64))
+            string_velocity = np.array2string(scale_velocity, separator=' ')  # There is a loss of precision here
+            out_file.write(separator.join(words[0:3]) + string_velocity[1:-2] + " " + separator.join(words[6:11]) + '\n')
+        else:
+            out_file.write(separator.join(words) + '\n')
+    out_file.close()
+    return out_file
+
+
+if __name__ == "__main__":
+    parser = argparse.ArgumentParser(description='Compute_error')
+    parser.add_argument('planet_name', type=str,
+                        help='specify the name of the planet')
+    parser.add_argument('scale', type=float,
+                        help='scale for velocity')
+    parser.add_argument('input_filename', type=str,
+                        help='input filename')
+    parser.add_argument('output_filename', type=str,
+                        help='output_filename filename')
+
+    args = parser.parse_args()
+    planet_name = args.planet_name
+    scale = args.scale
+    input_filename = args.input_filename
+    output_filename = args.output_filename
+    out_file = generateInput(scale, planet_name, input_filename, output_filename)
\ No newline at end of file