2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

TikZで使える数学の関数

Last updated at Posted at 2021-01-14

TikZで使うことができる数学関数

TikZのライブラリー,tikzmathを使用する。

関数

定数関数

pi 円周率

e 自然対数の底

三角関数

引数はデフォルトでは,度数で記述。

sin()

\begin{tikzpicture}

\draw[very thick,-latex](0,0) --(2*pi+0.25,0) node[right] {$x$};
\draw[very thick,-latex](0,-1.2) --(0,1.2) node[above] {$y$};

\draw[very thick,red,samples=100,domain=0:2*pi] plot(\x,{sin(\x r)});

\end{tikzpicture}

点の座標に関数が含まれている場合は,( ,{sin( )})のように,中カッコに入れる必要があります。

cos()

tan()

sin(30)

が返す値は,

✕ sin(30ラジアン)
○ sin(30度)

となります。

引数にラジアンを使用する場合は,

sin(\x r)

rを記入します。

sin(3 r)

 sin(3ラジアン)

と解釈されます。

注意 sin(\x+\y r)とした場合,\yのみがラジアンと解釈されてしまいます。

例えば,

sin(3 + 3 + 3 r)

とするとどうなるでしょうか。この場合,最後の3だけラジアンと解釈されます。

すべての3をラジアンを解釈させるためには,

sin(3 r + 3 r + 3 r)

と,引数の項毎にrを付けなければいけません。積や分数だけからできている項の場合は,たとえば,

sin(3 * 3 r)

のように,rは1つで十分です。

カッコを使う

sin(3 r + 3 r + 3 r)

のかわりに,

sin((3 + 3 + 3) r)

とすること,すべての項にrが係ります。

引数の限界

三角関数の引数として取れる値には限界がある。

度数法 16383
ラジアン およそ285

三角関数は周期関数だから,数値計算の際には定期的に $2\pi$ の整数倍ずつ引数を調整することが必要になる。

逆三角関数
asin()

acos()

atan()

これらは度数で値を返します。

数値を度数からラジアン,ラジアンから度数に変換する関数もあります。

度数→ラジアン:rad()
ラジアン→度数:deg()

指数関数

exp()
底はeです。

\begin{document}
\begin{tikzpicture}

\draw[very thick,-latex](-4,0) --(4+0.25,0) node[right] {$x$};
\draw[very thick,-latex](0,0-0.25) --(0,4) node[above] {$y$};

\begin{scope}
\clip(-4,0) rectangle (4,4);

\draw[very thick,red,samples=100,domain=-4:4] plot(\x,{(exp(\x))});

\end{scope}

\end{tikzpicture}
\end{document}

対数関数
ln()
底はeです。

\begin{document}
\begin{tikzpicture}

\draw[very thick,-latex](-0.5,0) --(4+0.25,0) node[right] {$x$};
\draw[very thick,-latex](0,-4) --(0,2) node[above] {$y$};

\begin{scope}
\clip(-0.5,-4) rectangle (4,2);

\draw[very thick,red,samples=100,domain=0+0.01:4] plot(\x,{(ln(\x))});

\end{scope}

\end{tikzpicture}
\end{document}

常用対数
log10()
底は10です。

双曲関数
sinh()

cosh()

tanh()

平方根
sqrt()

\begin{document}
\begin{tikzpicture}

\draw[very thick,-latex](-0.25,0) --(4+0.25,0) node[right] {$x$};
\draw[very thick,-latex](0,-0.5) --(0,4) node[above] {$y$};

\begin{scope}
\clip(-0.5,-0.25) rectangle (4,4);

\draw[very thick,red,samples=100,domain=0:4] plot(\x,{sqrt(\x)});

\end{scope}

\end{tikzpicture}
\end{document}

絶対値関数
abs()

\begin{document}
\begin{tikzpicture}

\draw[very thick,-latex](-4,0) --(4+0.25,0) node[right] {$x$};
\draw[very thick,-latex](0,-0.5) --(0,4) node[above] {$y$};

\begin{scope}
\clip(-4,-0.5) rectangle (4,4);

\draw[very thick,red,samples=100,domain=-4:4] plot(\x,{abs(\x)});

\end{scope}

\end{tikzpicture}
\end{document}

符号関数
sign()
引数が正ときは$+1$, 負のときは$-1$,0のときは0を返します。
私の環境には,この関数はありませんでした。

\begin{document}
\begin{tikzpicture}

\draw[very thick,-latex](-4,0) --(4+0.25,0) node[right] {$x$};
\draw[very thick,-latex](0,-2) --(0,2) node[above] {$y$};

\begin{scope}
\clip(-4,-2) rectangle (4,2);

\draw[red,very thick,samples=200,domain=-4:4] plot(\x,{sign(\x)});

\end{scope}

\end{tikzpicture}
\end{document}

2変数関数

2成分ベクトルの長さ

'veclen(x,y)'

入れ子で使うと,3成分ベクトルの大きさに応用することができる。

最大公約数
gcd(x,y)

二項演算


add(x,y)


subtract(x,y)


multiply(x,y)


\divide(x,y) $x \div y = \frac{x}{y}$

商(あまりを出す)
\div(x,y)

剰余(あまり)
mod(,)

正の剰余
Mod(,)


pow(x,y) $x^y$

二項関係

x > y
$x$が$y$より大きいとき1,それ以外で0を返します。

\begin{document}
\begin{tikzpicture}

\draw[very thick,-latex](-4,0) --(4+0.25,0) node[right] {$x$};
\draw[very thick,-latex](0,-0.5) --(0,2) node[above] {$y$};

\begin{scope}
\clip(-4,-0.5) rectangle (4,2);

\draw[red,very thick,samples=200,domain=-4:4] plot(\x,{\x > 0});

\end{scope}

\end{tikzpicture}
\end{document}

x >= y
$x$が$y$以上のとき1,それ以外で0を返します。

\begin{document}
\begin{tikzpicture}

\draw[very thick,-latex](-4,0) --(4+0.25,0) node[right] {$x$};
\draw[very thick,-latex](0,-0.5) --(0,2) node[above] {$y$};

\begin{scope}
\clip(-4,-0.5) rectangle (4,2);

\draw[red,very thick,samples=200,domain=-4:4] plot(\x,{\x >= 0});

\end{scope}

\end{tikzpicture}
\end{document}

x < y, x<=y
$x$が$y$より小さいとき,あるいは$y$以下のとき1,それ以外で0を返します。

\begin{document}
\begin{tikzpicture}

\draw[very thick,-latex](-4,0) --(4+0.25,0) node[right] {$x$};
\draw[very thick,-latex](0,-0.5) --(0,2) node[above] {$y$};

\begin{scope}
\clip(-4,-0.5) rectangle (4,2);

\draw[red,very thick,samples=200,domain=-4:4] plot(\x,{\x < 0});

\end{scope}

\end{tikzpicture}
\end{document}

x == y
$x$が$y$と等しいとき1,それ以外では0を返します。

\begin{document}
\begin{tikzpicture}

\draw[very thick,-latex](-4,0) --(4+0.25,0) node[right] {$x$};
\draw[very thick,-latex](0,-0.5) --(0,2) node[above] {$y$};

\begin{scope}
\clip(-4,-0.5) rectangle (4,2);

\draw[red,very thick,samples=100,domain=0:-4] plot(\x,{\x == 0});
\draw[red,very thick,samples=100,domain=0:4] plot(\x,{\x == 0});

\end{scope}

\end{tikzpicture}
\end{document}

\loop``\repeatの組み合わせで使う。ループは
\ifnum\countA < \stepA\countA\stepAよりも小さいときを条件にして実行される。この条件を満たさないとき,\loop内の処理が終了する。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?