ブログトップ 記事一覧 ログイン 無料ブログ開設

サンプルコードによるPerl入門 〜 伝統と信頼のPerlを学ぼう 〜

2013-11-02

n次関数, 三角関数, 指数関数, 対数関数のグラフ / PDLによる統計解析

 PDL::Graphics::PLplotを使ってn次関数, 三角関数, 指数関数, 対数関数のグラフを書いてみましょう。

n次関数のグラフ

 では3次関数を描画してみましょう。どんな形をしているのかをすぐに知れるのは面白いですね。

f:id:perlcodesample:20131106102521p:image:w500

use strict;
use warnings;

use PDL::Lite;
use PDL::Graphics::PLplot;

# PLPlotオブジェクトの作成
my $pl = PDL::Graphics::PLplot->new(DEV => 'png', FILE => 'graph.png');

# xの値(0〜4まで0.1きざみ)
my $x  = pdl->sequence(40) * 0.1;

# y = x^3 - 6x^2 + 11x -6
my $y = ($x ** 3) - 6 * ($x ** 2) + (11 * $x) - 6;

# グラフを作成
$pl->xyplot($x, $y);

# クローズ
$pl->close;

三角関数

 次は三角関数(sin)のグラフです。三角関数の計算を行うにはsinメソッドを使用します。これはPDL::Mathで定義されています。

f:id:perlcodesample:20131106102522p:image:w500

use strict;
use warnings;

use PDL::Lite;
use PDL::Graphics::PLplot;

# PLPlotオブジェクトの作成
my $pl = PDL::Graphics::PLplot->new(DEV => 'png', FILE => 'graph.png');

# xの値
my $x  = pdl->sequence(200) * 0.1;

# y = sin(x)
my $y = $x->sin;

# グラフを作成
$pl->xyplot($x, $y);

# クローズ
$pl->close;

指数関数

 次は指数関数のグラフです。演算する値eをPDL変数として作成しているところに注意してください。

f:id:perlcodesample:20131106102523p:image:w500

use strict;
use warnings;

use PDL::Lite;
use PDL::Graphics::PLplot;

# PLPlotオブジェクトの作成
my $pl = PDL::Graphics::PLplot->new(DEV => 'png', FILE => 'graph.png');

# e
my $e = pdl [exp(1)];

# xの値
my $x  = pdl->sequence(60) * 0.1 - 3;

# y = e^x
my $y = $e ** $x;

# グラフを作成
$pl->xyplot($x, $y);

# クローズ
$pl->close;

対数関数(自然対数)

 最後は対数関数(自然対数)のグラフです。対数関数(自然対数)の計算を行うにはlogメソッドを使用します。これはPDL::Mathで定義されています。log0の値は無限小になるので、グラフは0.1からスタートしていることに注意してください。

f:id:perlcodesample:20131106102524p:image:w500

use strict;
use warnings;

use PDL::Lite;
use PDL::Graphics::PLplot;

# PLPlotオブジェクトの作成
my $pl = PDL::Graphics::PLplot->new(DEV => 'png', FILE => 'graph.png');

# xの値
my $x  = pdl->sequence(100) * 0.1 + 0.1;

# y = log(x)
my $y = $x->log;

# グラフを作成
$pl->xyplot($x, $y);

# クローズ
$pl->close;


PDLによる統計解析

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/perlcodesample/20131102/1383701265
リンク元