### Computing for Mathematics - Mock individual coursework

This jupyter notebook contains questions that will resemble the questions in your individual coursework.

**Important** Do not delete the cells containing: 

```
### BEGIN SOLUTION

### END SOLUTION
```

write your solution attempts in those cells.

**If you would like to** submit this notebook:

- Change the name of the notebook from `main` to: `<student_number>`. For example, if your student number is `c1234567` then change the name of the notebook to `c1234567`.
- Write all your solution attempts in the correct locations;
- Save the notebook (`File>Save As`);
- Follow the instructions given in class/email to submit.

#### Question 1

Output the evaluation of the following expressions exactly.

a. \\(\frac{(9a^2bc^4) ^ {\frac{1}{2}}}{6ab^{\frac{3}{2}}c}\\)


```python
### BEGIN SOLUTION
import sympy as sym
a, b, c = sym.Symbol("a"), sym.Symbol("b"), sym.Symbol("c")

sym.expand((9 * a ** 2 * b * c ** 4) ** (sym.S(1) / 2) / (6 * a * b ** (sym.S(3) / 2) * c))
### END SOLUTION
```




$\displaystyle \frac{\sqrt{a^{2} b c^{4}}}{2 a b^{\frac{3}{2}} c}$



b. \\((2 ^ {\frac{1}{2}} + 2) ^ 2 - 2 ^ {\frac{5}{2}}\\)


```python
### BEGIN SOLUTION
sym.expand((sym.S(2) ** (sym.S(1) / 2) + 2) ** 2 - 2 ** (sym.S(5) / 2))
### END SOLUTION
```




$\displaystyle 6$



3. \\((\frac{1}{8}) ^ {\frac{4}{3}}\\)


```python
### BEGIN SOLUTION
(sym.S(1) / 8) ** (sym.S(4) / 3)
### END SOLUTION
```




$\displaystyle \frac{1}{16}$



### Question 2

Write a function `expand` that takes a given mathematical expression and returns the expanded expression.


```python
def expand(expression):
    ### BEGIN SOLUTION
    """
    Take a symbolic expression and expands it.
    """
    return sym.expand(expression)
    ### END SOLUTION
```

### Question 3

The matrix \\(D\\) is given by \\(D = \begin{pmatrix} 1& 2 & a\\ 3 & 1 & 0\\ 1 & 1 & 1\end{pmatrix}\\) where \\(a\ne 2\\).

a. Create a variable `D` which has value the matrix \\(D\\).


```python
### BEGIN SOLUTION
a = sym.Symbol("a")
D = sym.Matrix([[1, 2, a], [3, 1, 0], [1, 1, 1]])
### END SOLUTION
```

b. Create a variable `D_inv` with value the inverse of \\(D\\).


```python
### BEGIN SOLUTION
D_inv = D.inv()
### END SOLUTION
```

c. Using `D_inv` **output** the solution of the following system of equations:

\\[
\begin{array}{r}
    x + 2y + 4z = 3\\
    3x + y = 4\\
    x + y + z = 1\\
\end{array}
\\]


```python
### BEGIN SOLUTION
b = sym.Matrix([[3], [4], [1]])
sym.simplify(D.inv() @ b).subs({a: 4})
### END SOLUTION
```




$\displaystyle \left[\begin{matrix}\frac{7}{3}\\-3\\\frac{5}{3}\end{matrix}\right]$



### Question 4

During a game of frisbee between a handler and their dog the handler chooses to randomly select if they throw using a backhand or a forehand: 25% of the time they will throw a backhand.

Because of the way their dog chooses to approach a flying frisbee they catch it with the following probabilities:

- 80% of the time when it is thrown using a backhand
- 90% of the time when it is thrown using a forehand

a. Write a function `sample_experiment()` that simulates a given throw and returns the throw type (as a string with value `"backhand"` or `"forehand"`) and whether it was caught (as a boolean: either `True` or `False`).


```python
import random


def sample_experiment():
    """
    Returns the throw type and whether it was caught
    """
    ### BEGIN SOLUTION
    if random.random() < .25:
        throw = "backhand"
        probability_of_catch = .8
    else:
        throw = "forehand"
        probability_of_catch = .9
                
    caught = random.random() < probability_of_catch
    ### END SOLUTION
    return throw, caught
```

b. Using 1,000,000 samples create a variable `probability_of_catch` which has value an estimate for the probability of the frisbee being caught.


```python
### BEGIN SOLUTION
number_of_repetitions = 1_000_000
random.seed(0)
samples = [sample_experiment() for repetition in range(number_of_repetitions)]
probability_of_catch = sum(catch is True for throw, catch in samples) / number_of_repetitions
### END SOLUTION
```

c. Using the above, create a variable `probability_of_forehand_given_drop` which has value an estimate for the probability of the frisbee being thrown with a forehand given that it was not caught.


```python
### BEGIN SOLUTION
samples_with_drop = [(throw, catch) for throw, catch in samples if catch is False]
number_of_drops = len(samples_with_drop)
probability_of_forehand_given_drop = sum(throw == "forehand" for throw, catch in samples_with_drop) / number_of_drops
### END SOLUTION
```

e239d74c0078686106f65438c41d87d72132f2ca
ipynb
Jupyter Notebook
assets/assessment/mock/solution.ipynb
drvinceknight/cfm
06977f5c1ba37590b17a8d2a22f57e3575875b3b
MIT
2016-08-25T01:05:20.000Z
2021-07-04T16:17:06.000Z
assets/assessment/mock/solution.ipynb
drvinceknight/cfm
06977f5c1ba37590b17a8d2a22f57e3575875b3b
MIT
2016-08-24T20:08:15.000Z
2021-12-19T23:26:14.000Z
assets/assessment/mock/solution.ipynb
drvinceknight/cfm
06977f5c1ba37590b17a8d2a22f57e3575875b3b
MIT
2016-09-22T12:36:03.000Z
2019-03-13T13:21:30.000Z
Qwen/Qwen-72B
1. YES
2. YES