線形代数
カテゴライズしてクラウドに挙げればいいのではと思った。
ベクトル空間の定義
ベクトル和(結合法則、交換法則、零ベクトル、逆ベクトル)
ベクトルのスカラー倍(分配法則、結合法則、単位係数)
基底の定義
線形独立
完全性
座標
$$ x = c_ib_i $$= (b1 b2 ... br) (c1 c2 ... cr 列ベクトル)
cを基底bでの座標という
多項式でもベクトル空間を作れる
部分空間の合併はベクトル空間の部分空間になるとは限らない 和集合と合併の違いは?和集合はW1とW2の線形結合で作られる要素の集合 部分空間の次元の公式 dim(W1)+dim(W2)=dim(W1+W2)+dim(W1かつW2) (r+s) + (r+t) = r + (r+s+t)
〇写像 線形写像の定義 T:V->W, V,Wは任意のベクトル空間 T(x+y)=T(x)+T(y) T(ax)=aT(x) 2つを組み合わせると線形性 射影の定義 P:V->V P2=P <=> P(P(x))=P(x) 微分は線形写像
拡大縮小は線形写像 拡大縮小における合成写像は積と見做せる。 従って、拡大縮小は群を為す。 回転は線形写像 回転における合成写像は和と見做せる。 従って、回転は群を為す。
表現行列 有限次元のベクトル空間は、その次元数個の基底ベクトルで表現できた。 そして、その空間における線形写像は行列で表現できる。 V:n次元ベクトル空間, W:m次元 線形写像f:V->W 表現行列M_fの定義 (f(v1) f(v2) ... f(vn)) = (w1 w2 ... wm) M_f
線形写像F:V->Wの値域F(V)はWの線形部分空間 値域F(V)の次元をFのランクという 全単射なFを同型写像という 実ベクトル空間の同型定理 m次元実ベクトル空間Rmのn次元の部分ベクトル空間をVとする。VとRnは同型。 複素ベクトル空間でも成立。 これによって、有限次元ベクトル空間は実(複素)係数であればRn(Cn)と同一視できる。
行列の列ベクトル分解 その列ベクトルの線形結合で構成される空間 行列の列ベクトル空間はその行列で表される写像の値域に等しい 行列のランクはその像の次元に等しいと定義する
列ベクトル空間による連立1次方程式の解の存在定理 連立1次方程式の行列表示 Ax=b において、 1. bがAの値域の要素 => Ax=bを満たすVの要素xが存在する 2. rank(A)=dim(W) => Wの任意の要素bに対してAx=bを満たすVの要素xが存在する イメージ 1.どのbをとってもAの値域の中にある。Aの値域のすべての要素には辿り元が必ずある。 2.Aの値域がWと同じ
行列の核 線形写像T:V->Wの表現行列Aについて、Ax=0を満たすVの要素xの集合は、 Vの線形部分空間となる。これを行列Aの核、あるいはカーネルといい、Ker(A)と書く。 カーネルの次元を退化次数という。 ・連立一次方程式の解と核 解の存在を仮定し、x0とする。カーネルから要素yを持ってきたとき、x+yも解となる。 ・解の一意性 核がゼロベクトル空間 => 解は1つしかない
基本行列 行の入れ替え操作を表す行列=単位行列において対応する行を入れ替えた行列 行の定数倍操作を表す行列=単位行列において対応行を定数倍した行列 i行にj行のc倍を足す操作を表す行列=単位行列においてi行j列が定数の行列 基本行列は正則行列 P:自身が逆行列 Q:定数を逆数にしたものが逆行列 R:定数を-1倍したものが逆行列
拡大係数行列に基本行列を掛けてガウスの消去法(上三角行列を作る前進消去)を再現 後は方程式の形に戻して後退代入
係数行列のLU分解 係数行列Aを下三角行列Lと上三角行列Uの積で表すこと 前進消去すれば上三角は得られる。そして、その際に用いた基本行列を使って下三角を作る。 LU分解の前提条件 係数行列が正則、前進消去において行の交換が不要 LDU分解 Uの対角成分を1にするために対角行列Dを導入した 一意的である
行の入れ替え操作が必要になると、LU分解できなくなる R_4(2,1;-2)R_4(3,1;-1)R_4(4,1;1)の積の行列は、単位行列において、 (2,1)成分が-2,(3,1)成分が-1,(4,1)成分が1の行列(1列目の完成が最後になるのが良い?) 具体的には下三角行列を作れなくなる。Pによって対角成分がずらされるから。 解決策;操作の途中にPがあるとダメだった。最初にPをしておけば、PAはLU分解できる。 (AB)-1=BA 並び順が逆になる
== : 行列の成分ごとのTrue/Faulse np.allclose関数 : 2つの行列の完全一致を確認
行の入れ替えが操作の途中で明らかになるのは嫌 R3(a,b;c)をP4(2,3)で挟むと、a=2の場合はa=3となり、a=3の場合はa=4となる。それ以外の場合は不変。 PP=I これで途中にPが出てきても手戻りを回避できる。これはすごい。感動的。
np.linalg.inv関数 : 逆行列を求める
確定拠出年金について
しっかり考えろ。考えないで楽する奴は搾取される。
年金について
年金は3つの部分から構成される。
1. 国民年金;全員加入
2. 厚生年金;会社員は強制加入
3. 確定拠出年金;個人型 or 企業型(自分で決められる)
この記事では「3. 確定拠出年金(通称、DC年金)」を扱う。
DC年金の存在意義
近年、老後2000万円問題とか言われている。 この制度は、老後の資金を自分で作りましょうという国からの提案。 そうする人には税の軽減をしてあげますよということらしい。
そうしない人、出来ない人は、老後お金が足りず困る?救済措置は?こんなのお金がある人しかできないやん。それでいいのか。お金がある人は自分でやってもらって、お金がない人は国が助けるということかも。お金がある人が国にたかろうとしたら困るので、お金がある人を優遇することでこっちにこないようにしている。
企業型DC年金
将来貰うはずの年金を毎月の給料に割り振って運用する。 諸手続きは会社がやってくれて、商品選びと運用を自分でやる。
メリット
日本の税は受け取るときに発生するらしい。企業型DC年金では、給料から手取りになる過程で掛け金が引かれる。よって、住民税、所得税、社会保険料負担が発生しない。
(個人型DC年金、通称iDeCoなるものがあるが、こちらだと社会保険料は発生する。社会保険料の負担額は結構大きいらしく、これが企業型DCの優位性といえる。)
また、口座管理手数料がゼロ(会社が負担)である。
(これもiDeCoは負担しなければならない)
デメリット
60歳まで引き出せない。自由に使えないお金になってしまう。
商品の手数料(信託報酬)が高い。
マッチング拠出について
企業の拠出に自分の拠出を上乗せすることができる。企業の掛け金を超えることは許されない。また、月額27,500円を超えることは許されない。
企業型DC年金の闇
口座管理手数料は会社が払う。会社はなるべく安いところと契約したい。金融機関達は口座管理手数料の安さ争いを始める。それで金融機関は顧客確保できるかもしれないが、おいしくない。そこで、代わりに商品のコストで稼ぐ。
例えば、信託報酬2%とかにされる。イデコなら0.1%とかで出来るらしい。1%でも高いと言われているらしい。
問題はどんなふうに運用するか
商品の選び方
バランス型はダメ
バランス型とは、1つの商品で分散投資できるもの。
コストが高い。信託報酬を見比べよう。
割合が固定されてる。分散投資するなら時価総額に応じて割り当てるべき
買うべきは米国ETF
Exchange Traded Fund 上場投資信託 市場で自由に取引可能な投資信託
ランニングコストが安い 金融機関が儲からない=買うべき商品
規模がでかい お金が多いところにお金は集まる
為替変動のリスクがある リスクヘッジ…
自動積立投資ができない 自分で買わないといけない
1口単位でしか買えない 1口に3万円以上
配当されてしまう
いろいろコストがかかる
良い投資環境の条件 2022は厳しい? テーパリングが行われる 金融市場に出回るお金が減らされる。買いにくくなる。株価が上がらない。むしろ下がるかも。 コロナによる経済停滞を食い止めるためにお金をばらまいた。回復してきたのでお金を回収する。お金を使わせるようにする。 https://www.youtube.com/watch?v=wKCxaSQ78MA&t=0s 利上げされる 金利の上昇局面では投資環境は厳しくなる 年率リターン - 債券の利回り = 投資するメリット 時価総額(=会社の価値)が例外なく下がる 対策 焦らず持ち続ける。上昇局面で波に乗るためには挑戦し続けるしかない いつ投資するか、来るべき時に備える コアサテライト戦略 https://www.youtube.com/watch?v=ocnzWtVf554&t=0s
個人型DCのiDecoについて知る 大事なのは儲かるかどうか。運用なので。 貯めておきたいなら使わないのが一番。使うのは増やしたいからに他ならない。
individual-type Defined Contribution pension plan (iDeCo) 個人型確定拠出年金
確定拠出とは 事前に定まった掛け金を積み立てていくこと 勝手に使われていく 商品は厳選されている 差し押さえられない 持ち運び可能
メリット 2.運用収益は非課税 3.退職金や年金として控除 つまり、税金をあまり取り立てませんよ
デメリット 1.長期間資金が拘束される 2.元本割れリスクがある 3.手数料がかかる 4.節税にならないかも
専用の口座開設が必要。運用商品の選択が必要。 SBI証券:2005からの運営実績、口座開設手数料0、運営管理手数料0、 SBI・全世界株式インデックスファンド、eMAXIS Slim米国株式 怖いなら、50歳くらいから少しずつ株式を売却して定期預金へ
線形代数×Python ~基礎編~
連立一次方程式
問題の整理
変数の導入とそれに課される制約条件
定式化
数学的手続き
変数の個数を減らす;定数倍、定数加算、代入 → 掃き出し法
Gauss-Jordanの消去法 完全前進消去 Gaussの方法で代入しないもの
Gaussの消去法 前進消去+後退代入 慣れ親しんだもの
方程式の数と未知数の数が異なるなら、 その方程式系は自由度(自由パラメタ)を持つ
連立一次方程式の分類
解が一意に存在する
解が無限に存在する
解が存在しない
幾何学的解釈
グラフが交点を持つ
グラフが一致している
グラフが平行である
type関数で変数の型が分かる
pythonでは虚数単位はj 虚部が1なら1jと記載
ベクトルや行列はNumPyで扱う
ベクトルはarray関数で生成
range関数と組み合わせると良い
行列もarray関数で生成, 行ごとにで括る
要素へのアクセスに際して、pythonのインデックスは0から始まるので、
行と列のインデックスの値をそれぞれ-1する
スカラー積 *
ベクトル和 +
連立方程式を行列表示する際にベクトルを列で表すと計算の仕方上見やすい
ベクトルを行で表すと係数行列の転置を取る必要があり複雑になる
行列の積はdotメソッドを使う
行を置換する基本行列
P_3(1,2)=作用させると作用先の1行目と2行目を置換する行列
=単位行列の1行目と2行目が入れ替わった行列
右から作用させると列の入れ替えになる
なぜ行列の積の定義はややこしいのか?連立一次方程式を簡潔に表すため
数学的にはベクトルを列として扱うが、python上では行として扱う。
つまり、行ベクトル列ベクトルの区別がない
単位行列はnp.identity()で生成
np.array()とnp.array([])は演算できない。の数を揃えること。
包含関係はややこしい
論理包含
食べたらうんこする
食べた、うんこする 真
食べた、うんこしない 偽
食べない、うんこしない 真
食べない、うんこしない 真
包含関係のベン図
写像:一意的な対応関係
全射:(終域=値域)
単射:(写した先が重複しない)
2項演算:f:XX -> X
2項関係:f:XX -> {True,Fauls}
同値類:同じ同値関係を持つ要素の集合
商集合:同値類を要素とする集合
群の定義
行列による群
n次正則行列を考える。これはn次元ベクトル空間上の変換である。
行列積を群が持つ演算とする。単位元は単位行列。逆元は逆行列。
一般線形群 GL_n(R);実数, GL_n(C);複素数
zshよく使うコマンド、他
find . -name '*.hoge' | xargs rm ファイル削除
grep "test" -nr . | grep mock ファイルの中身検索
ps auwx 稼働プロセス情報
ps auwx | grep a.py | grep -v grep | awk '{print $2}' プロセス番号を取り出す
kill -9 プロセスのキル
du | sort -nr | head -n 5 ファイル容量大きいものトップ5
wc -l 行のカウント
Windowsの便利なショートカットキー
win+i 設定を開く
win+v クリップボード履歴
ctrl+alt+del シャットダウンする
Windowsの便利なフリーソフト
メモ帳代わりのエディタ gvim
Vim — KaoriYa
ウィンドウマネージャー divvy
ディスク情報 crystaldiskinfo
ヘルスチェック CCleaner
ガジェット 8GadgetPack
画面上でメモ sticky notes
スクリーンセーバー Aerial
携帯に移動させられる2段階認証など Authy
パスワード管理 LastPass
リモートコントロール ChromeRemoteDesktop
Chrome Browserの小技
ctrl+ +/- 拡大縮小
拡張機能
JSON Formatter web情報見やすく
Google Translate 翻訳
AutoPagerize 次へボタンが不要になる
OneTab 開きすぎたタブを整理
Postman API用
Slackの便利なプラグイン
Google Calenderと連携
Zomm \zoomですぐにズーム
zshプラグイン
oh my zsh
Oh My Zsh - a delightful & open source framework for Zsh
zshのプラグインをインストールするための物
~/.zshrc.pre-oh-my-zsh にzshrcの内容がバックアップされる
cat ~/.zshrc.pre-oh-my-zsh >> ~/.zshrc で書き込み
zshconfigでzshrcをvimで開く
ohmyzshでohmyzsh開く
プラグインの追加方法
zshrcのpluginsに追加したいものを追記
/home/ryosuke/.oh-my-zsh/plugins/にデフォルトのプラグイ ンがある
z
以前行ったディレクトリにキーで移動できる
cdのもっと楽な奴。名前をちゃんと覚えてなくてもおk
wting/autojump
zより拡張性があるautojump
gitプロトコルは廃止になったから、httpsに変えないと
jでジャンプ
web-search
google hogeでwebブラウザ起動
tmuxのvimコピーと組み合わせると強い
fzf
alt+cでfzf起動
syntax-hilight
GitHub - zsh-users/zsh-syntax-highlighting: Fish shell like syntax highlighting for Zsh.
autosuggestion
GitHub - zsh-users/zsh-autosuggestions: Fish-like autosuggestions for zsh
ctrl+eで決定
別に要らない
sourceで動かないときは exec zsh
powerlevel10k
ターミナルの外観を変更できる
まずはフォントのインストール
ターミナルフォント設定 MesoloLGS NF
p10k configureで再設定
その他プラグイン
extract フォルダ展開が楽になる
trash-cli ゴミ箱操作
neofetch os情報表示
zshのこと
zshのコマンド
!(command) 直近のコマンド呼び出し
ctrl+r コマンド検索
ctrl+a カーソルを行頭へ
ctrl+k カーソルから行末まで削除
ctrl+e カーソルを行末へ
ctrl+b カーソルを1文字戻る
ctrl+f カーソルを1文字進める
ctrl+d カーソル位置の文字を削除
zshの設定
~/.zshrc
setopt no_beep 音を鳴らさない
setopt auto_pushd cdがpushdになる
setopt pushd_ignore_dups 重複を無視
setopt auto_cd cdコマンドなしで移動
historyコマンドのために
setopt hist_ignore_dups
setopt share_history
setopt inc_append_history
ターミナル分割 tmux
screen, tmux
ターミナルの分割ができるよ
tmuxの方が上位互換
Screen
Cannot make directory '/run/screen': 許可がありません
export SCREENDIR=$HOME/.screen で解決
screen (セッション)起動
ctrl+a S 画面横分割
ctrl+a Tab 画面移動
ctrl+a c プロセス起動
ctrl+a | 画面縦分割
ctrl+a Q ペインを閉じる
ctrl+a d デタッチ
screen -r num アタッチ
screen -ls アクティブな画面のチェック
ターミナルが切れてもサーバーは残る
exitやctrl+dでセッションを閉じる
tmux
tmux セッション起動
ctrl+b d デタッチ
tmux ls
tmux a -t (session nums) アタッチ
ctrl+b s セッションのスイッチ
ペイン
~.tmux.conf
bind \ split-window -h
bind - split-window -v
ctrl+b \ 横分割
ctrl+b - 縦分割
ctrl+b z 拡大/縮小
ctrl+b o ペインの移動
ctrl+b {/} ペインの入れ替え
ウィンドウ
ctrl+b c 新規ウィンドウ
ctrl+b n 次のウィンドウ
ctrl+b , ウィンドウのリネーム
tmux上でvimのような操作
setw -g mode-keys vi
bind-key -T copy-mode-vi 'v' send -X begin-selection
bind-key -T copy-mode-vi 'C-v' send -X rectangle-toggle
bind-key -T copy-mode-vi 'y' send-keys -X copy-pipe-and-cancel clip.exe
ctrl+b [ でvimモードへ
enterで抜ける