Expert Python Homework helper
1039 Order Completed
95 % Response Time
41 Reviews
Since 2014

Expert Python Homework helper

Vancouver, Canada

Samuel, H

PhD. in Programming, University of Alberta, Canada 

Profession

Expert Python Homework helper

Skills

My career as a Python homework helper started seven years ago when I joined ProgrammingHomeworkHelp.com. Since then, I have offered academic support to students who find Python challenging to help them gain a better understanding of this programming language and improve their academic performance. Though I can handle any topic in Python, my specialty is multi-threading, GUI programming, metaclasses, iterators, generators, and decorators, and introspection. I am well versed in both basic and advanced Python topics and I believe I could be of great assistance to your project. I take pride in my ability to work fast, as this always enables me to meet my clients’ deadlines. If you genuinely need someone to take off that demanding Python assignment off your hands, look no further. I am willing to work with you and even go that extra mile to see you flaunt your dream grades this semester. Contact me with your assignment details and we will get that ball rolling!

Get Free Quote
0 Files Selected

Solving a linear system of equations

public class App { public static void main(String[] args) throws Exception { // First, define the tolerance double epsilon = 5E-6; // Define maximum number of iterations int maxIters = 500; // Define the initial values/seed (x0^0) double[] x0 = {0,0,0,0,0,0}; // Define the matrix of coefficients double[][] M = { {4, -1, 0, -2, 0, 0}, // coefficients for first equation {-1, 4, -1, 0, -2, 0}, // second equation {0, -1, 4, 0, 0, -2}, // third {-1, 0, 0, 4, -1, 0}, // fourth {0, -1, 0, -1, 4, -1}, // ... {0, 0, -1, 0, -1, 4} // last equation }; // Define vector b (equalities) double[] b = {-1, 0, 1, -2, 1, 2}; // Call method Jacobi(M, b, x0, epsilon, maxIters); System.out.println(""); GaussSeidel(M, b, x0, epsilon, maxIters); } public static void Jacobi(double[][] M, double[] b, double[] x0, double epsilon, int maxIters) { System.out.println(" *** JACOBI METHOD *** "); System.out.println("Solving the following system:"); System.out.println("Number of variables: " + b.length); System.out.println("Toleance: " + epsilon); System.out.println("Max. number of iterations: " + maxIters); System.out.println("The system is:\n"); // Define initial error double err = 1E+10; // a rally big number // Define number of equations/variables int N = b.length; // Print equations so user can see them for(int i = 0; i < N; i++) { for(int j = 0; j < N; j++) { System.out.print(M[i][j]+"*x" + (j+1) + " "); } System.out.print("= " + b[i] + "\n"); } System.out.println(""); System.out.println("Starting iterations... "); // Start iterations double[] xold = x0; // varray to store old values (from previous iteration) double[] xnew = xold.clone(); // array to store the result of the new iteration int iterCounter = 0; // variable to count the iterations double xi, erri; // helper variables to be used in the method while(err > epsilon) { iterCounter++; // Jacobi Method for(int i = 0; i < N ;i++) { xi = b[i]; for(int j = 0; j < N; j++) { if(i != j) xi -= M[i][j] * xold[j]; } xi = xi/M[i][i]; xnew[i] = xi; } // Calculate errors and pick maximum /* For this method the error is calculated as the difference between the old solution and the new one. */ double maxErr = -1; for(int i = 0; i < N; i++) { erri = Math.abs((xnew[i]-xold[i])); if(erri > maxErr) maxErr = erri; } xold = xnew.clone(); // For the next iteration, the old_values are the new_values in this one err = maxErr; System.out.println("Iteration " + iterCounter + ", Err: " + err); if(iterCounter == maxIters) // reached maximum number of iterations { System.out.println("Maximum number of iterations reached. Last error: " + err); break; } } // Display results only if the system converged if(iterCounter < maxIters && err <= epsilon) { System.out.println(""); System.out.println("Convergence achieved in " + iterCounter + " iterations. Min error was: " + err); System.out.println("The solution is:"); for(int i = 0; i < N; i++) { System.out.println("x[" + (i+1) + "] = " + xnew[i]); } } } public static void GaussSeidel(double[][] M, double[] b, double[] x0, double epsilon, int maxIters) { System.out.println(" *** GAUSS-SEIDEL METHOD *** "); System.out.println("Solving the following system:"); System.out.println("Number of variables: " + b.length); System.out.println("Toleance: " + epsilon); System.out.println("Max. number of iterations: " + maxIters); System.out.println("The system is:\n"); // Define initial error double err = 1E+10; // a rally big number // Define number of equations/variables int N = b.length; // Display equations for(int i = 0; i < N; i++) { for(int j = 0; j < N; j++) { System.out.print(M[i][j]+"*x" + (j+1) + " "); } System.out.print("= " + b[i] + "\n"); } System.out.println(""); System.out.println("Starting iterations... "); // Start iterations double[] x = x0; // vector of solutions is setted to the initial values int iterCounter = 0; // variable to count interations double xi, erri; // helper variables double sigma; // helper variable for gauss-Seidel method // Start iterations while(err > epsilon) { iterCounter++; // Gauss-Seidel method for(int i = 0; i < N ;i++) { sigma = 0; for(int j = 0; j < N; j++) { if(i != j) sigma += M[i][j]*x[j]; } xi = (b[i]-sigma)/M[i][i]; x[i] = xi; } // Calculate errors and pick maximum /* For this method the error is calculated as the value of the functions for the current solution. The method converges when the value of the function f(xi)-bi = 0 is less than epsilon */ double maxErr = -1; for(int i = 0; i < N; i++) { erri = 0; for(int j = 0; j < N; j++) { erri += M[i][j]*x[j]; } erri -= b[i]; erri = Math.abs(erri); if(erri > maxErr) maxErr = erri; } //xold = xnew.clone(); // the results of this iterations are the old for the next iteration err = maxErr; System.out.println("Iteration " + iterCounter + ", Err: " + err); if(iterCounter == maxIters) // reached max number of iters { System.out.println("Maximum number of iterations reached. Last error: " + err); break; } } if(iterCounter < maxIters && err <= epsilon) // display results only if system converged { System.out.println(""); System.out.println("Convergence achieved in " + iterCounter + " iterations. Min error was: " + err); System.out.println("The solution is:"); for(int i = 0; i < N; i++) { System.out.println("x[" + (i+1) + "] = " + x[i]); } } } }

Python Gradebook Analyser Tool

# Define a helper function to know if the entered input is a number (float) or no def isNumber(str): try: float(str) return True except ValueError: return False # First, display the tool's greet message print("Welcome to the gradebook analyzer!") # Display some instructions print("This tool will analyze the grades for students and will output the average grade for each student.") print("You must specify the number of students and the grades for each one. Note that grades must be between 0 and 100.") print("") # To keep asking user for inputs when he/she enters an invalid value, we will use # a while loop # The following variable is used to know when to stop the main loop stop = 0 talk_state = 0 # This variable is used to know in which state of the user-program conversation we are at students = [] # This list is used to hold lists for each student # Each sub list will contain the grades for each student averages = [] while stop == 0: if talk_state == 0: # Ask for number of students # Now, ask user for number of students Nstudents = input("How many students are in the class? ") # Check if input is valid if not isNumber(Nstudents) or int(Nstudents) < 1: print("Invalid number of students. Quantity must be at least 1.") else: Nstudents = int(Nstudents) talk_state = 1 # Move to next state elif talk_state == 1: # Now, enter a for loop from 0 to Nstudents - 1 for i in range(Nstudents): """ In order to keep asking to user for student_i's grades, we will use another while-loop that will be exited when user enters "No" """ exit_loop = 0 student_id = i+1 student_scores = list() while exit_loop == 0: score = input("Enter student " + str(student_id) + "'s assignment score: ") if not isNumber(score) or float(score) < 0.0 or float(score) > 100.0: print("Invalid score. Score range is from 0 to 100.") else: student_scores.append(float(score)) invalid_option = 1 while invalid_option == 1: option = input("Enter another score?: ") if option.lower() in ['yes', 'no']: # A valid option entered invalid_option = 0 if option.lower() == 'no': exit_loop = 1 # Display average if len(student_scores) > 0: avg_grade = sum(student_scores)/len(student_scores) else: avg_grade = 0 averages.append(avg_grade) # Append to main list students.append(student_scores) print("Student " + str(student_id) + "'s average was: {0:.1f}".format(avg_grade)) else: print("Invalid option. Please enter Yes or No.") talk_state = 2 elif talk_state == 2: # Display overall average # Calculate class average class_avg = sum(averages)/len(averages) print("Class average: " + str(class_avg)) # Display how many As, Bs, Cs, etc As = 0 Bs = 0 Cs = 0 Ds = 0 Fs = 0 for averg in averages: if averg >= 90.0: As += 1 elif averg >= 80 and averg <= 89.9: Bs += 1 elif averg >= 70 and averg <= 79.9: Cs += 1 elif averg >= 60 and averg <= 69.9: Ds += 1 elif averg < 60: Fs += 1 print("As: " + str(As)) print("Bs: " + str(Bs)) print("Cs: " + str(Cs)) print("Ds: " + str(Ds)) print("Fs: " + str(Fs)) talk_state = 3 # Move to next state elif talk_state == 3: invalid_option = 1 while invalid_option == 1: option = input("Would you like to analyzer another class (yes/no)? ") if option.lower() in ['yes', 'no']: invalid_option = 0 if option.lower() == 'yes': averages = [] students = [] talk_state = 0 else: stop = 1 print("Thank you for using the gradebook analyzer!")