順張りと逆張りの是非 (2017/06/23)

順張りは正しいが、逆張りは間違っている、といった主張をよく見かける。私はこのような主張に同意しない。そこで、順張り、逆張りについての私なりの考えをまとめてみる。

理屈っぽいので、興味のない人はお帰り下さい。

順張りと逆張り

私は順張り、逆張りを以下のように解釈している。

  • 順張りとは価格が上昇すれば継続して上昇すると予測して買い、下落すれば継続して下落すると予測して売ることである。
  • 逆張りとは価格が下落すれば反転して上昇すると予測して買い、上昇すれば反転して下落すると予測して売ることである。

逆張りに対する批判と反論

順張り派は反転の保証がないと批判する。例えば、価格が下落したからといって、そこで買って反転しなかったら痛い目に遭う、というのである。

だが、保証がないのは継続の場合も同じである。例えば、価格が上昇したからといって、そこで買って継続しなかったら痛い目に遭うだろう

逆張りは自己矛盾であるという批判もある。例えば、価格が下落したので逆張りで買ったものの、さらに下落したので損切りをして売ったとする。この場合、価格は下落したのに売ったことになり、これは順張りになるから自己矛盾だ、というのである。

だが、自己矛盾は順張りにもある。例えば、価格が上昇したので順張りで買ったところ、さらに上昇したので利食いをして売ったとする。この場合、価格は上昇したのに売ったことになり、これは逆張りになるから、これも自己矛盾である。

相場には継続も反転もある

現実の相場では永遠に上昇したり、下落したりすることはない。上昇してもいずれは下落に転じ、下落してもいずれは上昇に転じるものである。

現実の相場では永遠に反転を繰り返すということはない。上昇した後もしばらく上昇を続けたり、下落した後もしばらく下落を続けることがあるものである。

継続か反転かの判断が重要

重要なのは継続か反転かの判断によって順張りと逆張りを使い分けることである。継続しかないと考えたら順張りで利食いはできないし、逆張りではポジションを取ることすらできない。また、反転しかないと考えたら逆張りで損切りはできないし、順張りではポジションを取ることすらできなくなる。

現実の相場には継続も反転もある。したがって、順張りもあれば、逆張りもあり、利食いもあれば、損切りもなければならない。

順張りの利食い

順張りで利食いするのは継続から反転に判断が変わった場合だ。順張りでポジションを取ったのは価格の方向が継続すると判断したからである。その後、利食いしたのは、もはや継続しない、反転すると判断したからである。

逆張りの損切り

逆張りで損切りするのは反転から継続に判断が変わった場合だ。逆張りでポジションを取ったのは価格の方向が反転すると判断したからである。その後、損切りしたのは、もはや反転しない、継続すると判断したからである。

利食い・損切りと損益の大きさ

利益がある程度に達したら利食いし、損失がある程度に達したら損切りするという手法はよく行われていると思う。だが、私はこのような手法には疑問を感じている。

利益が出ていて、しかも相場が継続すると考えるなら利食いすべきではない。損失が出ていて、しかも相場が反転すると考えるなら損切りすべきではない。ポジションの損益にはとらわれず、現時点でどのように行動すれば利益を最大化できるかということが重要ではないかと私は考えている。

願望・恐怖と判断を履き違えない

ただし、以上の議論はあくまでも判断は概ね正しく、決して願望や恐怖と履き違えたりしないというのが前提である。

利益が出ている→利益が増えてほしい→相場が継続してほしい→継続するだろう→利食わない、というのはよくない。損失が出ている→損失が減ってほしい→相場が反転してほしい→反転するだろう→損切らない、というのもよくないのである。

また、利益が出ている→利益が縮小しそうで怖い→相場が反転する気がする→反転するだろう→利食う、というのはよくない。損失が出ている→損失が拡大しそうで怖い→相場が継続する気がする→継続するだろう→損切る、というのもよくないのである。

願望や恐怖といった感情にとらわれては正しく判断することはできなくなる。もちろん、冷静に判断したとしても、それが正しいという保証はないし、難しいことだ。だが、感情にとらわれてはなおさら正しい判断から遠ざかるだろう。

Khan Academyのすすめ (2017/06/22)

私はKhan Academyは素晴らしいと思うので紹介したい。

Khan Academyの特色

私が考えるKhan Academyの特色は、第1に誰もが学ぶべき基礎的な科目が中心となっていることである。同じMOOCとして有名なCoursera、Udacity、edXなどはどちらかと言うと専門的な科目が多い。

Khan Academyは数学が特に充実しているのがうれしい。小学レベルから大学教養レベルまでの数学を体系的に学ぶことができる。

私はKhan Academyのおかげで苦手な数学を克服できた。専門的な勉強をしたいと思っても数学がネックになることが少なくない。といって、学生のように勉強する時間はないし、社会人向けにやさしく書かれた教材は役に立たない。その点、Khan Academyは効率よく、しかも、しっかりと知識を身に付けることができると思う。

第2の特色は網羅的であり、重複がないことである。教材の多くは設立者のサルマン・カーン氏自身が作成したものらしい。それだけにしっかり統一されていて、基礎的な科目が網羅的、かつ重複なく提供されている。

Cousera、Udacity、edXなどは基礎的で重要と思われる科目が抜けていたり、同じような科目がいくつもあったりする。これは複数の教育機関や企業から授業が提供されているためである。

多くの教材を一人で作ったからといってレベルが低いということはない。サルマン・カーン氏はマサチューセッツ工科大学で数学、電気工学を学び、ハーバード大学でMBAを取得し、ヘッジファンドでアナリストを務めていたという経歴の持ち主である。個人の知識に限界はあるとしても、基礎的な科目については申し分あるまい。

