Skip to main content
留学咨询

辅导案例-MAT00021M

By May 26, 2020No Comments

Module Code MAT00021M MMath and MSc Examinations 2019/20 Department: Mathematics Title of Exam: C++ Programming with Applications in Finance Time Allowed: You have 24 hours from the release of this exam to upload your solutions. However, this exam should take approximately 2 hours to complete. Allocation of Marks: The marking scheme shown on each question is indicative only. Question: 1 2 Total Marks: 50 50 100 Instructions for Candidates: Answer both questions. Further instructions appear on page 3. Queries: If you believe that there is an error on this exam paper, then please use the “Queries” link below the exam on Moodle. This will be available for the first four hours after the release of this exam. No corrections will be announced after four hours. After that, if a question is unclear, then answer it as best you can and note the assumptions you’ve made to allow you to proceed. Submission: Please write clearly and submit a single copy of your solution to each question. Any handwritten work in your electronic submission must be legible. Black ink is recommended for written answers. View your submission before uploading. Number each page of your solutions consecutively. Write the exam title, your candidate number, and the page number at the top of each page. Upload your solutions to the “Exam submission” link below the exam on Moodle (preferably as a single PDF file). If you are unable to do this, then email them to [email protected]. Page 1 (of 5) MAT00021M A Note on Academic Integrity We are treating this online examination as a time-limited open assessment, and you are therefore permitted to refer to written and online materials to aid you in your answers. However, you must ensure that the work you submit is entirely your own, and for the whole time the assessment is live (up to 48 hours) you must not: • communicate with departmental staff on the topic of the assessment (except by means of the query procedure detailed overleaf), • communicate with other students on the topic of this assessment, • seek assistance on this assessment from the academic and/or disability support services, such as the Writing and Language Skills Centre, Maths Skills Centre and/or Disability Services (unless you have been recommended an exam support worker in a Student Support Plan), • seek advice or contribution from any third party, including proofreaders, friends, or family members. We expect, and trust, that all our students will seek to maintain the integrity of the assessment, and of their awards, through ensuring that these instructions are strictly followed. Failure to adhere to these requirements will be considered a breach of the Academic Misconduct regulations, where the offences of plagiarism, breach/cheating, collusion and commissioning are relevant — see Section AM.1.2.1 of the Guide to Assessment (note that this supersedes Section 7.3). Page 2 (of 5) MAT00021M Further Instructions for Candidates: (a) This exam paper is accompanied by three files: • A data file YieldCurve.txt, which you should use in in Question 1. • Header files Solver02.h and Solver03.h, one of which you should use in Question 2. These files should not be modified, and should be submitted with your code. (b) You should complete the Exam quiz on Moodle as part of your work on Questions 1(a) and 2(c). (c) Submit your code as a single compressed .zip file, including all Code::Blocks project (.cbp) files (if applicable), source code and header (.cpp and .h) files, and the executable file produced by compiling and linking the project, all residing in a single parent directory. The .zip file should preserve the subdirectory structure of the parent directory (that is, the subdirectory structure must be automatically recreated when unzipping the file). (d) Submit your answer to Question 2(b) by uploading it separately to your code. Your answer can either be written by hand and scanned, or typed using a word processor or text editor. (e) If you use code written by somebody else in the exam, or code that you have previously written, then you should add a brief comment to your code indicating the source. Page 3 (of 5) Turn over MAT00021M 1 (of 2). Given a collection of data points (x0, y0) , (x1, y1) , . . . , (xN , yN), modellers are often interested in producing a curve that fits the data and adequately represents their trend so as to be able to estimate new data at intermediate values. Assume that the nodes x0, x1, . . . , xN are all distinct (not necessarily equally spaced). Define the predicting function as PN(x) � y0LN,0(x) + y1LN,1(x) + . . . + yNLN,N(x) = N� j=0 y jLN, j(x) , (1) with coefficients given by LN, j(x) � (x − x0) (x − x1) . . . � x − x j−1 � � x − x j+1 � . . . (x − xN)� x j − x0 � � x j − x1 � . . . � x j − x j−1 � � x j − x j+1 � . . . � x j − xN � = N� k=0 k� j x − xk x j − xk for each j ∈ {0, 1, . . . ,N}. It can be easily checked that LN, j(xi) = � 1, if i = j, 0, if i � j, whence PN(xi) = yi for all i ∈ {0, 1, . . . ,N}; i.e. the predicting function PN passes through all N + 1 data points. Therefore, y¯ � PN(x¯) can be used to construct a new data point (x¯, y¯) at an intermediate x¯. (a) Write a piece of code to solve the problem in Question 1 of the Exam quiz. [15] (b) Generalise the code in part (a) to write a function pred taking two arrays x,y of size N + 1 (representing the data points), N, and x¯ as parameters, and returning the value of the predicting function given by (1) at x¯. The function pred should be prevented from modifying its arguments. [20] (c) A text file YieldCurve.txt has been provided; the first line contains 9 dis- tinct maturities (in years), while the second line contains the corresponding yield rates. Start by writing a piece of code to read the data from the file and store them into two arrays, then use the function pred of part (b) to estimate the yield rate for a maturity of 8 months. Your answer should be rounded to 2 decimal places. [15] [Total: 50] Page 4 (of 5) MAT00021M 2 (of 2). An investor deposits a fixed amount D > 0 into a bank account at the start of each year. The account balance after Y years is V(r) = Y−1� k=0 Der(Y−k), where r > 0 is the (continuously compounded) interest rate. The derivative of V is V �(r) = Y−1� k=0 D(Y − k)er(Y−k). (a) Create a C++ class Investment with the following members: D Private data member of type double representing D Y Private data member of type int representing Y Value Public member function (taking a single parameter r) for calculating the value of V(r) The class should also have a suitable constructor. [20] Two header files Solver02.h and Solver03.h have been provided, containing code implementing the bisection and Newton-Raphson methods for solving non- linear equations using both virtual functions (Solver02.h) and function templates (Solver03.h). (b) Describe the factors that should be considered when choosing one of the methods in Solver02.h and Solver03.h to solve a non-linear equation of the form V(r) = x, where x is a given number. Your answer for this question should not exceed 200 words. [10] (c) Write a program that uses the Investment class to solve the problem in Question 2 of the Exam quiz. The value of r should be accurate to 4 decimal places. You should use one of the files Solver02.h and Solver03.h without any change. It is permissible to add additional member function(s) to the class Investment and/or use an inherited class in order to use the code in the chosen header file. [20] [Total: 50] Page 5 (of 5) End of examination.

admin

Author admin

More posts by admin