相対的内部と内部のイメージ
相対的内部は初回だとどんな集合なのかイメージしにくいと思う.
なので, どんな集合をイメージしているのかを簡単に記しておく.
アフィン包
相対的内部ではその定義にアフィン包を利用する.
最初の頃, これが自分にはどんな集合かがイメージしにくかった.
定義だけ述べれば簡単で,集合のアフィン包とはを含むような最小のアフィン集合のことを指す.
アフィン集合とは線形空間を平行移動や回転させたような集合のことをいう.
イメージにすれば
のような感じだ.
このように集合を包む最小のアフィン集合をアフィン包といっているが, より具体的には
- 内の球を含む最小のアフィン集合は
- 内のという平面を含む最小のアフィン集合は平面自身
- 内のを含む最小のアフィン集合はを通る直線
内部
相対的内部の理解を深めるために, まず, 内部について簡単に書いておこう.
では内部を利用するのに開球という集合を用いる.
における開球とは
という集合のことをいう.つまり, ある距離内にある点を集めたもののことをいう.
これを使って内点を定義する.
つまり, 部分集合の内点とは,
つまり, 開球を取れる点のことを内点というのである.
より一般には集合の部分集合の内点とは
となる開集合が存在するの点のことをいう.
これら内点を集めた集合をの内部という.
これは以外にも厳しい制約で例えば図のような集合の内側の点の集合を集めようとすると,
のようにどんな小さなをとっても開球が集合の外側にはみ出してしまうため, 集合の内部を考えることができない.相対的内部
しかし, 先程の図のような集合にも内部のようなものを考えたい.
そこで登場するのが相対的内部である.
相対的内部を定義するにはアフィン包を用いる.
つまり, 部分集合の相対的内点とは
このままだとどんな集合か分かり辛いと思うので, イメージを載せる.
このようにすれば上手く内部のようなものが取れていることがわかると思う.なぜこのようなわかりにくい定義を利用するのかというと, 先程も言ったように例えば内で平たい集合の内部を考えるときに開球をとろうとするとはみ出してしまうような場合を避けるためである.
アフィン包との共通部分だけを考えれば, 次元を落とし, その落とした次元における開球との交わりだけで考えられるということが発想だろう.
つまり, 内の平面や直線の内部のような集合は3次元の開球で扱えないので, より次元を落としたやの開球だけで議論したいということである.
Pythonのclassの構文について
タイトルのまんま.
Pythonのclass構文はJavaなどのように特殊な構文解析を実装しているわけではないらしい.
python-history-jp.blogspot.com
単純にclass:
の後ろに書いてある文を無名関数に入れて, クラス辞書というクラスの情報を管理するための辞書に,
クラス変数やメソッドの情報を入れているだけ.
Python的に正しい文であれば(return
を除いて)valid.
なので, 次のような例もOK.
class Double: a = [] for i in range(10): if i % 2 == 0: a.append(i * 2) print(Double.a) # [0, 4, 8, 12, 16]が表示される
あまり使うとは思わないけど, 例えば環境変数によって用意するクラスやメソッドを変えたいとか,
with
でimport
時にファイルの中身を利用してなにかしたいときとかに使える...のだろうか.
ちなみにクラスをインポートしたものはdel
で削除できる(例えばimport random
としたものをdel random
でアンインポート(?)できる).
これを使って, with
とか環境変数とかで何かできるかもしれない.
ただ, これはこの挙動を知っているものでしか通用しないので, あまり使わない方が良いのかもしれない.
ルベーグ外測度のイメージ
外測度, 特にルベーグ外測度についてのイメージを記しておく.
準備
ルベーグ外測度自体の定義の述べる前にいくつか準備をしておく.
まず, 区間 とは次元ユークリッド空間の部分集合のことをいう.
ただし, を指す.
これはどういうことかというと,
- のとき, 閉区間
- のとき, 空間上の軸と軸に平行な四角の形をした閉領域
- のとき, 空間上の軸と軸, 軸に平行な直方体の形をした閉領域
を指している.
より高次元では直方体のような形をしたものを区間と称している.
この区間の体積を
と定義する.
これは3次元や2次元の場合を考えてもらえれば直感的だろう.
なので, この定義は直方体や四角形の面積を計算する計算式を3次元よりも高次元な場合へ拡張しているものであることがわかることと思う.
外測度
集合上の外測度とは次の公理を満たす集合関数のことをいう.
1. 空集合に対し,
3. の部分集合列に対し,
ルベーグ測度
このままでは抽象的すぎるので, ルベーグ外測度はに対し, 公理を満たすように体積を用いて定義される.
具体的には部分集合を被覆するように選んだ任意の区間列, すなわち,
を満たすの体積の和の下限がルベーグ外測度となっている.ルベーグ測度のイメージ
上の定義だけだと何だかよくわからないと思うので, イメージを記す.
なお, 簡単のため1次元の場合で書くが, より次元の高い場合も同じ.
そもそも図のように重なっているような場合は無駄が発生している.
もちろん, を被覆できる区間列ならなんでも良いので,その和がAより大きい, つまり図のではない部分を含んでいるようなものやそのものであっても構わないが, が付いているのでその中でも最小のものを選択しなければならない.なので, 無駄なく区間のヘリの部分のみが共通部分となるように区間を用意して(図では閉区間の始点と終点のみを共有するように)やるのが最も値が小さくなることがわかると思う.
このようにすれば問題なく測度を計算することができる.ただ, 上のは無限個の閉区間を足していることに注意して欲しい.
これは図のようにを被覆する有限個の閉区間と無限個の空集合が並んだ区間列をとればよい(空集合は閉かつ開)と考えるとわかりやすいと思う.
つまり, 空でない閉区間をからとして
となるような区間列をとっていると考えればよいとおもう.
Preview.appの履歴の削除方法
次のコマンドを実行して再起動。
$ rm ~/Library/Preferences/com.apple.Preview.LSSharedFileList.plist
psqlのバージョン違いによる挙動
psql
コマンドはメジャーバージョンが違うとパスワードに認証などを通さなくなるみたい。
例えば、PostgreSQL 9.6な環境にPostgreSQL 10.5のpsql
を利用しようとしても弾かれる。
事前に入るPostgreSQLのバージョンはちゃんとチェックしておこう。
Firestoreをウェブアプリで使う
まだドキュメント化されていないっぽいところもあったので、メモしておく。
まず、Cloud Firestoreのルールを次のように変更しておく。
service cloud.firestore { match /databases/{database}/documents { match /{document=**} { allow read, write: if request.auth.uid != null; } } }
肝はallow read, write: if request.auth.uid != null;
のところ。
デフォルトだと
allow read, write: false;
となっていて、全ての書き込み/読み込みが制限されているので、
認証したアカウントのみ書き込み/読み込みをさせたい場合は
false
をrequest.auth.uid != null
と書き換えなければならない。
次にコードを書かなければならないわけだけど、まだ日本語の
スタートガイド
には書いてないところがあるっぽくて罠だった。
まずはプロジェクトのトップindex.ts
とかに
Firestoreの初期化コードを埋め込んでおく必要がある。
const firestore = firebase.firestore(); const firestoreSettings = { timestampsInSnapshots: true, }; firestore.settings(firestoreSettings);
この初期化コードは全てのFirestore`関連のメソッドを実行する前に実行しなければならない。 以上をやっておかないと画像のように怒られる。
あとはデータを書き込めばOK。
database.collection('users').doc('user_id_1').set({ username: 'test', email: 'test@example.com', });
例ではusers
コレクションに
{ 'user_id_1': { 'username': 'test', 'email': 'test@example.com' } }
というデータを追加している。
firebaseでのwarning
TypeScriptで
import firebase from 'firebase';
とかしたらwarning吐かれた。
今時は
import firebase from 'firebase/app';
してから個別に必要なパッケージを入れろとのことらしい。
// 個別に必要なものをインポート import 'firebase/auth'; import 'firebase/database'; import 'firebase/firestore'; import 'firebase/messaging'; import 'firebase/functions';