R言語を0から学ぼう!! ~4日目~
データの読み込ませ方
今回はxとyに値を入力するのではなく、コピペのように入力する方法をやります。
コンソールに
x = scan()
と打ち込むと
1:
というのが出てくるのでここにもともとある数字を Ctrl+c でコピーして Ctrl+v でペーストするというやり方です。これぐらいなら中学校の授業でみんなやったんじゃないですかね?
scan()
というのがここに書いたものがxになるよーといったもののようですね。
これは
x = c()
として()のなかに自分で値を書いていくのと同じですね。その場合は「 , 」もちゃんと打たないといけなくなるのかな?
自分の入力した値を修正したいときは
fix(x)
と入力すると修正できるようになりますね。
そんなこんなで同様にyにも値をコピペしました。
次はそれぞれの箱ひげ図を作ってみましょう。
箱ひげ図を作るためには、コンソールに
boxplot(x, y)
と入力します。これでxとyの boxplot (箱ひげ図)ができるはずですね。実行してみましょう。
左下のコンソールに boxplot(x, y) と入力されていて右下には箱ひげ図がちゃんと表れていますね。コンソールにほかにもちょっと書いてあるけどあんまり関係ないので、説明は省きます。
あとはこのxとyについての最大小値や中央値、第一、三四分位数を知りたいときは
summary(x)
と入力すれば見れます。
標準偏差を見たいときは
sd(x)
と入力します。
ほかにもt検定をすると95%信頼区間とかがわかってそれぞれを比較するグラフをかける、、、とかいろいろあるみたいですが頭パンクするといけないのでここまでにしておきます。いろいろやるのも大事ですが、たくさんやりすぎて復習できずに混乱しちゃうのがもっといけないことだと思いますしね。
R言語を0から学ぼう!! ~3日目~
新しく関数を作ろう!
と意気込んでやったはいいもののなんか全然動かない。書いてある文字全部一緒なのになんでーーーーー。
わけわからなくなったので、いったん断念して夕食後に再開。
どうやら原因は自分の作った関数のスペースの問題みたいでした。
お手本の関数にはあるスペースを自分が書くときは省いて書いていたのでうまく機能しなかったんだと。
知らんがなそんなこと。しかもそのスペースの有無とかは言語によって特性が異なるみたいで、R言語についてはそうだよ、というものみたいです。
まあいろいろちまちまやっていけば慣れてくると思うので、良い教訓が得られたと思って、次につなげます。
線形代数を0から学ぼう!! ~4日目~
ベクトルのパラメータ表示
これを内積や外積を使って表そうというのが今回のメインの学習内容です。
内積が0、すなわち垂直なベクトルの存在条件から求めるようですね。
この場合は二次元で考えましたが、これが空間になると直線に対してではなくて、平面に対して垂直なベクトルを考えるようになります。平面に対して垂直=二つのベクトルに対して平行。そう、ここで外積が出てくるんですね。初めてこれを理解したときはテンション上がりましたね(笑)。写真で言うhベクトルが外積になります。
外積をこうやって使うのか!っていう感じでしたね。今回はめちゃめちゃ短くなってしまいましたが、区切りがいいのでここまで。次回はいよいよ行列からです。
線形代数を0から学ぼう!! ~3日目~
ベクトル 内積・外積②
今日は外積の図形的意味から勉強します。
(追記)外積というのはそもそもベクトルとして扱われます。
(1)外積a×bはa,b両方に直角である
これは外積とそれぞれのベクトルの内積が0であることを示せればよいですね。
外積はそれぞれのベクトルに直角というのは、高校物理でやっていたのですんなり理解。
(2)aとbが張る平行四辺形の面積S=|a×b|
はあ?って感じだけどとりあえず計算していったらなるのでしょう。
確かに面積の値と一致しますね。読んでるだけでもいいけど、私はやっぱり一度自分で証明してみた方が身に付きます。自分で考えてやりますしね。
(3)a,b,cが張る平行六面体の体積V=|(a×b)・c|
これはなんとなくわかる気がしてきました。|a×b|が底面積でそれがcの高さ分あるという感じかな?やっぱり言葉だとわけわからないのでさっさと証明します。
はい、字が汚いですね。きれいに書けるように練習します。φの定義とか省いてしまっていますが、大体伝わるかな?あーベクトルやってるなー、って感じがすごくします。二次元、三次元での話だからでしょうけど。
正直このペースでやっていると一日の進捗が少なすぎることなってしまうので、もっと書くことを絞って証明とかもせずに書いていくことになるかな。ブログに書くのも慣れてきて、書いて投稿することに時間をあまり要さなくなってきたら詳しくやれるようになるかもしれません。とりあえずモチベを落とさず頑張ります。
線形代数を0から学ぼう!! ~2日目~
ベクトル 内積・外積その①
今日はあまり時間がないのでベクトルの内積と外積を少しお勉強。
まずは内積から。
昨日の記事では平面、空間ベクトルと同じような感じといったけどよく読んでみたら少し違ったり、内積そもそもが何なのかがわかってきました。
昨日の記事はこちらから!
高校数学では内積は絶対値とベクトルのなす角θで決まっていたけど、大学数学では成分計算で定義されます。確かにそうすれば4次元以上の場合に角度を考えなくてすみますもんね。
計算の仕方は今までと変わっていないので、定義は成分計算だよ、ということを理解しておけば大丈夫そうです。
さあ次は内積とは何なのか。高校生の頃、学校の先生も「内積は何なのかといわれても内積は内積というものだから、そういうものとしてとらえるしかない」というようなことを言っていました。実際そう思って今まで生きてきたわけですが。ただ、図形的な意味を考えることができるようです。
ここでは平面のベクトルで考えてみましょう。
aベクトルと、それと平行でない単位ベクトルeベクトルを考えてみます。言葉で言ってもよくわからないと思うので写真から。
θは二つのベクトルのなす角、Hはaベクトルからeベクトルにおろした垂線のメモリとの交点ですね。なるほど、確かにHのメモリを表していますね。単位ベクトルじゃなくても、そのベクトルの絶対値の値で長さが変化するだけなので一般的にも考えられますね。空間でも同じように考えることができそうです。
でもあれ?これは結局平面と空間の話でn次元のときは考えられないのでは?うーん、とりあえず今のところはここまでしか出てないですね。そもそも3次元までしか角度なんて考えられませんし、これはこれで良いような気がします。
次は外積。
高校物理で外積が出てきてなんとなく知ってるなー程度の理解です。これもとりあえず写真。
今回は3次元ベクトル(空間)で考えてみます。
もうまず計算式からややこしい。一応右にわかりやすいようにまとめてみましたが、、、。なんとなくの法則はあるので頑張って覚えるしかないのかなあ。
あれ?でもこれa×bとb×aで計算結果変わってきちゃわないかどうやらその通りで、外積は不可換なようです。
次のページに外積の図形的な意味が書いてあってものすごく読みたいのですが、時間がないのでここまで。悔しい。明日は外積の図形的な意味を理解するところからですね。まだまだ序盤ですが楽しくなってきました!
線形代数を0から学ぼう!! ~1日目~
線形代数の学習開始!
大学数学の一つである線形代数。これを今日から学んでいこうと思います。使用する参考書は 1冊でマスター大学の線形代数 とYouTubeにあるヨビノリさんの動画を見ます。
線形代数とはなんなのだろう
さあまたこれが初学なためなにもわからない。とりあえず目次を見てみるとベクトルや行列の文字がありました。パラパラめくってみても行列っぽい形のものが多いので行列を使って何かするものなのかな?まあ、これから勉強していけば線形代数とは何者で、何のための学問なのかわかってくるでしょう。
最初はベクトル
最初に学ぶ単元はベクトル。ベクトルというと「矢印になってて大きさと向きがあるもの」程度の理解です。
読み始めたらさっそくわけのわからないことが。
線形代数ではベクトルは必ずしも矢印である必要はなく、成分表示から定義していく
とのこと。縦に実数をn個並べたものをn次元実数ベクトルと呼ぶみたい。
なによn次元て。線と平面と立体の1次元、2次元、3次元、あとはドラえもんのポケットの中の4次元ぐらいしかしらないのに。5次元とかもっといえば100次元とかイメージすら何もわかない。そもそもイメージすることすら間違ってるのか?
でもベクトル同士の足し算や、ベクトルの実数倍、内積、大きさ(絶対値)、単位ベクトルは高校数学と同じのようです。
うーん。まだイメージが何もわかない。何でもかんでも書いていっちゃきりがないので今回はここまで。次は自分である程度勉強してから書き込むって形にしようかな。
R言語を0から学ぼう!! ~2日目~
関数を作ってみよう!!
さあ今日は関数を作ってみます!ただ何をどうすればいいのかもわからないので、とりあえずネットで調べて出てきたものを打ち込んでみようと思います。
Rの初歩というサイトをもとに勉強しているのですが、そこにひつじを数える関数があるのを発見。関数の内容は
hituji=function(n) {for(i in 1:n) cat("ひつじが”,i,”ひき\n")}
色々ごちゃごちゃしていますがとりあえず左下だけを見てください。ここに自分で動かしたいもの(今回なら関数)を入力しています。たくさんエラーがでていますが、例えばfunctionの綴りがつがったり、「 " 」 が「 ” 」と全角半角の違いだったりのせいですね。もし仕事だったらこういう些細なミスで大失敗につながるんだろうなあと改めて実感。
下から二番目のところにある文字列が今回の関数ですね。これだけではよくわからないので「hituji(100)」と入力し実行。
わあ!ひつじがたくさん出てきた!
さかのぼってみると1から100までのひつじが全部数えられているようです。ここで最初に自分で決めた関数を見て、何がどんな働きをしているのか見てみましょう。
hituji=function(n) {for(i in 1:n) cat("ひつじが",i,"ひき\n")}
まず最初の hituji=function(n) の部分。これは「hituji」という名前の関数(function)があってその値は n によって決まるということでしょう。
次は for(i in 1:n) の部分。任意の数 i というのは 1~n の範囲にでループしますということ。
最後のところの cat("ひつじが",i,"ひき\n) は、ひつじが i ひき というのが n ごとに改行されますよ、ということを表しています(ちゃんとプロの人に聞きました)。
今回は関数をとりあえず作ってみてそこから何がどう機能しているのかというのを考えてみました!写真の右上の方にほかにも色々ごちゃごちゃ書いてあるのですがそれはまた今度書いていきますね!