人に聞けない痔の悩み、これでスッキリ >>

フラクタルはどういった分野で応用されているのでしょう?
具体的に社会において利用されている例を知りたいのですが、いまいちわかりません。
例えばどのような分野・領域で活用されていて、それはフラクタルがどのように関わっているのでしょう?
お願いします。

A 回答 (1件)

フラクタル性は拡大という変換を施しても保存される性質ですから、ひとことで言えば、不動点のような使い方をします。



たとえば焼きなまし法
http://en.wikipedia.org/wiki/Simulated_annealing
という離散的最適化法では「温度」を下げることが、地形の拡大に対応します。そして拡大した地形がもとと同様の性質を持った地形になることを使って、局所最適からの脱出を繰返します。高温のときは大きな穴から大きな丘を越えて脱出し、低温のときは大きな穴の中の小さな穴から小さな丘を越えて脱出します。これは問題が持つフラクタル性を利用しているわけです。

> 具体的に社会において利用されている例

もっと直接的な例が良ければ、computer graphics の背景作りがあります。たとえばゲームの画像で山の稜線をそれらしく表現しようと思ったら、フラクタルを使うのが速くて簡単だし、記憶もあまり食わずにできます。上の焼きなまし法だって「具体的に社会において利用されてい」ますけど。

> フラクタルがどのように関わっているのでしょう?

どちらの例も、フラクタル性が再帰とか自己言及、つまり同じ規則を繰返し適用して良いことの根拠になってます。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qフラクタルは何の役に立つ?

小学4年生の息子と教育番組を見ていてフラクタル図形の話が出ました。同じ形が大きくなっても小さくなっても出てくる面白い図形ということは判りました。自然界には多くの事例がある事もわかりました。ところが「これって何の役に立つの?」と息子に質問され万事休すです。言われてみれば具体的に身の回りの生活で何かの役に立っている例はあるようなないような・・・。
結局何の役にたっているか、小学生に説明する前提でわかりやすく教えていただけないでしょうか。

Aベストアンサー

>結局何の役にたっているか、小学生に説明する前提でわかりやすく教えていただけないでしょうか。

小学生向け・・・厳しいですね
#「役に立つ・立たない」以外の価値観も大事だと思います

数学の範囲だとどうやっても小学生には厳しいと思うので
応用的なことを
#数学だとハウスドルフ次元,被覆次元とか,アトラクタとか
#カントール集合とか・・・呪文の連続になります(^^;;

フラクタルってのは「自己相似」で
狭いところにどんどん押し込めることができるんです.
つまり狭い体積の領域で表面積を大きくするものに有効です.
人間の体だと,肺とか肝臓なんかが代表的.
表面積が広ければそれだけ接することができるので,
狭い領域で効率よく受け渡しができるわけです.
もっと卑近だと「台所のスポンジ」.
多孔構造で小さい割りに表面積が多くて
中に溜め込めるわけです.