Khan Academyは元々、サルマン・カーン氏がいとこの家庭教師をしたことがきっかけとなって発展したものだそうだ。その意味では最高の家庭教師と言えるかもしれない。

英語も勉強できてお得

Khan Academyは英語なので、英語の勉強もできて大変お得である。

「英語はちょっと」と尻込みする人もいるかもしれない。だが、Khan Academyは基礎的な内容ばかりである。例えば、こんな感じ。

画像

これに尻込みするようではCoursera、Udacity、edXなどで勉強するなど夢のまた夢である。

Khan Academyには日本語版もある。

https://ja.khanacademy.org/

だが、講義ビデオのみで、練習問題はないようだ。現状では私は英語版で学習することを勧める。

登録

Khan Academyのコンテンツは登録しなくても利用できる。しかし、登録したほうが学習の進展具合が把握できていい。

私は自分のメールアドレスを使ってKhan Academyのアカウントを作成した。だが、GmailやFacebookのアカウントを持っていれば、それでログインすることもできるようだ。

①以下のアドレスをクリックする。

https://www.khanacademy.org/

②右上隅の「Sign in / Sign up」をクリックする。

③「Create a new account.」をクリックする。

④「Sign up with email」をクリックする。

⑤「Start learning on Khan Academy」で「First name」、「Last name」、「Email」に入力し、「Birthdate」で月、日、年を選択する。

⑥「Sign up」ボタンをクリックする。

⑦登録したメールアドレスに確認メールが届くので確認のためのリンクをクリックする。

ここは記憶に頼った手順だが、多分そんな感じ。あと、ユーザー名とパスワードの設定もあった。

アプリのインストール

私はiPhoneを使っているので、iPhoneでのアプリのインストールについて説明する。Web版からでも学習することはできる。どちらを使うかは好みだ。

①iPhoneで「App Store」をタップする。

②「検索」をタップする。

③英語のキーボードで「khan academy」と入力して「Search」をタップする。

④「Khan Academy: you can learn anything」で「入手」をタップする。

ログイン

①アプリを起動する。

②「Profile」をタップする。

③「Sign in」をタップする。

④「Username or Email Addres」でユーザー名、またはメールアドレスを入力する。

⑤「Password」にパスワードを入力する。

⑥「Sign in」をタップする。

アプリの使い方

数学科目を学習する場合を例としてアプリの使い方を簡単に説明する。

①「Explore」をタップする。

②「Math」の「Early math」をタップする。

「Early math」は数学科目の中で最も初歩的なもの。小学校低学年くらいだろうか。

③「Early math」で「Counting」をタップする。

「Counting」の最初のタイトルは同名の「Counting」となっている。これを上から順にやっていく。

各タイトルには「▷」、「☆」などのマークが付いた項目がある。「▷」はビデオ講義、「☆」は練習問題である。

社会人にとっては復習であるから、ビデオ講義は飛ばして練習問題だけやるのが効率的だ。練習問題は通常、3問か5問である。ただし、3問の場合は3問連続、5問の場合は5問連続で正答するまで、問題は出題される。

④最初の練習問題である「Count with small numbers」をタップする。

「Count with small numbers」の場合は5問連続で正答する必要がある。

⑤問題を解く。

  • もし、分からなければ、「Stuck? Watch a video or use a hint.」をタップする。
  • 「Stuck? Use a hint.」をタップする。

ヒントは複数用意されている場合があり、最後のヒントは答えそのものだったりする(笑)。もし、それでも分からない場合は「Watch a video」をタップしてビデオ講義を視聴する。だが、その必要は恐らくないだろう。

⑥問題を解いたら「Check」をタップする。

正答の場合は「Check」が「Next Question」に変わるので、それをタップして次の問題を解く。

誤答の場合は「Keep trying! Stuck? Watch a video or use a hint.」をタップする。あとは問題が分からなかった場合と同じである。

⑦5問連続で正答したら、「< Counting」をタップして「Counting」に戻る。

⑧次の練習問題である「Count in order」をタップし、上述のやり方で問題を解く。

⑨終わったら、「< Counting」をタップして「Counting」に戻る。

⑩最後の練習問題である「Find 1 more or 1 less than a number」をタップし、上述のやり方で問題を解く。

⑪終わったら、「< Counting」をタップして「Counting」に戻る。

⑫次の項目の「Numbers 0 to 120」の「🔖」(ちょっと形が違うが)をタップする。

これはブックマークである。

これで一日の学習は終わりとする。難易度によって数分で終わることもあれば、数十分かかることもあるだろう。

⑬翌日に学習するときはアプリの「Bookmarks」をタップする。

⑭前日にブックマークした「Numbers 0 to 120」をタップする。

あとは前日の学習と同じである。

これはあくまでも例であって、必ずしもこのようにする必要はない。また、数学以外の科目では教材の形式が異なる場合もある。

アドバイス

①計算が面倒な問題は電卓、もしくは関数電卓を使う。

②手計算の場合はA4くらいのホワイトボードとホワイトボードマーカーを使うのが便利。私はいずれも100円ショップで購入した。

③公式は暗記しないでノートに書き、必要に従って参照する。余計な負担は増やさない。このブログの「Math」という記事はその一例。

「Machine Learning」(第2週)の復習② (2017/06/21)

今回は第2週の分の後半である。プログラムの実行は課題の「ex2_reg.m」ファイルの順序に基づいている。

内容は随時追加。

準備

import numpy as np
import matplotlib.pyplot as plt
from scipy.optimize import minimize

# Machine Learning Online Class - Exercise 2: Logistic Regression

# Initialization

# Load Data

data = np.loadtxt("ex2data2.txt",delimiter=",")
x = data[:, 0:2]
y = data[:, 2]

def plot_data(x, y):
    pos = np.where(y==1)
    neg = np.where(y==0)
    plt.plot(x[pos, 0].T, x[pos, 1].T, 'k+', linewidth=2, markersize=7,
             label='y = 1')
    plt.plot(x[neg, 0].T, x[neg, 1].T, 'ko', markerfacecolor='y', markersize=7,
             label='y = 0')

plot_data(x, y)

plt.xlabel('Microchip Test 1')
plt.ylabel('Microchip Test 2')

plt.legend(loc='upper right')
plt.savefig('ex2_reg1.png', dpi=150)  # Added.
plt.show()

画像

「Machine Learning」(第2週)の復習① (2017/06/21)

今回は第2週の分の前半である。プログラムの実行は課題の「ex2.m」ファイルの順序に基づいている。

準備

import numpy as np
import matplotlib.pyplot as plt
from scipy.optimize import minimize

# Machine Learning Online Class - Exercise 2: Logistic Regression

# Initialization

# Load Data

data = np.loadtxt("ex2data1.txt",delimiter=",")
x = data[:, 0:2]
y = data[:, 2]

Part 1: Plotting

# ==================== Part 1: Plotting ====================

print('Plotting data with + indicating (y = 1) examples and o',
      'indicating (y = 0) examples')

def plot_data(x, y):
    pos = np.where(y==1)
    neg = np.where(y==0)
    plt.plot(x[pos, 0].T, x[pos, 1].T, 'k+', linewidth=2, markersize=7,
             label='Admitted')
    plt.plot(x[neg, 0].T, x[neg, 1].T, 'ko', markerfacecolor='y', markersize=7,
             label='Not admitted')

plot_data(x, y)

plt.xlabel('Exam 1 score')
plt.ylabel('Exam 2 score')

plt.legend(loc='upper right')
plt.savefig('ex2_1.png', dpi=150)  # Added.
plt.show()

print('\nProgram paused. Press enter to continue.')

Plotting data with + indicating (y = 1) examples and o indicating (y = 0) examples

画像

Program paused. Press enter to continue.

Part 2: Compute Cost and Gradient

ロジスティック回帰の仮説の数式は以下のようである。

\[ h_{\theta}(x) = g(\theta^{T}x) \]

  • \( \theta \): パラメータ
  • \( x \): 説明変数

これは以下のcost_function()関数内の

z = np.dot(x, theta)
h = sigmoid(z)

に対応している。

また、シグモイド関数の数式は以下のようである。

\[ g(z) = \frac {1} {1 + e^{-z}} \]

  • \( z \): 上述の\( \theta^{T}x \)

これは以下のsigmoid()関数内の

g = 1 / (1+np.exp(-z))

に対応している。

さらに、コスト関数の数式は以下のようである。

\[ J(\theta) = \frac {1} {m} \sum_{i=1}^{m} [-y^{(i)}\log{(h_{\theta}(x^{(i)}))} - (1 - y^{(i)})\log{(1 - h_{\theta}(x^{(i)}))}] \]

  • \( \theta \): パラメータ
  • \( m \): データ数
  • \( x \): 説明変数(正確にはxとθの内積)
  • \( y \): 目的変数

これは以下のcost_function()関数内の

j = 1 / m * np.sum(-y*np.log(h)-(1-y)*np.log(1-h))

に対応している。

最後にコスト関数を偏微分した数式は以下のようである。

\[ \frac {\partial J(\theta)} {\partial \theta_{j}} = \frac {1} {m} \sum_{i=1}^{m} (h_{\theta}(x^{(i)})-y^{(i)}){x_{j}}^{(i)} \]

これは以下のcost_function()関数内の

grad[0, 0] = 1 / m * np.sum((h-y)*x[:, 0].reshape(len(x[:, 0]), 1))
grad[1, 0] = 1 / m * np.sum((h-y)*x[:, 1].reshape(len(x[:, 1]), 1))
grad[2, 0] = 1 / m * np.sum((h-y)*x[:, 2].reshape(len(x[:, 2]), 1))

に対応している。

# ============ Part 2: Compute Cost and Gradient ============
m, n = x.shape

x = np.c_[np.ones([m, 1]), x]

initial_theta = np.zeros([n+1, 1])

def sigmoid(z):
    g = np.zeros(z.shape)

    g = 1 / (1+np.exp(-z))
    return g

def cost_function(theta, x, y):
    y = y.reshape(len(y), 1)
    m = len(y)

    grad = np.zeros(theta.shape)
    z = np.dot(x, theta)
    h = sigmoid(z)

    j = 1 / m * np.sum(-y*np.log(h)-(1-y)*np.log(1-h))
    grad[0, 0] = 1 / m * np.sum((h-y)*x[:, 0].reshape(len(x[:, 0]), 1))
    grad[1, 0] = 1 / m * np.sum((h-y)*x[:, 1].reshape(len(x[:, 1]), 1))
    grad[2, 0] = 1 / m * np.sum((h-y)*x[:, 2].reshape(len(x[:, 2]), 1))
    return j, grad

cost, grad = cost_function(initial_theta, x, y)

print('Cost at initial theta (zeros): ', cost)
print('Expected cost (approx): 0.693')
print('Gradient at initial theta (zeros): ')
print(' ', grad)
print('Expected gradients (approx):\n -0.1000\n -12.0092\n -11.2628')

