파일:Friedmann universes.svg
testwiki
둘러보기로 이동
검색으로 이동
SVG 파일의 PNG 형식의 미리보기 크기: 620 × 500 픽셀. 다른 해상도: 298 × 240 픽셀 | 595 × 480 픽셀 | 952 × 768 픽셀 | 1,270 × 1,024 픽셀 | 2,540 × 2,048 픽셀
원본 파일 (SVG 파일, 실제 크기 620 × 500 픽셀, 파일 크기: 3 KB)
이 파일은 위키미디어 공용에 있으며, 다른 프로젝트에서 사용하고 있을 가능성이 있습니다. 해당 파일에 대한 설명이 아래에 나와 있습니다.
파일 설명
| 설명Friedmann universes.svg |
English: The age and ultimate fate of the universe can be determined by measuring the Hubble constant today and extrapolating with the observed value of the deceleration parameter, uniquely characterized by values of density parameters (ΩM for matter and ΩΛ for dark energy). A "closed universe" with ΩM > 1 and ΩΛ = 0 comes to an end in a Big Crunch and is considerably younger than its Hubble age. An "open universe" with ΩM ≤ 1 and ΩΛ = 0 expands forever and has an age that is closer to its Hubble age. For the accelerating universe with nonzero ΩΛ that we inhabit, the age of the universe is coincidentally very close to the Hubble age.
|
|||
| 날짜 | ||||
| 출처 | 자작 | |||
| 저자 | BenRG | |||
| SVG 발전 InfoField |
|
Formulas
This diagram uses the following exact solutions to the Friedmann equations:
See also
Some of the shown models are implemented as an animation at Cosmos-animation.
Perl code
use strict;
use Svg;
use Math::Trig qw(sinh cosh acos asinh acosh pi);
sub ScaleFunc {
my ($H0, $M0, $with_lambda) = @_;
if ($M0 == 1) {
my $q0 = 2/(3*$H0);
return sub { my ($q) = @_; ($q - $q0, (1.5 * $H0 * $q) ** (2/3)) };
}
if ($with_lambda) {
my $L0 = 1 - $M0;
# assume 0 < $M0 < 1
my $a = ($M0/$L0) ** (1/3);
my $b = 1.5 * $H0 * sqrt($L0);
my $q0 = asinh(sqrt($L0/$M0)) / $b;
return sub { my ($q) = @_; ($q - $q0, $a * (sinh($b * $q) ** (2/3))) }
} else {
# \Omega_{\Lambda_0} = 0
my $k0 = 1 - $M0;
if ($M0 == 0) {
return sub { my ($q) = @_; ($q - 1/$H0, $q * $H0) }
} else {
my $a = $M0 / (2 * abs($k0));
my $b = 1 / ($H0 * sqrt(abs($k0)));
my $c = $a * $b;
if ($M0 > 1) {
my $d = $a * (2 / ($H0 * $M0) - acos(2/$M0 - 1) * $b);
return sub { my ($q) = @_; ($c * ($q - sin($q)) + $d, $a * (1 - cos($q))) }
} else {
# 0 < M < 1
my $d = $a * (acosh(2/$M0 - 1) * $b - 2 / ($H0 * $M0));
return sub { my ($q) = @_; ($c * (sinh($q) - $q) + $d, $a * (cosh($q) - 1)) }
}
}
}
}
sub SubscriptedText {
my $text = shift;
$text->add(shift);
my $sub = 0;
for my $t (@_) {
$sub = !$sub;
$text->tspan($sub ? (dy => 4, 'font-size' => 12) : (dy => -4))->add($t);
}
}
my ($image_width,$image_height) = (620,500);
my ($origin_x, $origin_y) = (30.5,450.5);
my $pad_right = 70;
my ($tlo, $thi, $ahi) = (-15,18,2.5);
my $svg = new Svg(width => $image_width, height => $image_height);
# $svg->rect(width => $image_width, height => $image_height, fill => 'gray');
$svg->defs()->marker(id => 'arrowhead', refX => 0, refY => 3, markerWidth => 10, markerHeight => 6, markerUnits => 'userSpaceOnUse', orient => 'auto')->path(d => 'M 0,0 L 10,3 L 0,6 z');
my $traces = $svg->group(stroke => 'black', 'stroke-width' => 2, fill => 'none');
my $axes = $svg->group(stroke => 'black', 'stroke-width' => 1, fill => 'none');
my $labels = $svg->group('font-family' => 'Nimbus Roman No9 L, Times, serif', 'font-size' => 20, 'text-anchor' => 'middle', stroke => 'none', fill => 'black');
my $H0 = 1 / 13.95;
my $M0 = 0.279;
my ($graphscalex,$graphscaley) = (($image_width-$origin_x-$pad_right)/($thi-$tlo), -$origin_y/$ahi);
my ($graphofsx,$graphofsy) = ($origin_x - $tlo * $graphscalex, $origin_y);
for my $z ([0,0,30,'none'],[$M0,0,3.17,'1,4'],[1,0,26,'2,2'],[6,0,2*pi,'1,3,4,3'],[$M0,1,27,'5,3']) {
my ($m0,$with_lambda,$max_q,$dashes) = @$z;
my $f = ScaleFunc($H0,$m0,$with_lambda);
my (@x,@y);
for my $i (0..200) {
($x[$i],$y[$i]) = &$f($i / 200 * $max_q);
}
$traces->path('stroke-dasharray' => $dashes, ($m0 == 6 ? () : ('marker-end' => 'url(#arrowhead)')), d => MakePath(\@x, \@y, $graphscalex, $graphscaley, $graphofsx, $graphofsy, 1));
}
$axes->line(x1 => $origin_x, y1 => $image_height-20, x2 => $origin_x, y2 => 20, 'marker-end' => 'url(#arrowhead)');
$axes->line(x1 => 10, y1 => $origin_y, x2 => $image_width - $pad_right + 10, y2 => $origin_y, 'marker-end' => 'url(#arrowhead)');
$labels->text(x => ($origin_x + $image_width) / 2, y => $image_height-10)->add('Billions of years from now');
my $path = '';
for my $gyr (-13.7, -10, -5, 0, 5, 10, 15) {
my $x = int($gyr * $graphscalex + $graphofsx);
my $y = $origin_y-5;
$path .= "M$x.5,${y}l0,10";
$labels->text(x => $x, y => $origin_y + 20)->add($gyr);
}
$axes->path(d => $path);
$labels->circle(cx => $graphofsx, cy => $graphscaley + $graphofsy, r => 4);
$labels->text(x => $graphofsx-5, y => $graphscaley + $graphofsy, 'text-anchor' => 'end')->add('Now');
$labels->text()->rotate(-90)->translate($origin_x - 8, $origin_y / 2)->add("Average distance between galaxies");
my $trace_labels = $labels->group('font-family' => 'DejaVu Serif, serif', 'font-size' => 16);
SubscriptedText($trace_labels->text(x => 465, y => 30, 'text-anchor' => 'end'), "\x{3A9}", 'M', " = 0.3, \x{3A9}", "\x{39B}", " = 0.7");
SubscriptedText($trace_labels->text(x => 520, y => 50, 'text-anchor' => 'start'), "\x{3A9}", 'M', ' = 0');
SubscriptedText($trace_labels->text(x => 535, y => 70, 'text-anchor' => 'start'), "\x{3A9}", 'M', ' = 0.3');
SubscriptedText($trace_labels->text(x => 540, y => 95, 'text-anchor' => 'start'), "\x{3A9}", 'M', ' = 1');
SubscriptedText($trace_labels->text(x => 540, y => 400, 'text-anchor' => 'start'), "\x{3A9}", 'M', ' = 6');
$svg->write('Friedmann universes.svg');
라이선스
| Public domainPublic domainfalsefalse |
| 나는 이 작품의 저작권자로서, 이 작품을 퍼블릭 도메인으로 모두에게 공개합니다. 이 공개 선언은 전 세계적으로 유효합니다. 만약 저작권의 포기가 법률적으로 가능하지 않은 경우, 나는 이 작품을 법적으로 허용되는 한도 내에서 누구나 자유롭게 어떤 목적으로도 제한없이 사용할 수 있도록 허용합니다. |
설명
이 파일이 나타내는 바에 대한 한 줄 설명을 추가합니다
Solutions of the Friedmann Equations (not hand drawn)
이 파일에 묘사된 항목
다음을 묘사함
23 9 2009
image/svg+xml
파일 역사
날짜/시간 링크를 클릭하면 해당 시간의 파일을 볼 수 있습니다.
| 날짜/시간 | 섬네일 | 크기 | 사용자 | 설명 | |
|---|---|---|---|---|---|
| 현재 | 2009년 9월 23일 (수) 23:09 | 620 × 500 (3 KB) | wikimediacommons>BenRG | Nimbus Roman doesn't have Greek letters; switch to DejaVu Serif |
이 파일을 사용하는 문서
다음 문서 2개가 이 파일을 사용하고 있습니다: