Hatena::ブログ(Diary)

Maximaでこうぞうりきがく

2017-06-14

ルジャンドル多項式

今回はルジャンドル多項式(Legendre polynomial)のお話です

ルジャンドル微分方程式の一般解に対して”λが非負整数かつ[1, 1]に確定点を持つ”という条件を課すことで与えられます

Gauss積分の所でこの多項式を内挿関数に使っていますね


legendre.wxm

f:id:ryooji_f:20170614214122p:image

n次のルジャンドル多項式P(n)は二項係数を用いて%o1式で表されます


f:id:ryooji_f:20170614214119p:image

%i1にてパッケージ"interpol"をロードします(画面出力は省略)

legendre_p関数を使って P(1)〜P(5) を計算した結果を示します(%t4〜8)


f:id:ryooji_f:20170614214114p:image

%t4〜8式を x = -1〜1の範囲でプロットします(%t9)

これより [1, 1]に確定点を持つことが解ります→P(n)|(x=1) = 1


f:id:ryooji_f:20170614214110p:image

ルジャンドル多項式が持つ性質の一つとして,”閉区間[−1, 1]上のL2-内積に関して直交する”というものがあります

%o10式に示す内積積分を 10 x 10 まで具体的に計算した結果が%o11式となります

これより%o10式が直交性を持つこと,対角成分は正規化されておらず 2/(2*n+1) となることが判ります

2017-04-27

佐藤・テイト予想

以前に谷山・志村予想のお話をした流れで,今回は佐藤・テイト予想(Sato–Tate conjecture)について触れておきたいと思います

この予想もRichard Taylorらによって既に証明されています


ここでは,難波完爾氏のテキストにある例題をフォローしてみます

sato-tate conjecture.wxm

http://cdn-ak.f.st-hatena.com/images/fotolife/r/ryooji_f/20170427/20170427004138.png

デデキントのη関数(Dedekind Eta function)として%o2式を定義します

η関数を使ってq展開式を与えます(%o3)

これをq^100まで展開した結果を%o4式に示します


f:id:ryooji_f:20170603152911p:image

n : N/2

いま素数 p = 2*n+1 に対してq展開式のq^nの係数をaとすると,p = 101までのpとaの組み合わせは%t32〜56となります

ここで,2次方程式 x^2-a*x+p = 0 の解を配列Cに代入していきます(画面出力は省略)



http://cdn-ak.f.st-hatena.com/images/fotolife/r/ryooji_f/20170603/20170603152906.png

N = 10000(p = 9973)までの解(複素根)を複素平面上にプロットしたものが%t1235です

これより解の分布が偏角(argument)θに依存していることが伺えますが,これがsin2θに比例するというのが同予想になります


佐藤幹夫の数学 増補版

佐藤幹夫の数学 増補版

2017-03-24

群 その2

前回に引き続いて群のお話です

構造力学に関係のありそうな具体的な演算について,群の定義を満足するかどうかをmaximaで確認してみます

group2.wxm

f:id:ryooji_f:20170324210050p:image

ベクトルの平衡移動について考えます

平面上のベクトルaの成分を定義します(%o1)

ここで、3番目の成分の1はダミーです

e1方向にΔ1,e2方向にΔ2だけ平衡移動させる線形変換Pを定義します(%o2)

P.a はベクトルなので閉じています(%o3)

結合法則が成り立ちます(%o4)

単位元単位行列 I)が存在します(%o5, 6)

逆元(P^-1)が存在します(%o7, 8)

ここで,P^-1はPの反対方向への平衡移動に相当します


ということで,ベクトルの平衡移動は群を成します


f:id:ryooji_f:20170324210049p:image

ベクトルの鏡像反転について考えます

ベクトルaの成分を定義します(%o9)

e2-e3平面に対して鏡像反転させる線形変換Mを定義します(%o10)

M.a はベクトルなので閉じています(%o11)

結合法則が成り立ちます(%o12)

単位元単位行列 I)が存在します(%o13, 14)

逆元(M^-1)が存在します(%o15, 16)

ここで,M^-1はM自身であり,2回の操作で基に戻ることが分かります


ということで,ベクトルの鏡像反転は群を成します


f:id:ryooji_f:20170324210048p:image

ベクトルの回転変換について考えます

e3軸周りにθ[rad]だけ回転させる線形変換Rを定義します(%o17)

R.a はベクトルなので閉じています(%o18)

結合法則が成り立ちます(%o19)

単位元単位行列 I)が存在します(%o20, 21)

逆元(R^-1)が存在します(%o22, 23)

ここで,R^-1はRの逆周り-θ[rad]の回転変換に相当します


ということで,ベクトルの回転変換は群を成します


2017-03-20

群 その1

今回は群(group)のお話です

集合Gの元g, h, kに対しての二項演算"・"を考えた時,以下の4つの条件を満たす場合に"群"を成すと言います

  • 演算に関して集合が閉じている → g・h∈G
  • 結合法則が成り立つ → g・(h・k) = (g・h)・k
  • 単位元 e が存在する → g・e = e・g = g
  • 逆元 g^-1 が存在する → g・g^-1 = g^-1・g = e

構造力学に関係のありそうな具体的な演算について,群の定義を満足するかどうかをmaximaで確認してみます

group1.wxm

f:id:ryooji_f:20170320215546p:image

実数a, bの加法について考えます

a + b は実数なので閉じています(%o1)

結合法則が成り立ちます(%o2)

単位元(0)が存在します(%o3)

逆元(-a)が存在します(%o4)


ということで,実数の加法は群を成します


f:id:ryooji_f:20170320215545p:image

実数a, bの乗法について考えます

a * b は実数なので閉じています(%o5)

結合法則が成り立ちます(%o6)

単位元(1)が存在します(%o7)

逆元(1/a)が存在します(%o8)

一見良さそうですが,1/a は a≠0でなければ成り立たないので0の逆元は存在しません


ということで,"0を除く"実数の乗法は群を成します


f:id:ryooji_f:20170323010735p:image

x→p*x+qの線形変換について考えます(p, qは実数)

a(x)〜c(x)を定義します(%o9〜11)

a(b(x))の計算結果は p = a1*b1, q = a1*b0+a0 とそれぞれ実数なので p*x+q の形となり,閉じています(%o12)

結合法則が成り立ちます(%o13)

単位元(z(x) = x)が存在します(%o14,15)

a(x)の逆元(y(x) = x/a1-a0/a1)が存在します(%o16〜18)


ということで,p*x+qの線形変換fは群を成します


f:id:ryooji_f:20170320215543p:image

ベクトルa, bの加法について考えます

a〜cのベクトル成分を定義します(%o20〜22)

a + b はベクトルなので閉じています(%o23)

結合法則が成り立ちます(%o24)

単位元(零ベクトル)が存在します(%o25,26)

逆元(-a)が存在します(%o27)


ということで,ベクトルの加法は群を成します


f:id:ryooji_f:20170324205700p:image

正則行列A, Bの乗法について考えます

A〜Cの行列成分を定義します(%o28〜30)

A.B は正則行列なので閉じています(%o31)

結合法則が成り立ちます(%o32)

単位元単位行列 I)が存在します(%o33,34)

逆元(A^-1)が存在します(%o35)


ということで,正則行列の乗法は群を成します


追記

上の4つの条件に加えて次の条件を満たす場合,この群のことを特に"アーベル群"(可換群)と呼びます

2016-12-21

フェルマーの最終定理のニアミス解

以前谷山・志村予想の所で"フェルマーの最終定理"について触れましたが,今日はそのニアミス解についてのお話です

サイモンシン著・青木薫数学者たちの楽園 "第3章 ホーマーの最終定理"をフォローします

アニメザ・シンプソンズ」≪エバーグリーン・テラスの魔法使い≫(1998)の回でホーマーが黒板に書いた数式の一部がこちらです


3987^12 + 4365^12 = 4472^12


フェルマーの最終定理は正しいことが証明されてますので,上式は当然誤りです

ですがその誤差は非常に小さく,電卓等の有効桁数の低い処理系では正しい(ように見える)という理系ジョークです

本書の巻末にニアミス解を計算するC言語のコードが載っていたので計算してみます

コードの著者は「ザ・シンプソンズ」の脚本家 デービッド・S・コーエン氏です

当初はwxMaxima用にコードを書いたのですが,あまりにも数値計算が遅かったためにC言語に書き直したのでほとんどオリジナルと変わりません('A`)


コンパイラにはBorland C++ Compiler 5.5 (BCC32) を使いました

getch関数を使っているのでコンパイラによっては動作が異なるかもです・・・


fltnm,zip

  • fltnm.exe プログラム本体
  • fltnm.c  ソースコード(テキストファイル)

以下にソースコードを示します

【fltnm.c】

#include <stdio.h>
#include <math.h>

int main(){

	double x, y, z, i, az, d, upmin;
	
	upmin = pow(10, -7);
	
	for(x = 51; x <= 3999; x++){
	
		printf("\r[%.lf]", x);
		
		for(y = x+1; y <= 4444; y++){
		
			for(i = 7; i <= 77; i++){
			
				z = pow(pow(x, i) + pow(y, i), (1/i));
				az = floor(z + 0.5);
				d = fabs(z - az);
				
				if(az == y) break;
				
				if(d <= upmin){
				
					printf("\r%.f,\t%.f,\t%.f,\t%.f,\t%8.10f\n", x, y, az, i, d);
				
				}
				
				if(z < (y + 1)) break;
				
			}
			
		}
		
	}
	
	getch();
	return 1;

}

d : 両辺の差の絶対値

upmin : 許容する誤差=10^-7

両辺の差の絶対値が0.0000001以下となる組合せを計算します


http://cdn-ak.f.st-hatena.com/images/fotolife/r/ryooji_f/20161221/20161221215355.png

画面出力には,左から x, y, z, i, d を表示しています


というわけで,3987^12 + 4365^12 = 4472^12 が非常によい近似を与えていることが解ります