test_theta = np.array([[-24], [0.2], [0.2]])
cost, grad = cost_function(test_theta, x, y)

print('\nCost at test theta: ', cost)
print('Expected cost (approx): 0.218')
print('Gradient at test theta: ')
print(' ', grad)
print('Expected gradients (approx):\n 0.043\n 2.566\n 2.647')

print('\nProgram paused. Press enter to continue.')

Cost at initial theta (zeros):  0.69314718056
Expected cost (approx): 0.693
Gradient at initial theta (zeros): 
  [[ -0.1       ]
 [-12.00921659]
 [-11.26284221]]
Expected gradients (approx):
 -0.1000
 -12.0092
 -11.2628

Cost at test theta:  0.218330193827
Expected cost (approx): 0.218
Gradient at test theta: 
  [[ 0.04290299]
 [ 2.56623412]
 [ 2.64679737]]
Expected gradients (approx):
 0.043
 2.566
 2.647

Program paused. Press enter to continue.

Part 3: Optimizing using fminunc

# ============= Part 3: Optimizing using fminunc  =============

#options = optimset('GradObj', 'on', 'MaxIter', 400);  # removed

def cost_function2(theta, x, y):
    theta = theta.reshape(len(theta), 1)
    y = y.reshape(len(y), 1)
    m = len(y)

    grad = np.zeros(theta.shape)
    z = np.dot(x, theta)
    h = sigmoid(z)

    j = 1 / m * np.sum(-y*np.log(h)-(1-y)*np.log(1-h))
    grad[0, 0] = 1 / m * np.sum((h-y)*x[:, 0].reshape(len(x[:, 0]), 1))
    grad[1, 0] = 1 / m * np.sum((h-y)*x[:, 1].reshape(len(x[:, 1]), 1))
    grad[2, 0] = 1 / m * np.sum((h-y)*x[:, 2].reshape(len(x[:, 2]), 1))
    return j

result = minimize(cost_function2, initial_theta, args=(x, y), method='TNC')
cost = result.fun
theta = result.x

print('Cost at theta found by fminunc: ', cost)
print('Expected cost (approx): 0.203')
print('theta: ')
print('  ', theta)
print('Expected theta (approx):')
print(' -25.161\n 0.206\n 0.201')

def map_feature(x1, x2):
    degree = 6
    out = np.ones(x1[:, 0].shape)
    end = len(out)  # Added.
    for i in range(degree):
        for j in range(i):
            out[:, end+1] = [x1**(i-j)*(x2**j)]
    return out

def plot_decision_boundary(theta, x, y):
    plot_data(x[:, 1:3], y)
    if x.shape[1] <= 3:
        plot_x = np.array([np.min(x[:, 1])-2, np.max(x[:, 1])+2])

        plot_y = np.array(-1/theta[2])*(theta[1]*plot_x + theta[0])

        plt.plot(plot_x, plot_y)
        plt.legend()  # Modified.

        plt.xlim([30, 100])
        plt.ylim([30, 100])
    else:
        u = np.linspace(-1, 1.5, 50)
        v = np.linspace(-1, 1.5, 50)

        z = np.zeros(len(u), len(v))
        for i in range(u):
            for j in range(v):
                z[i, j] = map_feature(u[i], v[j])*theta
        z = z.T

        plt.contour(u, v, z, [0, 0], linewidth=2)

plot_decision_boundary(theta, x, y)

plt.xlabel('Exam 1 score')
plt.ylabel('Exam 2 score')

plt.legend(loc='upper right')  # Modified.
plt.savefig('ex2_2.png', dpi=150)  # Added.
plt.show()

print('\nProgram paused. Press enter to continue.')

Cost at theta found by fminunc:  0.203601040162
Expected cost (approx): 0.203
theta: 
   [-26.00633023   0.21305365   0.20823975]
Expected theta (approx):
 -25.161
 0.206
 0.201

画像

Program paused. Press enter to continue.

PythonでOctaveのfminunc()関数に相当するのはSciPyのoptimize.minimize()関数だろう。そこでminimize()関数で代用した。

minimize()関数はリストを戻り値とする関数を引数に取れないようだ。このため、コストとパラメータを返すcost_function()関数を引数に取ろうとするとエラーになる。そこでコストのみを返すcost_function2()関数を作成した。

minimize()関数が返すパラメータはfminunc()関数が返すそれと微妙に異なる。設定をいじれば同じ値を返すようにできるかもしれない。ただ、面倒なのでこのままとする。

Part 4: Predict and Accuracies

# ============== Part 4: Predict and Accuracies ==============

prob = sigmoid(np.dot([1, 45, 85], theta))
print('For a student with scores 45 and 85, we predict an admission '
      + 'probability of ', prob)
print('Expected value: 0.775 +/- 0.002\n')

def predict(theta, x):

    m = x.shape[0]

    p = np.zeros([m, 1])

    z = np.dot(x, theta)
    g = sigmoid(z)
    p = g >= 0.5
    return p

p = predict(theta, x)

print('Train Accuracy: ', np.mean((p == y).astype(float)) * 100)
print('Expected accuracy (approx): 89.0')

For a student with scores 45 and 85, we predict an admission probability of  0.782698660738
Expected value: 0.775 +/- 0.002

Train Accuracy:  89.0
Expected accuracy (approx): 89.0

使用したパラメータが微妙に違うため、今回の結果も微妙に異なる。

Math (2017/06/18)

アインシュタイン曰く

本やノートに書いてあることをどうして憶えておかなければならないのかね?

というわけで、よく使われるが、すぐ忘れてしまう公式などを覚えないで済むよう、メモとして残す。

