📐

プログラミングで関数と極限

1 min read

はじめに

Swiftで高校数学をコーディングしていきます。ちょっと雑です。

型の定義

数学で用いられるy=f(x)ではxに数値を入れると新たな値が得られる。これを型で解釈すると(Double) -> Doubleであるといえる。

(Double) -> Double型function型としよう。

typealias function = (Double) -> Double

クロージャを使ってf(x)=3x+2の関数表を作成しよう。関数を使っても問題ないのであるが、簡潔に記述できるのでここではクロージャを使っている。

let f: function
f = { x in
    return 3*x+2
}
f(2)//8

f(2)という値がいかにも数学っぽい。

グラフ表示

playgroundsでは簡単にグラフ表示させることができる。

根号を含む関数

g(x)=\sqrt {3x+5}のような関数であっても簡単に定義することができる。

g = { x in
    return sqrt(3*x+5)
}

合成関数

f(x)g(x)もどちらも(Double) -> Double型であるので、f(g(x))のような合成関数が簡単に実装できる。

typealias function = (Double) -> Double

let f: function
let g: function
let h: function
f = { x in
    return 3*x+2
}
g = { x in
    return sqrt(3*x+5)
}

f(g(4))//14.36931687685298

極限値が存在するための必要十分条件

極限値が存在するための必要十分条件は、右側極限と左側極限が一致することであった。このことをプログラムで表現すると以下のようになる。

f = { x in
    return x*x
}
//x=2において極限は存在するのか?

f(2.03)//4.120899999999999
f(2.01)//4.040099999999999

f(1.99)//3.9601
f(1.97)//3.8809

上のコードではf(x)=x^2におけるx=2の値について、右側極限と左側極限を調べている。どうやらf(2)=4に落ち着きそうだ。

Discussion

ログインするとコメントできます