ぜろといち

ポンコツ理系大学院生による雑多なブログ

毎日やりたいタスクメモ

これからやりたい事メモ。 - 研究

自分の研究が1日1ミリも進んでないのはいけないからできるだけアウトプットするようにする

  • カランメソッド

  • ディスカッション

  • 本読みしたもののアウトプット

小さい章目標決めてコツコツアウトプットしていく感じ

  • 競プロ問題

1日1問は行かなくてもやったものの解き直しとかはやっておく

とりあえずしばらくは試験と思って時間計ってやるより細かく数問ずつ

  • 論文読み

1日1本じゃなくてもかじってくだけでもいいから形にしておく

  • 実装

論文のものか本のものでも何かしら書かないと(アバウト)

  • The fundamental of music information processing

ちゃんとまとめていきたい。でも手つけられるか・・・

  • ピアノ

余力があれば・・・

英語での住所の書き方

教材の申し込みをした時に地味に分からなかったのでメモ。

english-columns.weblio.jp

例1:名古屋市役所所在地

〒460-0015 愛知県名古屋市中区大井町7−25

street: 7-25 Oimachi Naka-ku
city: Nagoya
state: Aichi

Streetは区から番地まで、cityは市、state(prefecture)は都道府県を書けば良いみたい。
他にも流儀はあるみたいだけど(?)。

カランメソッドについて情報収拾した事まとめ

最近英会話能力練習方法の1つとしてあるカランメソッドをやり始めてみたのだが、始めるにあたって情報収拾したものを雑多にまとめる。

カランメソッドの復習方法

5cebu.com

音源を使ってシャドーイングでも効果あるし、それを先生に見立ててすぐさま解凍するように心がける。

カランメソッドは土台作り

5cebu.com

決まり切った簡単な英語をすぐに言えるようにしないと、フリートークでいくら頑張ってもうまくなりにくい。

話したいことを話せるようになるにはライティングが効果的。

書けない事は話せない

カランメソッドの効果とか注意とか

enjoylifeinenglish.blog112.fc2.com

流暢に話せるようになるにはオススメ。

カランレッスン体験談

nativecamp.net

この人は1日2〜4回のレッスンをキープしている リスニング力が上がってるみたい

カルマンフィルタ実装してみた

カルマンフィルタ実装してみた。

import numpy as np
import matplotlib.pyplot as plt
from copy import deepcopy

# Add Gaussian noise
def add_noise(x, mean=0, deviation=R, seed=None):

    if seed is not None:
        np.random.seed(seed=seed)

    shape = x.shape
    noise = np.random.normal(loc=mean, scale=deviation, size=shape)
    x_ = x + noise

    return x_

# Measurement time interval
dt = 1.

# Actual positions and velocity

v_ = 10. #deviation given to add_noise function in setting true_velocity

true_velocity = add_noise(np.ones((100,1),dtype=float), deviation=v_,seed=0)
true_positions = np.cumsum(true_velocity * dt)
true_positions = np.reshape(true_positions, [100,1])

true_x = np.concatenate((true_positions, true_velocity),axis=1)

#Observation

R = 1. #covariance of measurement noise
observed_x = add_noise(true_positions, deviation=R, seed=0)

#Initialization

z = deepcopy(observed_x)
x_init = true_x[0]
P_init = np.array([[0., 0.], [0., 0.]])
A = np.array([[1., dt], [0., 1.]])
Q = [0.1, 0.1] #process noise covariance
H = np.array([1., 0.]) #Observation Matrix: Extract observed values

#Kalman Filter
def kalman_filter(z, x_init, P_init, Q, R):
    
    #init_step
    x_filtered = np.array([x_init])
    P_filtered = np.array([P_init])   
    I = np.identity((len(x_init)))

    for t in range(1, len(z)):
        #Time Update(Predict)
        x = np.dot(A, x_filtered[t-1])
        P = np.dot(np.dot(A, P_filtered[t-1]), P_filtered[t-1].T) + Q

        #Measurement Update(Correct)
        K = np.dot(P, H.T) / (np.dot(np.dot(H, P), H.T) + R)
        y = z[t] - np.dot(H, x)
        x = x + (K * y)
        P = np.dot((I - np.dot(K, H)), P)

        #append filtered values
        x_filtered = np.append(x_filtered, np.array([x]), axis=0)
        P_filtered = np.append(P_filtered, np.array([P]), axis=0)
    
    return x_filtered, P_filtered

filtered_x = kalman_filter(z, x_init, P_init, Q=Q, R=R)[0]

plt.plot(true_x[:,0], 'r--', label='Actual Positions')
plt.plot(true_x[:,1], 'b--', label='Actual Velocity')
plt.plot(observed_x[:,0], 'y', label='Measured Positions')
plt.plot(filtered_x[:,0], 'gray', label='Estimated Positions')
plt.plot(filtered_x[:,1], 'g', label='Estimated Velocity')
plt.title('Positions of tolloco')
plt.xlabel('time step')
plt.ylabel('position')
plt.legend(loc='best')

描画結果 f:id:ray2480:20181118205016p:plain

なんか思ったほどうまくできてない。説明などが色々必要なのだが、後ほど更新する。

Piaza 始めてみた 〜スキルチェック問題〜

以前競技プログラミングを少しやってみたいと言ったが、昔Paizaに登録していたのを思い出したのでやってみた。その時のメモ書き

問題

D109:ゾロ目の日付

月と日にちを入力して、ゾロ目だったらYes, そうでなければNoを出力するプログラムを作る。

自分の解答:

md = input().rstrip().split()

m = int(md[0])
d = int(md[1])
m10 = m // 10 
d10 = d // 10
m1 = m % 10 
d1 = d % 10

if(m10 == 0 and d10 == 0 and m1 == d1):
    print("Yes")
elif(m10 == 0 and m1 == d10 and d10 == d1):
    print("Yes")    
elif(d10 == 0 and m10 == m1 and m1 == d1):
    print("Yes")    
elif(m10 == m1 and m1 == d10 and d10 == d1):
    print("Yes") 
else:
    print("No")    

うーんこの無理矢理感。2数の1の位、10の位を取ってきて全部一致するか確認する。2桁目が0(存在しない)ものも考慮するってやり方だけど、桁数増えたらこれどうしようもないでしょみたいな解答。

正規表現使ってやるのが良いんだろうきっと。

pythonでキリ番かどうか判定する - BlankTar

また書き直して作ってみようと思う。

Tex使い方メモ1

アクセント記号

アクセント記号: LaTeX

文字頭に打つ記号。ドットとかハットとか。

記号一覧

LaTeXƒRƒ}ƒ“ƒhƒV[ƒgˆê—— - ‚·‚ׂĂ̋L†

基本的な記号はだいたい載ってるはず

行列

数式: 行列、ベクトル matrix, vector TeX

\begin{bmatrix}など

LaTeXコマンド - 行列と行列式 - matri, pmatrix, bmatrix

split

数式: split 環境: LaTeX

式を複数行に分ける。

python基本知識のメモ1

python基本知識のメモ1

if文の「かつ」「または」

and, orを使う。
%%や||を使ったらシンタックスエラー
【Python入門】if文のor・and・not演算子の使い方 | 侍エンジニア塾ブログ | プログラミング入門者向け学習情報サイト

切捨て除算

//を使う。
四則演算 - 数値 - Python入門

絶対値

abs(数値)を使う。
Python 絶対値の計算 absとmath.fabsどっちを使うべき?

  • 文字列から数値変換、型確認
print(int('100'))
print(type(int('100')))
# 100
# <class 'int'>

floatでも同じ
Pythonで数字の文字列strを数値int, floatに変換 | note.nkmk.me

型確認はtype(object)で確認。リストや配列なども教えてくれる。
【Python入門】型をtype関数で確認してみよう | 侍エンジニア塾ブログ | プログラミング入門者向け学習情報サイト