行列で連立方程式

---
title: "Systems of Linear Equations with Matrix 行列で連立方程式"
author: "ryamada"
date: "2016年12月24日"
output: 
  html_document:
    toc: true
    toc_depth: 6
    number_section: true
---

```{r setup, include=FALSE}
library(knitr)
opts_chunk$set(echo = TRUE)
library(rgl)
knit_hooks$set(rgl = hook_webgl)
```

# 変数の数と等式の数 Number of variables and number of equations

変数の数と等式の数が等しいとき(一次独立なら)解が求まる。

それは、線形回帰において、Xが正方行列である、ということと、
Xに逆行列が存在するということに対応し、
解が求まるとは、$\sum_{i=1}^n (y_i-\hat{y_i})2 = 0$になるということ。

$$
y = X \mathbf{a}\\
\mathbf{a} = X^{-1}y
$$

```{r}
d <- 10
n <- 10
X <- matrix(rnorm(d*n),ncol=d)
a <- rnorm(d)
a
y <- X %*% a
a.est <- solve(X) %*% y
a.est
```

線形回帰では以下の計算をした。

$$
a = (X^TX)^{-1}X^T y
$$
やってみる。

```{r}
a.est2 <- solve(t(X)%*%X)%*%t(X)%*%y
a.est
a
```
確かに結果は同じ。

残差も0になっている。

```{r}
y.hat <- X %*% a.est
y-y.hat
sum((y-y.hat)^2)
```


つまり、

$$
X^{-1} = (X^TX)^{-1}X^T
$$
なわけである。

計算してみる。

```{r}
X1 <- solve(X)
X2 <- solve(t(X)%*%X) %*% t(X)
round(X1,8)
round(X2,8)
round(X1-X2,8)
```



確かにそうなっている。

もう一度式を見てみる。
$$
X^{-1} = (X^TX)^{-1}X^T
$$
両辺に右から$(X^T)^{-1}$を掛けて
$$
X^{-1}(X^T)^{-1} = (X^T X)^{-1}
$$
となる。

これは逆行列の一般的な性質
$$
(AB)^{-1} = B^{-1}A^{-1}
$$
について、$A=X^T$,$B=X$と置いたものである。

ちなみに、$AB$の逆行列$(AB)^{-1}$$B^{-1}A^{-1}$であることは

$$
ABB^{-1}A^{-1}
$$
を二通りでかっこで区切ることで解る。

$$
ABB^{-1}A^{-1} = (AB)(B^{-1}A^{-1}) = A(BB^{-1})A^{-1}
$$
右辺は、
$$
A(BB^{-1})A^{-1} = A I A^{-1} = A A^{-1}=I
$$

これから中辺が
$$
(AB)(B^{-1}A^{-1})=I
$$
となるから、この式の意味することは
$AB$の逆行列が$B^{-1}A^{-1}$であることである。

# Exercise 1
## Excercise 1-1 
連立方程式

$$
3a_1 + 2a_2 - 4a_3 = 4\\
2a_1 - 6a_2 + 3 a_3 = -1\\
5a_1 + a_2 + 4 a_3 = 3
$$$$
\begin{pmatrix}4\\-1\\3 \end{pmatrix} = \begin{pmatrix}3,2,-4\\2,-6,3\\5,1,4\end{pmatrix}\begin{pmatrix}a_1\\a_2\\a_3\end{pmatrix}
$$

$$
y = \begin{pmatrix}4\\-1\\3 \end{pmatrix}\\
X = \begin{pmatrix}3,2,-4\\2,-6,3\\5,1,4\end{pmatrix}
$$
と置けば
$$
y = X\mathbf{a}
$$
となり、線形回帰の形である。

これを利用して、上の連立方程式を解け。

## Exercise 1-2
変数の数と等式の数が等しい連立方程式を作って、連立方程式として書き、それを行列を使って解け。