macのGrapherはかなり優秀(ルンゲクッタ法の刻みとか変えられる)




macにデフォルトで入っているアプリケーションに「Grapher」というものがあります。「Launchpad」→「その他」の中に格納されているため以外に知らない人も多いです。

「Grapher」とはグラフ作成ツールです。gnuplotとかWolframと同じようなものです。今回はそんな「Grapher」のある機能を知ってしまったので紹介します。

 

微分方程式の近似解法を選択できる

無料のくせにその汎用性は素晴らしいです。微分方程式を解かせることはもちろん、「オイラー法」「ルンゲクッタ法」と選択できます。

さらに

その解の刻み幅まで選択できます。なんともありがたい。こんな素晴らしいツールがあるなんて知らなかった。自分は使ったことないですが、gnuplotみたいにデータをファイル出力することもできるみたいです。

 

近似解法の設定

今回は、例題にある「Differential Equations」を用います。

  • 開くと右上に「インスペクタ」と書かれた青のiマークがあると思います。そこをクリックします

 

  • そうすると設定用の小さなウィンドウが開きます。そこの中の「積分器」というのをクリックすると近似解法を選択できます。
  • その下のステップサイズを自分で入力すると解の刻み幅を任意に変更できます。

 

 

試しに「0.5」にしてみます…

 

解がかなり粗いのでギザギザですね笑

 

最後に

以上「Grapher」を用いた微分方程式の解法などの設定方法に述べてきました。「Grapher」にはもっと便利な機能がありそうなので、また新たに発見したら更新します。

 

 

 


スポンサーリンク

記事が役に立ったらシェア!

 macbook-proでデータサイエンスやるためにいろいろインストールした。



スポンサードリンク

今回は、先日macbookproを購入し、今までの環境を整えるべくソフト諸々インストールしたので、まとめて見ようと思う。

これからデータサイエンスとかプログラミングとか始めたいけどどんなツールが必要なの?とか不明な人はぜひ参考にしてみてください。少し研究者向けな気もしますが…

インストールしたもの

改めて見ると最低限必要なのだけですげーあった。

インストールした理由も簡単に書いていきます。

  • グラフ作成ソフト gnuplot

簡単にグラフが作れる。linuxとの親和性の高さからも重宝しています。

  • svg.eps描画ソフト inkscape

ラスター形式よりもベクター形式の方が綺麗に図を作成できるため。

  • python3 (デフォルトがpython2のため)
  • テキストエディタ atom

プラグインが豊富で改造が簡単。emacsと悩んだ。

  • xcode

swiftの勉強もたまにはしたくなると思って笑

  • homebrew

これが無いとmacは始まらない笑(macportsでもいいですが最近はこっちが主流のようですね)

  • Xquartz

gnuplotとかインクスケープ動かすのに必要。

  • 統計解析ソフト R

ネットワーク分析やらグラフ理論の勉強がてらコードを動かして遊ぶため。

  • R開発、コーディングの統合開発環境 Rスタジオ

rやるならこれが一番便利らしい。

  • python 統合開発ツール jupyter

python 触るならこれがお手軽らしい。(canopyとかでもいいと思います。)

  • 仮装マシン virtualbox

サーバー動かすのに必要です。

  • 仮装環境構築ソフト vagrant

同上。

  • wonderlist(笑)

タスク管理に必要。

  • evernote(笑)

日々の気づきとかね。笑

最後二つは地味に必要笑。何をインストールするか、まとめるときもwunderlistの出番でしたしね。

まだ入れてないけど、gitとかアンドロイドスタジオ(アンドロイドアプリ開発ツール)、Texとかも入れようと思ってます。



スポンサードリンク

各々のインストール方法(簡易版)

といっても自分が使ったサイトを示しておわりになりそうですが。

homebrew

gnuplot

inkscape

以下の公式サイトからインストール

https://inkscape.org/ja/download/mac-os/

python3, jupyter notebook

自分は

のところで本来ならばブラウザが起動するはずなのですが、なぜがエラーが起き、詰まりました。

解決策として参考にさせていただいたサイトが以下です。

 

xquartz

以下の公式サイトからインストール

https://www.xquartz.org/

R, R-studio

vagrant,virtualbox

  •  vagrant

https://www.vagrantup.com/

  • virtualbox

https://www.virtualbox.org/

残りのものは ググれば瞬殺なので、書くまでもないでしょう。