随時追加する。

Early math

Arithmetic

式の計算

部分分数分解の計算例

\[ \frac {x - 25} {x^{2} + 5x - 24} \] \[ = \frac {x - 25} {(x - 3)(x + 8)} \] \[ = \frac {A} {x - 3} + \frac {B} {x + 8} \] \[ = \frac {A(x + 8)+B(x - 3)} {(x - 3)(x + 8)} \] \[ = \frac {Ax + 8A + Bx - 3B} {(x - 3)(x + 8)} \] \[ A + B = 1 \] \[ 8A - 3B = -25 \] \[ 8A - 3B + 3A + 3B = -25 + 3 \] \[ 11A = -22 \] \[ A = -2 \] \[ -2 + B = 1 \] \[ B = 1 + 2\] \[ B = 3 \] \[ \frac {x - 25} {x^{2} + 5x - 24} = \frac {-2} {x - 3} + \frac {3} {x + 8} \]

図形

正四面体の高さ

\[ h = \sqrt {\frac {2} {3}} a \]

角の二等分線定理

\[ \triangle ABC, \angle DAB = \angle DAC \Rightarrow \frac {AB} {BD} = \frac {AC} {CD} \]

球の表面積

\[ S = 4\pi r^{2} \]

放物線の方程式の計算例

\[ 焦点: (-8, -1) \] \[ 准線: y = -4 \] \[ 焦点との距離: \sqrt{(x + 8)^{2} + (y + 1)^{2}} \] \[ 准線との距離: \sqrt{(y + 4)^{2}} \] \[ \sqrt{(y + 4)^{2}} = \sqrt{(x + 8)^{2} + (y + 1)^{2}} \] \[ (y + 4)^{2} = (x + 8)^{2} + (y + 1)^{2} \] \[ y^{2} + 8y + 16 = (x + 8)^{2} + y^{2} + 2y + 1 \] \[ y^{2} -y^{2} + 8y - 2y = (x + 8)^{2} + 1 - 16 \] \[ 6y = (x + 8)^{2} - 15 \] \[ y = \frac {(x + 8)^{2}} {6} - \frac{15} {6} \] \[ y = \frac {(x + 8)^{2}} {6} - \frac{5} {2} \]

楕円の焦点

\[ \frac {x^{2}} {a^{2}} + \frac {y^{2}} {b^{2}} = 1 \ (a > b > 0) \] \[ 焦点: (\pm \sqrt{a^{2} - b^{2}}, 0) \]

\[ \frac {x^{2}} {a^{2}} + \frac {y^{2}} {b^{2}} = 1 \ (b > a > 0) \] \[ 焦点: (0, \pm \sqrt{b^{2} - a^{2}}) \]

\[ \frac {(x - p)^{2}} {a^{2}} + \frac {(y - q)^{2}} {b^{2}} = 1 \ (a > b > 0) \] \[ 焦点: (\pm \sqrt{a^{2} - b^{2}} + p, q) \]

双曲線の焦点

\[ \frac {x^{2}} {a^{2}} - \frac {y^{2}} {b^{2}} = 1 \] \[ 焦点: (\pm \sqrt{a^{2} + b^{2}}, 0) \] \[ \frac {y^{2}} {a^{2}} - \frac {x^{2}} {b^{2}} = 1 \] \[ 焦点: (0, \pm \sqrt{a^{2} + b^{2}}) \]

論理

イプシロン-デルタ論法

\[ \forall \varepsilon \gt 0, \ \exists N \in \mathbb{N}, \ \mbox{s.t.} \ n > N \Rightarrow |a_n - L| \lt \varepsilon \]

対数

底の変換

\[ \log_b(a) = \frac {\log_x(a)} {\log_x(b)} \]

三角関数

三角関数の関係

\[ \csc{\theta} = \frac {1} {\sin{\theta}} \] \[ \cot{\theta} = \frac {1} {\tan{\theta}} \]

三角関数の性質

\[ \sin{\theta} = \sin{(180^{\circ}-\theta)} \]

\[ \sin{\theta} = \sin{(-180^{\circ}-\theta)} \]

\[ \cos{\theta} = \cos{(-\theta)} \]

加法定理

\[ \sin(\alpha \pm \beta) = \sin\alpha\cos\beta \pm \cos\alpha\sin\beta \]

\[ \cos(\alpha \pm \beta) = \cos\alpha\cos\beta \mp \sin\alpha\sin\beta \]

余弦定理

\[ a^2 = b^2 + c^2 - 2bc\cos A \]

ラジアン

\[ \frac {180 ^ {\circ}} {\pi} = 1rad \]

シヌソイドの中間線

\[ f(x) = a\sin(bx + c) + d \]

\[ f(x) = a\cos(bx + c) + d \]

数列

数列の和

\[ S_n = \frac {a_1(1 - r ^ n)} {1 - r} \]

数列の計算

\[ a_n = S_{n} - S_{n-1} \]

分数の数列の和

分数を以下のように変換する。

\[ b < c, \ \frac {1} {(ax+b)(ax+c)} = \frac {1} {(c-b)(ax+b)} - \frac {1} {(c-b)(ax+c)} \]

無限級数

\[ \sum_{n=0}^\infty ar^n = \frac {a} {1 - r} \]

テイラー展開

\[ f(x) = \sum_{n=0}^\infty \frac {f^{(n)}(a)} {n!}(x - a)^n \]

マクローリン展開

\[ f(x) = \sum_{n=0}^\infty \frac {f^{(n)}(0)} {n!}x^n \]

\( \sin{(x)} \)のテイラー展開

