SageMathでグラフ理論

SageMathでグラフを描く描き方はいろいろあるみたいです。

 

空(カラ)のグラフを作って、頂点や辺を加えていく描き方。


g=Graph()
g.add_vertices(range(6))
g.add_edges([(0,3),(1,3),(2,3),(2,4),(2,5)])
show(g)

f:id:niming538:20170910120130p:plain

 

 

次のは頂点と隣接する辺をPythonの辞書にして描く方法です。


sage: g2={0:[3],1:[3],2:[3,4,5]}
sage: G2=Graph(g2)
sage: show(G2)

f:id:niming538:20170910120154p:plain

 

この他、行列をGraph()に与えても同じグラフが描けます。

 


で、今知りたいのは頂点と辺のリストとか、行列とかいろんなモデルの相互互換の関数があるかどうか。
グラフに図示したときの点の位置や順番を指定したいのだがどうしたらよいか。
頂点にa,b,cと名前をつける方法はわかったのですが、数字にしたり、順序を変えたりしたい。

 

とかね。

 

SageMathでグラフ理論

WilsonのIntroduction to Graph Theoryに、図のGrötzschグラフがハミルトングラフであることを示せ、という練習問題がありました。

f:id:niming538:20170909175846p:plain

SageMathでこういった名前がついたグラフを描くのはとても簡単です。

 

sage: g=graphs.GrotzschGraph()
sage: show(g)

 

graphsのあとにピリオドを売って、Tabキーを押すと候補が出ますので、その中からGrotzschGraphを選びます。

 

次にこれがハミルトングラフかどうか判定します。

 

sage: g.is_hamiltonian()
True

 

便利ですねー。

 

完全二分木がハミルトングラフかどうか、という問題もありました。

f:id:niming538:20170909180538p:plain

これは、

 

sage: g=graphs.CompleteBipartiteGraph(2,3)
sage: show(g)

 

で描いたもので、

 

sage: g.is_hamiltonian()
False

となるのでハミルトングラフではないらしい。全部の頂点を1回だけ通る経路は3からスタートすれば描けるのですが、閉路にすることができない。ということかな。だとすると準ハミルトングラフか。

 

とか。

 

 

SageMath LaTeX Error: File `preview.sty' not found.

数学ソフトのSageMathのドキュメントでConstructionsというのの最初の方に、次のような例があって、

 

sage: var('x k w')
sage: f = x^3 * e^(k*x) * sin(w*x)
sage: f.diff(x)
sage: latex(f.diff(x))
sage: view(f.diff(x))

 

最後の一行で、LaTexに画像変換されたウィンドウが開きます。

 

LaTeX Error: File `preview.sty' not found.

 

というエラーが出たので、次のようにパッケージをインストールして解決しました。

 

sudo apt-get install preview-latex-style

 

環境はubuntu16.04、SageMathは7.5.1です。

 

 

以上

広瀬すずが持ち上げているバーベルの重さ

広瀬すずがバーベルスクワットしている写真がかっこいいですが、これ何kgもちあげているのだろう。

 

たぶん10kgのプレート2枚と2.5kgのプレート2枚。これで25kg。それにシャフトの重さ10kgを足して、35kgではないでしょうか。

 

普通のウエイトトレーニングのプレートと比べるとだいぶ大きく見えるのですが、彼女が小さくてやせているせいでそう見えるのかもしれない。

 

しかし、大したものです。35kgの重さでちゃんとスクワットしてますよね。かっこいい。

 

大きなプレートと小さなプレートが直径がちょうど2倍になっているので、重さにすると4倍なので、可能性としては、

 

5kg x 2 + 1.25kg x 2 + 10kg = 22.5kg

10kg x 2 + 2.5kg x 2 + 10kg = 35kg

20kg x 2 + 5kg x 2 + 10kg = 60kg

 

がありえると思うけど、まあ多分35kgですね。

 

以上

 

キーワード: 筋トレ、ダンベル、ショルダースクワット、バックスクワット

Texmaker

最近数学関係のテキストを読むのが趣味になって、PDFでダウンロードするのですが、相当数がTeXで書かれています。わたしもなにか書いてみようと思って、TeXで書くための環境を整え始めました。

 

Texmakerという環境が便利らしい。エディター部分があって、その右側にpdfでの出来上がりが見える形。エディターもTeXに最適化してあって、コマンドの最初の数文字を打つと使用方法も含めて提案される。

 

とりあえず動くようになったみたいなので備忘です。

 

環境はLinux Ubuntu 16.04 Texmakerは4.4.1です。

 

まず、texliveでtexを入れます。
sudo apt-add-repository ppa:texlive-backports/ppa

sudo apt update
sudo apt-get install texlive-lang-cjk

 

次にtexmakerを入れます。
sudo apt install texmaker

 

texmakerを起動して、日本語が使える設定にします。

 

Commandsというところにある、latexの設定を

uplatex -synctex=1 -interaction=nonstopmode %.texに書き換えます。


menu -> Options -> Configure Texmaker -> Commands -> latex -> uplatex -synctex=1 -interaction=nonstopmode %.tex

 

Quick Buildというところにある、コマンドから右側にある、LaTex + dvipdfm + View PDF を選択します。

menu -> Options -> Configure Texmaker -> Quick Build -> LaTex + dvipdfm + View PDF

 

これだけしか触っていないと思うけど、なにか忘れているかもしれません。

 

以上

 

かゆみ止めにお灸

いつも書いていますが、蚊に刺されたり、蕁麻疹だったり痒いところにはホットタオルがとても効きます。先日、エンボスヒーターがホットタオル、蒸しタオルがわりになることを書きましたが、近所のダイソーに行ったら、お灸を売っていました。これもホットタオルの代用になるのではないか。むしろ、ワンポイントで熱いので、絶対効くはず! と思いました。

 

 

ネットで

 

お灸 かゆみ止め

 

で検索してもあまり記事がないのは、やっぱあとが残ったりやけどしたり副作用があるからかもしれない。

 

実験してみよう。

 

 

 

小冊子印刷分冊のアイデア

数学やプログラミングの有名なテキストがインターネットで読むことができます。むろん本でも出ているのですが、あちらの本はたいへん高い。翻訳がでればそれでも高いけどそこそこの値段で手に入るようになります。なぜでしょう。たぶん価格と売れ行きのカーブの妥協点が違うのですね。

 

それはともかくそんなテキストをダウンロードもしくはPDF印刷して、セブンイレブンの小冊子印刷で印刷して、ダイソーで買った中とじ用のホッチキスで綴ると、本になります。わたしは80ページずつの分冊にしています。80ページだと紙にして20枚。白黒印刷で400円。320ページの本ならば4冊1600円、640ページの本ならば8冊3200円になります。これがたくさんになるとなんとなく収拾がつかなくなる。

 

みなさんファイルボックスに入れたりして工夫していると思うのですが、きょうのアイデアは、マスキングテープを使う、というもの。カラフルな柄のついたマスキングテープを100円ショップで売っていますので、それを背中に貼る。同じ本なら同じ柄のマスキングテープにすれば同じ本の一部だということが一目瞭然です。表紙のどこかに1/8,2/8,...とか書いておけば何冊目かもわかるので便利です。

 

いかがでしょうか。