最近は同じ内容ものでも複数ありどのサイト、使えばいいの?みたいな人多いと思います。そんな人の助けになれば幸いです。


スポンサードリンク

記事が役に立ったらシェア!

MEAN(Mongodb,Express,Angular,Node)スタック環境構築を試そう。だがしかし…



スポンサードリンク

MEAN スタックを使ってwebアプリを開発していこうと思います。なお今回対象とするOSはmacosです。

今回は手始めとして、MEANスタックの開発環境構築から。

これがまた長かった笑

1.node.jsのインストール

nodeのインストールにはhomebrewを用います。homebrewはあらかじめインストールしておいてください。

まずは、nodebrewをインストールします。

いろんなサイト見るとスムーズに行かれてる方が多いのですが、自分の場合はここでエラーが出ました。

nodebrew install エラー とググると、どうやらここでつまづく方もいるようで少し安心。

以下のコマンドで解決。

これを設定しないとhomebrewに対して、古いバージョンのnodebrewをインストールしてしまうらしい。

ここはこのサイトを参考にしました。

もう一回

でうまくいきました。

ついでにインストールがうまくいったかの確認は以下のコマンドでバージョンを確認できればOK

と先ほどインストールしたバージョンが表示されれば問題ないです。

次に、以下のコマンド

これで勝手に最新版をインストールしてくれます。違うバージョンをインストールしたい場合は、latestの部分をv.7.1.0みたいに指定すれば問題ないです。

次にインストールしたnode.jsのバージョンを有効にします。

Xの部分に自分がインストールしたバージョンを入れてください。

でcurrentが上で指定したバージョンになって入ればOK

次に実行パスを通します。

~/.bash_profileも下記のように変更してください(すでに下のようになっている場合もあります)。

ここまで、終わったらターミナルを再起動して、nodeのバージョンを再確認してみてください。先ほど設定したバージョンなら問題ないです。

これでnode.jsのインストールは終わりです。


スポンサードリンク

2. AngularJSのインストール

まず、angularjsに必要なyeoman等をインストールします。

次にangularjsをインストール(少し時間がかかります)

こんだけ!

3, MongoDBのインストール

上の三つのコマンドを順次実行してください。

これが終了したら、Mongodbが正常に動くか確認してください。

下記のコマンドで、起動

しかし以下のようなエラー。

色々調べると、権限が設定されていないということにたどり着く。

以下のコマンドで権限を設定し直します。

これでもう一回先ほどの起動コマンド。

うまく起動できました。

Mongodbを終了させるときはControl+cでオッケーです。



スポンサードリンク

4, プロジェクトの作成

必要なものはインストールし終わりましたので、いよいよプロジェクトを作成していきます。

適当にディレクトリを作成し、そのディレクトリに移動してください。

以下のコマンドでsプロジェクトを作成(初めての場合、かなり時間がかかります。)

色々と聞かれますが、全てエンターで問題ないです。

angularjs-fullstackのバージョンをアップデートします。

三つ目のコマンドは多少時間がかかります。

5. プロジェクトの起動

これで勝手にサーバーが立ち上がり、デフォルトのUIが表示されるはずが、

はい?ここにきて問題発生。

有効なGruntfleがないよと言われているが、Gruntfileって何ですか?って感じです。

もう少しでプロジェクトの開発が始められそうなんですが、今回は疲れたのでここまで。

原因がわかったらまた更新します。

 

 

記事が役に立ったらシェア!

ローカル開発環境構築(mac-version)



スポンサードリンク

本格的にexpress,nodejsの勉強をして、webアプリを作ろうと思っていますが、ローカル開発環境がまだ整っていないので、その整備から。

virtualboxとvagrantを用います。この二つは公式サイトから無料でインストールできるので、ダウンロードしてください。

>>>virtualboxのインストール

>>>vagrantのインストール

ここからは、ターミナルでの作業になります。