\[ \sin(x) = x - \frac {x^3} {3!} + \frac {x^5} {5!} - \frac {x^7} {7!} + ... \]

\( \cos{(x)} \)のテイラー展開

\[ \cos(x) = \sum_{n=0}^\infty \frac {(-1)^n} {(2n)!} x^{2n} \]

\[ \cos(x) = 1 - \frac {x^2} {2!} + \frac {x^4} {4!} - \frac {x^6} {6!} + ... \]

\( \tan{(x)} \)のテイラー展開

\[ \tan(x) = x + \frac {x^3} {3} + \frac {2x^5} {15} + ... \]

\( \arctan{(x)} \)のテイラー展開

\[ \arctan(x) = x - \frac {x^3} {3} + \frac {x^5} {5} - \frac {x^7} {7}... \]

\( e^{x} \)のテイラー展開

\[ e^x = \sum_{n=0}^\infty \frac {x^n} {n!} \]

極限

様々な極限

\[ \lim_{x \to 0} \frac {\cos(x) - 1} {x} = 0 \]

ロピタルの定理

\[ \lim_{x \to a} \frac {f(x)} {g(x)} = \lim_{x \to a} \frac {f'(x)} {g'(x)} \]

\( \lim_{x \to \infty} x^{\frac {1} {x}} \)の計算例

\[ \lim_{x \to \infty} x^{\frac {1} {x}} \] \[ y = x^{\frac {1} {x}} \] \[ \ln{(y)} = \ln{(x^{\frac {1} {x}})} \] \[ \ln{(y)} = \frac {\ln{(x)}} {x} \] \[ \ln{(y)} = \frac {(\ln{(x)})'} {(x)'} \] \[ \ln{(y)} = \frac {\frac {1} {x}} {1} \] \[ \ln{(y)} = \frac {1} {x} \] \[ \lim_{x \to \infty} \frac {1} {x} = 0 \] \[ \ln{(y)} = 0 \] \[ e^{\ln{(y)}} = e^{0} \] \[ y = 1 \] \[ \lim_{x \to \infty} x^{\frac {1} {x}} = 1 \]

微分

積の微分

