2012年3月27日火曜日

Asymptoteの練習 積分と和の比較

$\sum\limits_{k=1}^\infty \dfrac{1}{k^s} (s>1)$が収束することを$\displaystyle \int_1^\infty \frac{1}{x^s}\,dx$の収束性から証明するときのグラフ

任意のべき乗を扱う関数はないようで、$x^s=\exp(s\log x)$を用いて描画しています。
(追記2012/4/23: べき乗はx^sと書いておけばよいようです。)

ここで描画しているのは$x^{-\frac{6}{5}}$のグラフです。
マニュアルを読むと、べき乗根は三乗根まで用意されているようです。
軸のスケールの変え方がよくわからないので、n分の1倍したりn倍したりで調整しています。

size(7cm);
texpreamble("
\usepackage{amssymb}
\usepackage{amsmath}
");// \dotsbを使うため


import graph;
import patterns;
defaultpen(fontsize(10pt));

xaxis("$x$",Arrow(SimpleHead));
yaxis("$y$",Arrow(SimpleHead));

real n=2;
real f(real x) {return 1/exp((6/5)*log(n*x));};
pair F(real x) {return (x/n,f(x/n));};

draw(graph(f,0.25,4,operator ..));

add("hatch",hatch(3,dir(45)));

for(int i=1; i<7; ++i){
  draw(((i-1)/n,F(i).y)--F(i)--(F(i).x,0));
  filldraw(((i-1)/n,F(i).y)--F(i)--(i/n,0)--((i-1)/n,0)--cycle,pattern("hatch"));
  label(format("$%i$",i),(i/n,0),S);
}

label("$y=\dfrac{1}{x^s}$\ $(s >1)$",F(1.5),NE);
label("$\dotsb\dotsb$",(6.8/n,0.1/n));
label("$\dotsb$",(7/n,0),S);

2012年3月25日日曜日

Asymptoteの練習 円環領域

Laurent展開の説明に出てくる円環領域の作図。
領域を斜線で表すのに初めてpatternsモジュールを用いた。
hatchが斜線を表す。
円周上に矢印を描くために小細工がしてある。
arcで描いた円周の内部を塗ろうとすると、pathがcyclicでないと怒られた。
cyclicにするにはどうするのだろう。

size(6cm);

import patterns;
defaultpen(fontsize(10pt));

real r1=3.2;
real r2=1.8;
path p2=arc((0,0),1,0,360);
path g2=scale(r2)*unitcircle;
path g1=scale(r1)*unitcircle;
path p1=arc((0,0),4,0,360);
path g2a=arc((0,0),r2,45,360,direction=CW);
path g2b=arc((0,0),r2,-135,180,direction=CW);
path g1a=arc((0,0),r1,0,45,direction=CCW);
path g1b=arc((0,0),r1,180,225,direction=CCW);

add("hatch",hatch(3,dir(45),gray(0.5)));
filldraw(g1^^g2,pattern("hatch")+evenodd);

label("$r_2$",(r2,0),(0.8,-1),Fill(white));
label("$\gamma_2^{-}$",(r2+0.65)*dir(140),Fill(white));

draw(p2);
draw(g2a,MidArcArrow(SimpleHead));
draw(g2b,MidArcArrow(SimpleHead));
draw(g1a,MidArcArrow(SimpleHead));
draw(g1b,MidArcArrow(SimpleHead));
draw(g2);
draw(g1);
draw(p1);


label("$z$",((r1+r2)/2-0.1)*dir(60),E,Fill(white));
dot(((r1+r2)/2-0.1)*dir(60));
label("$O$",(0,0),SW);
label("$\rho_2$",(1,0),(0.5,-1));
label("$r_1$",(r1,0),(0.7,-1));
label("$\rho_1$",(4,0),(0.7,-1));
label("$\gamma_1$",(r1+0.36)*dir(110));
draw((0,-5)--(0,5),Arrow(SimpleHead));
draw((-5,0)--(6,0),Arrow(SimpleHead));
label("$\mathop{\mathrm{Im}}z$",(0,4.5),W);
label("$\mathop{\mathrm{Re}}z$",(6,0),S);

Asymptoteの練習 簡単なグラフ

Jordanの補題の証明に出てきそうなグラフ。
サイズのことがあまりよくわかっていないので、微調整しまくりで綺麗ではない。
あと、各軸のスケールの変更の仕方もよくわからない。

size(7cm);

import graph;
defaultpen(fontsize(10pt));

xaxis("$x$",Arrow(SimpleHead));
yaxis("$y$",-0.3pt,2.15pt,Arrow(SimpleHead));

real f(real x) {return abs(sin(x));};
real g(real x) {return 2*abs(x)/pi;};
pair F(real x) {return (x,f(x));};
pair G(real x) {return (x,g(x));};

pen dashed=linetype(new real[] {5,5});
draw(graph(f,-2,2,operator ..));
draw(graph(g,-2,2,operator ..),dashed);
draw(F(pi/2)--(pi/2,0),dotted);
draw(F(-pi/2)--(-pi/2,0),dotted);
dot(F(pi/2)); dot(F(-pi/2)); 
label("$\frac{\pi}{2}$",(pi/2,0),S);
label("$-\frac{\pi}{2}$",(-pi/2,0),S);
label("$y=|\sin x|$",F(1)+(0,0.27));
label("$y=\frac{2}{\pi}|x|$",G(1)+(0,-0.3));

2012年3月20日火曜日

Asymptoteの練習2 三角形とその分割

コーシーの積分定理の証明中に出てくる三角形の図をAsymptoteを使って作図してみました。
未だに使い方がよくわかっていないのと、プログラミングの素養が全くないので
こんな図を書くのにも数時間かかってしまいました。

size(4cm);

defaultpen(fontsize(12pt));

int n=3;
pair[][] a = new pair[n][n];
path p=(-0.5,0)--(0.5,0);

// 三角形の頂点
a[0][0]=(3,7);
a[1][0]=(0,0);
a[2][0]=(8,3);

// 三角形の線分の中点
for(int i=1; i<n; ++i){
  for(int j=0; j<n; ++j){
    a[j%n][i]=(a[(j+1)%n][i-1]+a[(j+2)%n][i-1])/2;
  }
}


// 分割された三角形の辺の描画
for(int j=0; j<n; ++j){
  draw(a[j%n][0]--a[(j+2)%n][1],MidArrow(SimpleHead,3.5,angle=25));
  draw(a[j%n][1]--a[(j+2)%n][0],MidArrow(SimpleHead,3.5,angle=25));
  draw(a[j%n][1]--a[(j+2)%n][1]);
}

// 中央の三角形の矢印
for(int j=0; j<n; ++j){
draw(shift(a[j%n][2]+rotate(90)*(unit(a[(j+1)%n][1]-a[(j+2)%n][1])/3))*rotate(degrees(a[(j+1)%n][1]-a[(j+2)%n][1]))*p,Arrow(SimpleHead,3.5,angle=25));
draw(shift(a[j%n][2]+rotate(90)*(unit(a[(j+2)%n][1]-a[(j+1)%n][1])/3))*rotate(degrees(a[(j+2)%n][1]-a[(j+1)%n][1]))*p,Arrow(SimpleHead,3.5,angle=25));
}


label("$a$",a[0][0],N);
label("$b$",a[1][0],SW);
label("$c$",a[2][0],E);
label("$a^\prime$",a[0][1],0.1SE);
label("$b^\prime$",a[1][1],NE);
label("$c^\prime$",a[2][1],WNW);

2012年3月19日月曜日

Ubuntu 11.10のemacs23を半透明化

Ubuntu 11.10を使い始めてからEmacs23の半透明化が効かなくなってしまったのが残念だったのですが、こちらによると半透明化が可能のようなので実行してみました。

「CompizConfig 設定マネージャ」からカテゴリの「アクセシビリティ」を選択し、 「不透明度・明度・彩度」の項目を選択、「不透明度」のタブから「新規」を選択し、ウィンドウ欄に「class=Emacs」を、ウィンドウの値に 「 85」を入力すればOKです。
 
見た目って大事ですよね。

2012年3月5日月曜日

Team Meのdebut albumがいい感じ

以前にEPをタワーレコードで試聴し衝動買いしたのですが、新しい音源が出ていないか調べてみたところ日本版が既に発売されているようでした。
EPもよい曲が満載ですが、デビューアルバムからの曲の動画を見ると非常に期待されます。
明日にでもCD買いに行こう。