まず、仮想マシンを作るフォルダを作成しそのフォルダに入ってください。

  1. 以下のコマンドで仮想マシン設定用のvagrantファイルを作成します。
  2.  Vagrantfileを編集して仮想マシンのIPアドレスを192.168.33.10にします。

    sed -i はターミナルから直接ファイルの中身を変更するためのコマンドです。vim等でVagrantファイルを指定し、開いてから自分で書き直す方法もありますが、便利なので使いましょう。
  3. 以下のコマンドで仮想マシンを起動します。
  4. 仮想マシンが正常に動作しているか確認します
  5. 以下のコマンドでサーバーにログインします

    ログインすると、コマンドを打つ部分が自分のPC名から[vagrant@localhost centos6]$と変化します。これでログインできているどうかを確認できます。

  6. ここからは仮想マシン内の設定をしていきます。まず以下のコマンドでOSを最新の状態にアップデート。
  7. スクリプトを入手するためのgitをインストール
  8. gitを使ってアプリケーション設定用のスクリプトをダウンロード
  9. centos6フォルダができるのでそちらに移動
  10. スクリプトを実行(時間かかります)
  11. もろもろの設定を反映
  12. 仮想マシンをログアウトするときはexitと入力します。これでMacの方へ操作が戻ります。
  13. そして仮想マシンを停止させるときは以下のコマンド
  14. 再度仮想マシンを起動させるときは

前回ちゃんと、仮想マシンを停止させていれば普通に起動します。

あとは前と同じで、sshでログインするだけです。

仮装マシン設定のコマンドは毎回やる必要はないです。定期的にアップデートがあるか確認する程度で良いでしょう。



スポンサードリンク

記事が役に立ったらシェア!

GitHubに驚嘆した話 〜ドラッグアンドドロップの時代は終わったのか?〜

最近、アプリ開発を始め(まだゴミアプリしか作っていませんが笑) 開発のソースコードとかをどう保存しようかと考えていたところ、多くのエンジニアや研究者の方が使っているGitHubを使ってみようと思いました。

 GitHubとは?

簡単に言うとクラウド上にソースコードを保管するためのwebアプリケーションです。facebookやインスタグラムは写真をクラウド上で管理できるのに対し、GitHubはアプリ開発のソースコードとかを保存します。そして、GitHubを利用している全てのユーザーとそれを共有できます。なので、他の人が作ったソースコードとか、ダウンロードし放題です。世界中のエンジニアで知らない人はおそらくいないでしょう。

使い方の前に…

githubには専門の用語がたくさんあり、使いこなすにはそれらを理解しなければいけません。以下ではそれらを紹介していきます。

  1. リポジトリ

ローカルリポジトリとリモートリポジトリの2種類があります。簡単に言うと、物(ファイル)を保管または製造する工場とその本社のイメージでしょうか。

管理したいディレクトリを入れておけば、そのディレクトリ内のファイルの変更記録とかを残せます。

2 .プッシュ

ローカルでファイルの編集をし、その作業内容をリモートリポジトリ(クラウド上)へを残すこと。工場での製造記録や発注記録を本社へ知らせるイメージでしょうか。

3. コミット

ファイルの追加や変更の履歴をローカルリポジトリに保存することです。工場で製造記録をまとめてから本社へ知らせるイメージ。本社へ知らせるにも工場内で誰かがそのための書類を作らなければいけませんね。なので、実際の流れはコミット(ローカル保存)→プッシュ(リモート保存)といった流れになります。

4. ブランチ

正直まだ理解できていないのですが、リリースした後のアプリとかをバージョンアップしながら、機能を新たに追加するときに変更記録を分岐した状態で残すことができるそうです。ここら辺は本格的にアプリ開発をしていかないと多分わからないです。すいません。

 



スポンサードリンク

GitHubの使い方 超初級(自分が機能を使い次第、追加していきます)

  1. まず、github上でリポジトリを作ります。New repositoryのボタンで作れます。
  2. その後ターミナル上で作業します。ターミナルでgithubと連携できるのが魅力的です。ディレクトリ内で以下のコマンドを実行することで、リポジトリ(ローカルリポジトリ)が作成されます。この時点ではGitHub の自分のアカウントには何も表示されません。

3. リポジトリに追加したいファイル(ソースコードとかの)を以下のコマンドで追加します。この時点では一時保存という扱いです。

4. そしてこのディレクトリに新たにファイルや、ディレクトリ等を追加した時の変更記録をリポジトリに以下のコマンドで記録します

5. そしてリモートリポジトリに変更記録を保存します。まずリモートリポジトリの情報の追加をします。本社へ送るにも本社の住所や連絡先を知らないと無理ですよね。以下のコマンドで実行します。

上のURLのところは、自分のGitHub上でNew repositoryのボタンを押すと次の画面に出てくる、リモートリポジトリのURLです。コピペしてください。

そして以下のコマンドで、ローカルリポジトリの変更記録をリモートリポジトリに保管できます。この作業を「pushする」と言います。

