---
jupytext:
  cell_metadata_filter: -all
  formats: md:myst
  text_representation:
    extension: .md
    format_name: myst
kernelspec:
  display_name: Python 3
  language: python
  name: python3
---

(ch:intro)=
# Introduction




In this chapter, we do blah.
Specifically

- foo
- bar.
- baz

For more details, see 
{ref}`ch:hmm` and  {cite}`Sarkka13`.


## What are state space models?

## Python

We\'re now ready to start coding.

```{code-cell}
from matplotlib import rcParams, cycler
import matplotlib.pyplot as plt
import numpy as np
plt.ion()
```

```{code-cell}
# Fixing random state for reproducibility
np.random.seed(19680801)

N = 10
data = [np.logspace(0, 1, 100) + np.random.randn(100) + ii for ii in range(N)]
data = np.array(data).T
cmap = plt.cm.coolwarm
rcParams['axes.prop_cycle'] = cycler(color=cmap(np.linspace(0, 1, N)))


from matplotlib.lines import Line2D
custom_lines = [Line2D([0], [0], color=cmap(0.), lw=4),
                Line2D([0], [0], color=cmap(.5), lw=4),
                Line2D([0], [0], color=cmap(1.), lw=4)]

fig, ax = plt.subplots(figsize=(10, 5))
lines = ax.plot(data)
ax.legend(custom_lines, ['Cold', 'Medium', 'Hot']);
```

```{code-cell}
import matplotlib.pyplot as plt
import numpy as np
import jax
import jax.numpy as jnp

print(jax.devices())
```

## Images


<!---
![](https://myst-parser.readthedocs.io/en/latest/_static/logo-wide.svg)
--->

<img src="https://github.com/probml/probml-notebooks/blob/main/images/cat_dog.jpg"
style="height:200">

```{figure} /images/cat_dog.jpg
:scale: 50%
:name: cat_dog

A photo of a cat and a dog.
```

```{figure} /images/cat_dog.jpg
:scale: 50%
:name: cat_dog2

Another photo of a cat and a dog.
```

In {numref}`Figure %s <cat_dog>` we show catdog.
In {numref}`Figure %s <cat_dog2>` we show catdog2, its twin.


## Math

We have $E= mc^2$, and also

```{math}
:label: foo
a x^2 + bx+ c = 0
```

From {eq}`foo`, it follows that
$$
\begin{align}
0 &= a x^2 + bx+ c \\
0 &= a x^2 + bx+ c 
\end{align}
$$