\[ (f(x)g(x))' = f'(x)g(x) + f(x)g'(x) \]

商の微分

\[ \left( \frac {f(x)} {g(x)} \right)' = \frac {f'(x)g(x) - f(x)g'(x)} {(g(x))^{2}} \]

合成関数の微分

\[ (f(g(x)))' = f'(g(x))g'(x) \]

\( \tan{(x)} \)の微分

\[ (\tan(x))' = \frac {1} {\cos^2(x)} \]

\( \sec{(x)} \)の微分

\[ (\sec(x))' = \sec(x)\tan(x) \]

\( \csc{(x)} \)の微分

\[ (\csc(x))' = -\cot(x)\csc(x) \]

\( \cot{(x)} \)の微分

\[ (\cot(x))' = -\csc^2(x) \]

\( \arcsin{(x)} \)の微分

\[ (\arcsin(x))' = \frac {1} {\sqrt{1 - x^2}} \]

\( \arccos{(x)} \)の微分

\[ (\arccos(x))' = -\frac {1} {\sqrt{1 - x^2}} \]

\( \arctan{(x)} \)の微分

\[ (\arctan(x))' = \frac {1} {1 + x^2} \]

\( a^{x} \)の微分

\[ (a^{x})' = a^{x} \ln(a) \]

\( \log_{a}{(x)} \)の微分

\[ (\log_{a}(x))' = \frac {1} {x\ln(a)} \]

\( \ln{(x)} \)の微分

\[ (\ln(x))' = \frac {1} {x} \]

\( e^{ax} \)の微分

\[ (e^{ax})' = ae^{ax} \]

\( e^{x^{2}} \)の微分

\[ (e^{x^{2}})' = 2xe^{x^{2}} \]

逆関数の微分

\[ h(x) = f^{-1}(x) \] \[ h'(x) = \frac {1} {f'(h(x))} \]

\( x^{x} \)の微分の計算例

\[ y = x^{x} \] \[ \ln{(y)} = \ln{(x^{x})} \] \[ \ln{(y)} = x\ln{(x)} \] \[ (\ln{(y)})' = (x\ln{(x)})' \] \[ \frac {1} {y} \frac {dy} {dx} = 1 * \ln{(x)} + x * \frac {1} {x} \] \[ \frac {1} {y} \frac {dy} {dx} = \ln{(x)} + 1 \] \[ \frac {dy} {dx} = y(\ln{(x)} + 1) \] \[ \frac {dy} {dx} = x^{x}(\ln{(x)} + 1) \]

\( x^{\ln{(x)}} \)の微分の計算例

\[ y = x^{\ln{(x)}} \] \[ \ln{(y)} = \ln{(x^{\ln{(x)}})} \] \[ \ln{(y)} = \ln{(x)} * \ln{(x)} \] \[ \frac {1} {y} \frac {dy} {dx} = \frac {1} {x} * \ln{(x)} + \ln{(x)} * \frac {1} {x} \] \[ \frac {1} {y} \frac {dy} {dx} = 2 * \frac {1} {x} * \ln{(x)} \] \[ \frac {dy} {dx} = 2 * \frac {1} {x} * \ln{(x)} * y \] \[ \frac {dy} {dx} = 2 * \frac {1} {x} * \ln{(x)} * x^{\ln{(x)}} \] \[ \frac {dy} {dx} = 2 * \ln{(x)} * x^{\ln{(x)}} * \frac {1} {x} \] \[ \frac {dy} {dx} = 2 * \ln{(x)} * x^{\ln{(x)}} * x^{-1} \] \[ \frac {dy} {dx} = 2 * \ln{(x)} * x^{\ln{(x)}-1} \]

\( \frac {dy} {dx} \)の計算例

\[ 2xy + x^3 - 3y^2 = 5 \] \[ \frac {d} {dx} (2xy + x^3 - 3y^2) = \frac {d} {dx} (5) \] \[ \frac {d} {dx} (2xy) + \frac {d} {dx} (x^3) - \frac {d} {dx} (3y^2) = \frac {d} {dx} (5) \] \[ \frac {d} {dx} (2xy) + 3x^2 - \frac {d} {dx} (3y^2) = 0 \] \[ 2\frac {d} {dx} (xy) + 3x^2 - 3\frac {d} {dx} (y^2) = 0 \] \[ 2(\frac {d} {dx} (x) * \frac {d} {dx} (y)) + 3x^2 - 3\frac {d} {dx} (y^2) = 0 \] \[ 2(1 * y + x * 1 \frac {dy} {dx}) + 3x^2 - 3\frac {d} {dx} (y^2) = 0 \] \[ 2y + 2x \frac {dy} {dx} + 3x^2 - 3\frac {d} {dx} (y^2) = 0 \] \[ 2y + 2x \frac {dy} {dx} + 3x^2 - 3\frac {d} {dx} (1 * y^2) = 0 \] \[ 2y + 2x \frac {dy} {dx} + 3x^2 - 3\frac {d} {dx} (x^0 * y^2) = 0 \] \[ 2y + 2x \frac {dy} {dx} + 3x^2 - 3(\frac {d} {dx} (x^0) * \frac {d} {dx} (y^2)) = 0 \] \[ 2y + 2x \frac {dy} {dx} + 3x^2 - 3((0 * y^2) + (x^0 * 2y \frac {dy} {dx})) = 0 \] \[ 2y + 2x \frac {dy} {dx} + 3x^2 - 3((0 * y^2) + (1 * 2y \frac {dy} {dx})) = 0 \] \[ 2y + 2x \frac {dy} {dx} + 3x^2 - 3(0 + 2y \frac {dy} {dx}) = 0 \] \[ 2y + 2x \frac {dy} {dx} + 3x^2 - 6y \frac {dy} {dx} = 0 \] \[ 2y + 3x^2 + 2x \frac {dy} {dx} - 6y \frac {dy} {dx} = 0 \] \[ 2y + 3x^2 + (2x - 6y) \frac {dy} {dx} = 0 \] \[ (2x - 6y) \frac {dy} {dx} = -(2y + 3x^2) \] \[ \frac {dy} {dx} = -\frac {2y + 3x^2} {2x - 6y} \]

定積分の微分の計算例

\[ \left( \int_{0}^{x ^ {2}} \sin(t) dt \right)' \] \[ = \frac {d} {dx} \int_{0} ^ {x ^ {2}} \sin(t) dt \] \[ = \sin(x ^ {2}) \cdot \frac {d} {dx} (x ^ {2}) \] \[ = \sin(x ^ {2}) \cdot 2x \] \[ = 2x \sin(x ^ {2}) \]

オイラー法

\[ y_{n+1}= y_{n} + \Delta y_{n} \]

平均値の定理

\[ \frac {f(b) -f(a)} {b - a} = f'(c) \]

二階微分

\[ x = f(t), \ y = g(t) \] \[ \frac {d^{2}y} {dx^{2}} = \frac {f'(t)g''(t) - f''(t)g'(t)} {(f'(t))^{3}} \]

積分

\( \sin{(ax)} \)の積分

\[ \int \sin(ax) dx = -\frac {1} {a} \cos(ax) + C \]

\( \sec^{2}{(ax)} \)の積分

\[ \int \sec^2(ax) dx = \frac {1} {a} \tan(ax) + C \]

\( \csc^{2}{(x)} \)の積分

\[ \int \csc^2(x) dx = -\cot(x) + C \]

\( e^{ax} \)の積分

\[ \int e^{ax} dx = \frac {e^{ax}} {a} + C \]

\( \frac {1} {1 + x ^ {2}} \)の積分

\[ \int \frac {1} {1 + x ^ {2}} dx = \tan ^ {-1}(x) + C \]

曲線の長さ

\[ L = \int_a^b \sqrt{1 + (f'(x))^2} dx \]

y軸周りの回転体の体積(バームクーヘン積分)

\[ V = 2\pi\int_a^b x f(x) dx \]

関数の平均値

\[ \frac {1} {b - a} \int_a^b f(x) dx \]

分数関数の積分

\[ \int \frac {f'(x)} {f(x)} dx = \log |f(x)| + C \]

分数関数の積分の計算例

\[ \int \frac {a} {b(x + c)} dx = \frac {a \ln |x + c|} {b} + C \]

放物線の積分

\[ A = \int_\alpha^\beta \frac {1} {2} r^2 d\theta \]

リーマン積分

\[ \int_a^b \sin(x) dx = \lim_{n \to \infty} \sum_{i = 1}^{n} \sin \left(\frac {b - a} {n} i\right)\cdot \frac {b - a} {n} \]

置換積分の計算例

\[ \int \frac {x} {\sqrt{16 - x ^ 2}} dx \] \[ u = 16 - x ^ 2 \] \[ \frac {du} {dx} = -2x \] \[ -\frac {du} {2x} = dx \] \[ \int \frac {x} {\sqrt{u}} \cdot (-\frac {du} {2x}) \] \[ = -\int \frac {1} {2\sqrt{u}} du \] \[ = -\int \frac {1} {2} u ^ {-\frac {1} {2}} du \] \[ = -u ^ {\frac {1} {2}} + C \] \[ = -\sqrt{u} + C \] \[ = -\sqrt{16 - x ^ 2} + C \]

部分積分の計算例

\[ \int x \cos(\pi x) dx \] \[ \int u(x)v'(x)dx = u(x)v(x) - \int u'(x)v(x) dx \] \[ \int u dv = uv - \int v du \] \[ u = x, dv = \cos(\pi x) dx \] \[ du = dx, v = \int \cos(\pi x) dx = \frac {\sin(\pi x)} {\pi} \] \[ \int x \cos(\pi x) dx \] \[ = \frac {x \sin(\pi x)} {\pi} - \int \frac {\sin(\pi x)} {\pi} dx \] \[ = \frac {x \sin(\pi x)} {\pi} - \frac {1} {\pi} \left( -\frac {\cos(\pi x )} {\pi} \right) + C \] \[ = \frac {x \sin(\pi x)} {\pi} + \frac {\cos(\pi x)} {\pi ^ 2} + C \]

微分方程式

微分方程式の計算例

\[ \frac {dy} {dt} = 3y \] \[ \frac {dy} {y} = 3 dt \] \[ \int \frac {dy} {y} = \int 3 dt \] \[ \int \frac {1} {y} dy = \int 3 dt \] \[ \ln |y| = 3t + C \]

分離可能な微分方程式の形

\[ \frac {dy} {dx} = g(x) \cdot h(y) \] \[ \frac {1} {h(y)} dy = g(x) dx \]

複素数

長方形の計算例

\[ |z| = \sqrt{a^{2} + b^{2}} \]

\[ \theta = \arctan \left ( \frac {b} {a} \right )\ \]

\[ a = |z|\cos{\theta} \]

\[ b = |z|\sin{\theta} \]

偏角

\[ \tan{\theta} = \frac {Im(z)} {Re(z)} \]

複素数の積

\[ z_{1} = r_{1}[\cos{(\theta_{1})} + i \sin{(\theta_{1})}], \ z_{2} = r_{2}[\cos{(\theta_{2})} + i \sin{(\theta_{2})}] \] \[ z_{1} \cdot z_{2} = r_{1}r_{2}[\cos{(\theta_{1} + \theta_{2})} + i \sin{(\theta_{1} + \theta_{2})}] \]

複素数の商

\[ z_{1} = r_{1}[\cos{(\theta_{1})} + i \sin{(\theta_{1})}], \ z_{2} = r_{2}[\cos{(\theta_{2})} + i \sin{(\theta_{2})}] \] \[ \frac {z_{1}} {z_{2}} = \frac {r_{1}} {r_{2}}[\cos{(\theta_{1} - \theta_{2})} + i \sin{(\theta_{1} - \theta_{2})}] \]

複素数のn乗根の計算例①

\[ z^{3} = -512, \ 270^{\circ} \le \theta \le 360^{\circ} \] \[ z^{3} = r^{3}[\cos{(3 \cdot \theta)} + i \sin{(3 \cdot \theta)}] \] \[ r^{3}[\cos{(3 \cdot \theta)} + i \sin{(3 \cdot \theta)}] = 512[\cos{(180^{\circ} + k \cdot 360^{\circ})} + i \sin{(180^{\circ} + k \cdot 360^{\circ})}]\] \[ r^{3} = 512 \] \[ r = 8 \] \[ 3 \cdot \theta = 180^{\circ} + k \cdot 360^{\circ} \] \[ \theta = 60^{\circ} + k \cdot 120^{\circ} \] \[ \ 270^{\circ} \le \theta \le 360^{\circ} \] \[ \theta = 300^{\circ} \] \[ z = r[\cos{(\theta)} + i \cdot \sin{(\theta)}] \] \[ z = 8[\cos{(300^{\circ})} + i \cdot \sin{(300^{\circ})}] \] \[ z = 8\cos{(300^{\circ})} + 8\sin{(300^{\circ})} \cdot i \] \[ z = 4 - 6.928i \]

複素数のn乗根の計算例②

問題が間違っているかもしれない。「270度より大きい」だったかも。

\[ z^{5} = -7776i, \ 270^{\circ} \le \theta \le 360^{\circ} \] \[ z^{5} = r^{5}[\cos{(5 \cdot \theta)} + i \sin{(5 \cdot \theta)}] \] \[ r^{5}[\cos{(5 \cdot \theta)} + i \sin{(5 \cdot \theta)}] = 7776[\cos{(270^{\circ} + k \cdot 360^{\circ})} + i \sin{(270^{\circ} + k \cdot 360^{\circ})}]\] \[ r^{5} = 7776 \] \[ r = 6 \] \[ 5 \cdot \theta = 270^{\circ} + k \cdot 360^{\circ} \] \[ \theta = 54^{\circ} + k \cdot 72^{\circ} \] \[ \ 270^{\circ} \le \theta \le 360^{\circ} \] \[ \theta = 342^{\circ} \] \[ z = r[\cos{(\theta)} + i \cdot \sin{(\theta)}] \] \[ z = 6[\cos{(342^{\circ})} + i \cdot \sin{(342^{\circ})}] \] \[ z = 6\cos{(342^{\circ})} + 6\sin{(342^{\circ})} \cdot i \] \[ z = 5.706 - 1.854i \]

行列

2×2行列の逆行列

\[ A = \begin{bmatrix} a & b \\ c & d \end{bmatrix} \] \[ A^{-1} = \frac {1} {ad - bc} \begin{bmatrix} d & -b \\ -c & a \end{bmatrix} \]