ここまでやってようやく、GitHub上で変更したディレクトリやファイルが確認できます。

 

まだまだ、色々使いかたがありますが超入門として今はここまでにします。追って更新していきます。

 

 

 



スポンサードリンク

記事が役に立ったらシェア!

swiftでiosのアプリを開発してみた

今回は、iosのアプリ開発をしたのでそれの説明をしようと思います。アプリの主な機能は

  • urlを読み込み、webページを表示させる
  • Segmented Controlを用いて3つのWebページを表示する機能
  • ネッワークエラー検出機能
  • ネットワークエラー検出時の表示ボックス

です。初心者なのでまだこの程度のものしか作れませんが、簡単なところから始めようと思います。ついでに今回はサッカーのチャンピオンズリーグとヨーロパリーグとリーガエスパニョーラのwebページを表示させてみようと思います。

ストーリボードの設定

以下にstoryboard を載せます。とはいっても、複雑な部品は配置していません。設置した部品は、

  • Segmented Control
  • Web View

の二つです。Segmented Control は「Show the Attributs inspector」→「Segmented Control」→「Segments」でカテゴリーを3つにするのを忘れないように。



スポンサードリンク

コードの説明

 

Segmented Controlの設定

以下に、取得したWebページをSegmented Controlと紐付けるコードを載せます。

3つのWebページの配置にはswitch 文を用いています。case内の主な手順としては、

  1. カテゴリーの宣言
  2. urlString (letで定数指定)の中に表示させたいURLをぶち込む
  3. urlをURLRequest型に変換。urlStringがoptinal 型なので、「!」をつける
  4. Webviewのメソッドを呼ぶので、お決まりのselfで呼んであげて終わり。

 

ネットワークエラー検出

showAlertメソッドでまずアラートの表示機能を実装します。そして今回実装する機能は、ネットワークエラー時なので、webViewメソッドで実装します。

そしてshowAlertを’Network Error’と表示するようにし、その時にwebページのロードを中止するようにします。if文の中身はユーザーがロード中に他のボタンを押してしまった時などにキャンセルされた場合などを除外するために、記述しましょう。

以下に動作確認の動画を載せます。

webページを表示させることができるので、いつかUIに凝ったブラウザとかも作ってみたいです。以下に今回のアプリ開発で実装したコードを載せます。

 



スポンサードリンク

記事が役に立ったらシェア!

gnuplotで”球”を描いて見た

球体の良い感じの図が欲しかった。

自分が書いているwebマガジンの方で、球体の図が欲しくなったので、何で書こうかと試行錯誤した結果、gnuplotに決定。 pptが使えないのでkeynote?

いやー、それならepsで出力できる方が良いかと思い、ベクター描画できるinkscapeか(自分はイラストレータがないので)?

そもそもepsにこだわる理由がないなら、球体のフリーイラスト素材使えばよくね?って。でもフリー素材だと本当に球だけになって、簡素になるなぁって。じゃあ、球体書くときに軸とかグラデーションつけたらそれっぽくなるんじゃねって。

でも、それらを図で書くのだるいなって。

ならグラフ描画ツール使ったら一発じゃんて思い、gnuplotを使って球体を表現することにしました。今回は、gnuplotを使って球体を書くときの注意点とか、gnuplotでそれらをコマンド打ちするのめんどいって言う人の為に、自分が作った簡易設定ファイルについて説明します。

自分が直面した壁その1

gnuplotはaquatermで描画するようにインストールするとなぜか、マウスやドラッグでの視点変更ができないです(おそらくデフォルト)。なのでgnuplotをインストール際は、以下のコマンドを使い、x11で描画するように設定してください。これなら、初期状態からグラフ上で、視点変更が可能です。



スポンサードリンク

自分が直面した壁その2

なぜか潰れる。

 

単純にダサいですね。しかしこのコマンドで解決。

画像出力の際に、サイズを指定してやれば良いだけでした。出力せずに、ウィンドウサイズを変更したい場合は

gnuplot起動時に

としてgnuplotを起動してやれば、正方形でウィンドウ表示可能です。以下にサイズを指定し直したものを載せます。

ついでに、コンター表示もしてみました。今回のグラフを作るのに用いた設定コードは以下。

上記のコードを”ファイル名.gp”として保存し、gnuplot を起動した状態で、

として実行すれば描けます。

球体をgnuplotで良い感じに表現したい人の助けになれば幸いです。



スポンサードリンク

記事が役に立ったらシェア!