それらしい最先端のものだと
「フォトニック・フラクタル」というのがあります.
日本が世界をリードしてるようですが,
これはフラクタルの構造を結晶で作ってしまって
「光を閉じ込める」ことに成功しています.
2,3年前に新聞でも出てました.
ドラえもんの「ドライライト」まではいかなくても
もしかすると光を溜める「光電池」ができるのかも(^^;

>結局何の役にたっているか、小学生に説明する前提でわかりやすく教えていただけないでしょうか。

小学生向け・・・厳しいですね
#「役に立つ・立たない」以外の価値観も大事だと思います

数学の範囲だとどうやっても小学生には厳しいと思うので
応用的なことを
#数学だとハウスドルフ次元,被覆次元とか,アトラクタとか
#カントール集合とか・・・呪文の連続になります(^^;;

フラクタルってのは「自己相似」で
狭いところにどんどん押し込めることができるんです.
つまり狭い体積の領域で表...続きを読む

Qフラクタルの活用法

 私はフラクタルについて、まったくというほどわかっていません。科学雑誌などを見ていても、言葉はわかっていてもそれだけです。
 あるときフラクタルに関する記事を読んでいたら、「複雑な海岸線もコッホ曲線に近いフラクタル次元を持っている。」と書いてありました。

 これはつまり、どんな形をしていてもフラクタルによって、その形を予測することができるということなのですか?
また、とっぴな話ではありますが。フラクタルを建築の世界に活用すれば、その建築物の形も予測することが可能なのですか?

Aベストアンサー

コッホ曲線やマンデルブロ集合などのフラクタル図形では、簡単なルール(漸化式)によって帰納的にきわめて複雑な図形が定義されます。初期条件やルールを変えるだけで様々な複雑図形を生成できるわけですが、これを逆に行ったものとしてフラクタル圧縮というものがあります。与えられた図形をフラクタル図形で近似できれば、そのフラクタル図形自身は、単純なルールといくつかの初期条件という少ない情報量で再現できるので、図形情報のデータ量を少なくして圧縮できます。

図形の予測をすることはできないと思いますが、上で説明したように与えられた図形をフラクタル図形で近似することはできます。

Q電圧増幅度の出し方

入力電圧と出力電圧があってそこからどうやって電圧増幅度を求めるんですか?
電圧増幅度を出す式を教えてください

Aベストアンサー

増幅回路内の各段のゲイン、カットオフを求めて、トータルゲイン及びF特、位相
を計算するという難しい増幅回路の設計にはあたりませんので、きわめて単純に
考えればいいですよ。

電圧利得(A)=出力電圧/入力電圧

となります。

これをデシベル(dB)で表すと

G=20LogA(常用対数)

で計算できます。

ご参考に。

Qエクセルで片対数グラフを作る

エクセルで片対数グラフを作る方法を詳しく教えてください。お願いします。

Aベストアンサー

グラフの数値軸のところで右クリックして
軸の書式設定(O)→目盛(タブ名)

対数目盛を表示する(L)
にチェックを入れてください。

Q遮断周波数のゲインがなぜ-3dBとなるのか?

私が知っている遮断周波数の知識は・・・
遮断周波数とはシステム応答の限界であり、それを超えると減衰する。
<遮断周波数の定義>
出力電力が入力電力の1/2となる周波数を指す。
電力は電圧の2乗に比例するので
Vout / Vin = 1 / √2
となるので
ゲインG=20log( 1 / √2 )=-3dB
となる。

ここで、なぜ出力電力が入力電力の1/2(Vout / Vin = 1 / √2)
となるのでしょうか?
定義として見るにしてもなぜこう定義するのか
ご存じの方いらっしゃいましたら教えて下さい。

Aベストアンサー

>ここで、なぜ出力電力が入力電力の1/2(Vout / Vin = 1 / √2)
>となるのでしょうか?
>定義として見るにしてもなぜこう定義するのか

端的に言えば、
"通過するエネルギー"<"遮断されるエネルギー"
"通過するエネルギー">"遮断されるエネルギー"
が、変わる境目だからです。

>遮断周波数とはシステム応答の限界であり、それを超えると減衰する。
これは、少々誤解を招く表現です。
減衰自体は"遮断周波数"に至る前から始まります。(-3dBに至る前に、-2dBとか、-1dBになる周波数があります)

Qヒストグラム均等化処理プログラム

どなたか以下のヒストグラム均等化処理プログラムを解説して頂けないでしょうか。特にgetMinMax関数とgetHistEqu関数で、何がしたいのか訳がわかりません。
以下のプログラムは、ヒストグラム均等化処理部分のみですが、分かる範囲でいいので、解説お願いします。
-------------------------------------------------------
// ヒストグラム均等化による画素値の割り当てを決定する
// hist:入力画像のヒストグラム
// min:割り当てられる画素値の最小
// max:割り当てられる画素値の最大
// たとえば,min[5]=4 max[5]=6の場合,画素値5には4-6の範囲に割り当てられる
// pixs_min:最小値が割り当てられる画素数
// pixs_max:最大値が割り当てられる画素数
// ave:各画素値に割り当てられる画素数
//★★特にmin,max,pixs_min,pixs_maxの説明の意味が分からないのです。
int getMinMax(int *hist,int *min,int *max,int *pixs_min,int *pixs_max,int ave)
{
int i;
int rest;
int now;
int pixels;
int a,b;

rest=0;
now=0;
for(i=0;i<256;i++) {
pixels=rest+hist[i];
min[i]=now;
if(rest>0) pixs_min[i]=ave-rest;
else pixs_min[i]=ave+100;
a=pixels/ave;
rest=pixels%ave;
max[i]=now+a;
if(rest>0) pixs_max[i]=rest;
else pixs_max[i]=ave+100;
now+=a;
}
for(i=0;i<255;i++) {
if(min[i]>255) min[i]=255;
if(max[i]>255) max[i]=255;
}
max[255]=255;
pixs_max[255]=ave*10;
}

// ヒストグラム均等化による画素値の決定
// 割り当てられる画素値の最小,最大の間で順番に割り当てていく
// ただし,最小,最大については割り当てる画素数に制限がある
int getHistEqu(int x,int *now,int *min,int *max,int *pix_min,int *pix_max)
{
int res;

if(now[x]==max[x]) {
if(pix_max[x]<=0) now[x]=min[x];
else pix_max[x]--;
}
if(now[x]==min[x]) {
if(pix_min[x]<=0) now[x]=min[x]+1;
else pix_min[x]--;
}
if(now[x]>max[x]) now[x]=min[x];
res=now[x];
now[x]++;
return res;
}

int effect(ImageData *img,ImageData *outimg)
{
int x,y;
int rr,gg,bb;
int ro,go,bo;
int i;
int val;
int ave;
int histR[256],histG[256],histB[256];// ヒストグラム
int omaxR[256],omaxG[256],omaxB[256];// 変換後,割り当てられる画素値の最小
int ominR[256],ominG[256],ominB[256];// 変換後,割り当てられる画素値の最大
int pix_maxR[256],pix_maxG[256],pix_maxB[256];// 最小値が割り当てられる画素数
int pix_minR[256],pix_minG[256],pix_minB[256];// 最大値が割り当てられる画素数
int onowR[256],onowG[256],onowB[256];// 次に割り当てる画素値
Pixel pix;

for(i=0;i<256;i++) {
histR[i]=histG[i]=histB[i]=0;
}
ave= img->height * img->width /256; // 画像の全画素数/画素値の範囲
// ヒストグラム作成
for(y=0;y<img->height;y++) {
for(x=0;x<img->width;x++) {
getPixel(img,x,y,&pix);//画像上の画素情報を取得
rr=pix.r;
gg=pix.g;
bb=pix.b;
histR[rr]++;
histG[gg]++;
histB[bb]++;
}
}
// 画素値の割り当て決定
getMinMax(histR,ominR,omaxR,pix_minR,pix_maxR,ave);
getMinMax(histG,ominG,omaxG,pix_minG,pix_maxG,ave);
getMinMax(histB,ominB,omaxB,pix_minB,pix_maxB,ave);
for(i=0;i<256;i++) {
onowR[i]=ominR[i];
onowG[i]=ominG[i];
onowB[i]=ominB[i];
}
// ヒストグラム均等化処理
for(y=0;y<img->height;y++) {
for(x=0;x<img->width;x++) {
getPixel(img,x,y,&pix);//画像上の画素情報を取得
ro=pix.r;
go=pix.g;
bo=pix.b;
rr=getHistEqu(ro,onowR,ominR,omaxR,pix_minR,pix_maxR);
gg=getHistEqu(go,onowG,ominG,omaxG,pix_minG,pix_maxG);
bb=getHistEqu(bo,onowB,ominB,omaxB,pix_minB,pix_maxB);
pix.r=rr;
pix.g=gg;
pix.b=bb;
setPixel(outimg,x,y,&pix);// 画像に値をセットする
}
}
return 0;
}

どなたか以下のヒストグラム均等化処理プログラムを解説して頂けないでしょうか。特にgetMinMax関数とgetHistEqu関数で、何がしたいのか訳がわかりません。
以下のプログラムは、ヒストグラム均等化処理部分のみですが、分かる範囲でいいので、解説お願いします。
-------------------------------------------------------
// ヒストグラム均等化による画素値の割り当てを決定する
// hist:入力画像のヒストグラム
// min:割り当てられる画素値の最小
// max:割り当てられる画素値の最大
// たとえ...続きを読む

Aベストアンサー

例えば、解像度が256×256だったとすると、
ヒストグラム均等化処理後は、各輝度値を持つ画素数は全て256ピクセルになる、ということです。

ここで、入力の輝度値のヒストグラムが
0: 600ピクセル
1: 600ピクセル
2: 600ピクセル
(以下略)
だったとしましょう。

変換後の各輝度値は256ピクセルしかおけませんから、
入力の輝度値0の600ピクセル中、256ピクセルは出力輝度値0、256ピクセルは出力輝度値1、88ピクセルは出力輝度値2になります。

入力の輝度値1に付いては、168ピクセル(入力輝度値0が使った残り)が出力輝度値2、256ピクセルが出力3、176ピクセルが出力4になります。

入力の輝度値2に付いては、80ピクセルが出力輝度値4、256ピクセルが出力5、256ピクセルが出力6、8ピクセルが出力7になります。

と、こういう割当ピクセル数を計算するのが getMinMax ですね。

この場合、
min[0]=0, max[0]=2, pix_min[0]=256, pix_max[0]=88
min[1]=2, max[1]=4, pix_min[1]=168, pix_max[1]=176
min[2]=4, max[2]=7, pix_min[2]= 80, pix_max[2]= 8
という結果になります。

この計算結果を基に、入力輝度値から出力輝度値を算出するのが getHistEqu です。
可能なピクセル数の範囲で、min[x]~max[x]を順番に出力していきます。
例えば、、入力輝度値が2の場合、min[2]=4, max[2]=7ですから
入力輝度値2が出てくる度に、4, 5, 6, 7, 4, 5, 6, 7, 4, 5, 6, 7, …
と、4~7を順番に出力していきます。
ただし、7を8回出力したところで、出力7のピクセル数は使い切ってますから、
以降は、4, 5, 6, 4, 5, 6, … となり、
4を80回出力した所で、出力4のピクセル数は使い切るので、
以降は 5, 6, 5, 6, …という出力になります。

例えば、解像度が256×256だったとすると、
ヒストグラム均等化処理後は、各輝度値を持つ画素数は全て256ピクセルになる、ということです。

ここで、入力の輝度値のヒストグラムが
0: 600ピクセル
1: 600ピクセル
2: 600ピクセル
(以下略)
だったとしましょう。

変換後の各輝度値は256ピクセルしかおけませんから、
入力の輝度値0の600ピクセル中、256ピクセルは出力輝度値0、256ピクセルは出力輝度値1、88ピクセルは出力輝度値2になります。

入力の輝度値1に付いては、168ピクセル(入力輝度値0が...続きを読む


人気Q&Aランキング