辅导Python程序设计、辅导program编程

- 首页 >> Algorithm 算法
Assignment_2
October 14, 2021
1 Lab Assignment 2
1.0.1 Hossein Kafiabad, s1234567
1.1 Presentation and coding style (3 marks)
In this assignment, some marks are allocated to your coding style and presentation. Try to make
your code more readable using the tips given in your computer lab 2. Make sure your figures have
good quality, right size, good range and proper labels.
1.2 Task 1 (4 marks)
In this task we try to use several method from Lab 2 to solve the initial value problem
y
′ = 3y − 4t, y(0) = 1, (1)
Set the step size to h = 0.05 and numerically solve this ODE from t = 0 to 0.5 using the following
methods:
• Forward Euler
• Adams–Bashforth order 2
• Adams–Bashforth order 3 (we did not code this method in the computer lab, but you can
find the formula on this wikipedia page). For this method, you need to build the very first
two steps using other methods. For the first step, use the Euler scheme. For the second step,
use Adams–Bashforth order 2.
Plot the three different approximations, and display the values in a table.
[ ]: # Import packages
import math
import numpy as np
import matplotlib.pyplot as plt
[ ]: # defining the function in the RHS of the ODE given in the question
[ ]: from pandas import DataFrame
# plot the results
1
[ ]: # printing the solution in a table
1.3 Task 2 (3 marks)
Use SymPy to solve the differential equation y
′ = 3y − 4t, with y(0) = 1, present the analytical
solution, and check the exact value of y(0.5).
Compare the result with the approximations from the three methods in Task 1. You may use a
table to show the results of each method at y(0.5). Which method is the most/least accurate?
Why?
[ ]: # standard setup
import sympy as sym
sym.init_printing()
from IPython.display import display_latex
import sympy.plotting as sym_plot
Write you answer here!
2