ФЭНДОМ


Главная | Описание языка | FXD | API | Примеры | Инструменты Разработки | Новости | Ресурсы | Форум

Движение света в гравитационном поле Править

Анализ задачи с позиций классической теории Ньютона Править

Движение света в поле тяготения солнца можно рассматривать с класической точки зрения, учитывая что свет определнной волны состоит из фотонов определенной массы.


Массу фотона можно расчитать по следующим (не классическим ) формулам:

  p =  \frac{h}{\lambda}             \lambda - длина волны, p -импульс фотона, h - постоянная планка
 E^{2} = c^{2} p^{2} + m^{2}_0 c^{4} \!  E - энергия фотона, m_0 - масса покоя фотона  
 E^{2}= m c^{2}          m - масса фотона, с - скоросто света

Ссылки:


Нужно рассмотреть фотон соответствующий определенной длине волны ( для примера красный свет ) и посмотреть, как он отклоняется в поле солнца согласно классическим законам тяготения теории Ньютона. В данном случае полученный результат должен отличаться от экспериментального где-то в 2 раза.

Программа Править

  • В программе ниже надо:
    • правильно определить ускорение частиц через параметры центральной массивной частицы
    • Задать правильные параметры солнца и фотона ( массу, расстояние, ...)
    • переставить JavaFX Script плагин в NetBeans (установка плагина)

Photon trajectory


/*
 * Main.fx
 *
 * Created on 00:00:00.
 */

package javafxapplication3;

/**
 * @author User
 */

 // place your code here

import javafx.animation.*;                         //подключаем библиотеки
import javafx.stage.*;

import javafx.scene.*;
import javafx.scene.text.*;
import javafx.scene.paint.*;
import javafx.scene.shape.*;
import javafx.scene.transform.*;


import java.lang.System;
import java.lang.Math;

function sqrt(x:Number):Number{
    Math.sqrt(x)
}

function cosin(x:Number,y:Number,z:Number):Number{
if (z>0) then return -x/Math.sqrt(x*x+y*y)
else return -y/Math.sqrt(x*x+y*y);
}

function R(x:Number,y:Number):Number{
    return Math.sqrt(x*x+y*y)
}
var G=6.67*Math.exp(-11);
var deltaAngle:Number;
var k=10727.03778;

function Ugol(x:Number,y:Number):Number{
return Math.atan(y/x)
}


class Particle{                              //задем класс частиц
    public var name: String ;
    public var color: Color;

    public var x: Number ;
    public var y: Number ;
    public var velocityX: Number ;
    public var velocityY: Number ;

    public var radius: Number ;
    public var mass: Number;

    public override function clone():Particle {
        Particle{
            name: name,
            color: color,
            x: x
            y: y
            velocityX: velocityX
            velocityY: velocityY,
            radius: radius
            mass: mass
            }
    }
}

class ParticleSystem extends CustomNode{
    public var centralParticle: Particle;
    public var particles: Particle[];

    public var dt: Number = 0.01 ;
             public var time: Number = 0;

    public function run () {


        for (particle in particles){

            //  Solar mass: centralParticle.mass
            var ax = cosin(particle.x*Math.exp(7),particle.y*Math.exp(7),1) * ( G* centralParticle.mass) / (R(particle.x*Math.exp(7),particle.y*Math.exp(7))*R(particle.x*Math.exp(7),particle.y*Math.exp(7))*k);  //задаем ускорение по х
            var ay = cosin(particle.x*Math.exp(7),particle.y*Math.exp(7),-1) * (G* centralParticle.mass) / (R(particle.x*Math.exp(7),particle.y*Math.exp(7))*R(particle.x*Math.exp(7),particle.y*Math.exp(7))*k) ;   //задаем ускорение по у

           // System.out.println(ay);
            particle.velocityX = ax * dt +  particle.velocityX;     //скорость х
            particle.velocityY = ay * dt +  particle.velocityY;     //скорость у

            particle.x =  particle.velocityX * dt +  particle.x;    //смещение х
            particle.y =  particle.velocityY * dt +  particle.y;    //смещение у
       //  println('particle.x');println(particle.x);
        //println('particle.y');println(particle.y);
        //   println(Ugol(particle.x+200,particle.y+75));
deltaAngle=Ugol(particle.x+200,particle.y+75);
        }
                time += dt;

    }

        public override function create():Node{
        return Group{
            content: [
                Circle{
                    radius: bind centralParticle.radius
                    fill: centralParticle.color
                },
                for (particle in particles)
                Circle{
                    radius: particle.radius
                    fill: particle.color
                    centerX: bind particle.x
                    centerY: bind particle.y
                }
//Line{
  //        startX: bind -375
    //    startY: bind -70
      //endX: bind 1000
    //endY: bind -70
//
  //        stroke: Color.DARKGRAY
    //    strokeWidth: 1
//}
            ]
        }
    }
    public override function clone():ParticleSystem {
        ParticleSystem{
            centralParticle: centralParticle
            particles:
            for( particle in particles)
            particle.clone()
            }

    }
}

class CustomButton extends CustomNode {

    public var text: String;
    public var action: function();

    public override function create(): Node {
        return Group {
            content: [
                Rectangle{
                    width: 100
                    height: 50
                    arcHeight: 10
                    arcWidth: 10
                    fill: Color.LIGHTBLUE
                    onMouseClicked: function(e){
                        action();
                    }

                }
                Text{
                    x: 30
                    y: 30
                    font: Font{
                        size: 16
                    }
                    content: "Reset"
                }
            ]
        };
    }
}


var particleSystem = ParticleSystem{
    centralParticle: Particle{              //создаем частицу "Zvezda"
        name: "Zvezda"
        radius: 70
        mass: 1.9 * Math.exp(30)// Define Sun mass
        color: Color.ORANGE
    }

    particles: [
         Particle{                           //Создаем частицу 'земля'
            name: "Earth"
            radius: 3
            color: Color.GREEN
            mass: 5.97*Math.exp(24) // Define Earth mass
            x: 1124  // Define Earth distance to Sun
            y: -73
            velocityX: -2.9*Math.exp(-5)
            velocityY: -2.9*Math.exp(-5)

        },
        Particle{                           //Создаем частицу "красный луч"
            name: "Red Light"
            radius: 1
            color: Color.RED
            mass: 3.6*Math.exp(-47) // Define Red Photon mass
            x: -200
            y: -75
            velocityX: 30
            velocityY: 0

        },


    ]


};


var currentParticleSystem = particleSystem.clone();

var timeline = Timeline {
    keyFrames: KeyFrame {
        time: 0.003s,
        action: function() {
            if(currentParticleSystem.time < 44.12){
                currentParticleSystem.run()
            }
        }
    }
    repeatCount: Timeline.INDEFINITE
}

timeline.play();


    Stage{                                      //Создаем окно программы
    title: "Light in the Gravity Field"
    width: 1270
    height: 700
    onClose: function(){
        System.exit(0);
    }
    scene: Scene{
        content: [
            Text{
            x:50
            y:100
             fill: Color.WHITE
                font: Font{ size: 16}
                content: bind "Delta Angle: {deltaAngle}"

        }

            CustomButton {
                transforms: Transform.translate(20, 20)  // sdvig componenty
                text: "Reset"
                action: function(){
                    currentParticleSystem = particleSystem.clone();
                }

            },
            Group{
                content: Group{
                    transforms: Transform.translate(100, 350)  //zadaem koordinatbI i stavim v nih tochku (0,0)
                    content: bind currentParticleSystem
                }
            }
        ]
        fill: Color.BLACK

    }

}


Анализ задачи с позиций Общей Теории Относительности Править

  • Выбрать способ движение волн/частиц в искривленном пространстве-времени
    • Движение по геодезическим линиям

Принцип наименьшего действия

Это известная о том, как находить эктремум некоторой велечины s, которая зависит от функции если функция закреплена на концах. Если есть возможность представить s как  s  =  \int_{t_1}^{t_2} L(t) dt тогда L называют Лагранжианом. Известен способ получения уравнений Лагранжа, решая которые, можно найти ту самую функцию, на которой S экстремально.

Уравнения Лангранжа:a Невозможно разобрать выражение (лексическая ошибка): \frac{\delta L}{\delta q_{i}}-\frac{d(\frac{\partial L} {\partial q'_{i}})} {d t} =0 , где q_i-i -тая функция координат.

В физике Ньютона S называется действием, L = K-V (кинетическая минус потенциальная энергия), а уравнения Лагранжа совпадают со 2м законом Ньютона. Все это интерпретируются так, что частица движется по траектории, на которой действие минимально.

В нашем случае частицы движутся по геодезическим линиям (линиям, длина которых минимальна иди максимальна). У нас есть Метрика Шварцшильда: Невозможно разобрать выражение (лексическая ошибка): (ds)^2=c^2*(1- \frac{R_{g}}{r})*(dt)^2 - r^2*sin^2(\theta)*d(\phi)^2 - r^2*(d\theta)^2 - \frac{(dr)^2}{1-\frac{R_{g}}{r}}, где Rg=\frac{2MG}{c^2}


Мы будем рассматривать движение только в плоскости содержащей центр небесного тела, т.к. отклонение происходит к нему, тогда  \theta=\pi/2. Мы знаем как вычислять длину траектории:

 s=\int  \sqrt{c^2*(1-\frac{Rg}{r}) - r^2*{\phi'}^{2} - \frac{{r'}^{2}}{1-\frac{Rg}{r}}} * dt

L_1=\sqrt{c^2*(1-\frac{Rg}{r}) - r^2*{\phi'}^{2} - \frac{{r'}^{2}}{1-\frac{Rg}{r}}}

Тогда напишем уравнения Лагранжа: Для  \phi:

 \frac{\partial\left( \sqrt{c^2*(1-\frac{R_g}{r})-r^2*\phi'^2-\frac{r'^2}{1-\frac{R_g}{r}}}\right)}{\partial \phi}   -   \frac{d\left( \frac{\partial \left( \sqrt{c^2*(1-\frac{R_g}{r})-r^2*\phi'^2-\frac{r'^2}{1-\frac{R_g}{r}}}\right)}{\partial \phi'}\right)}{dt}=0

Откуда:

-\frac{d\left( \frac{-r^2*\phi'}{\sqrt{c^2*(1-\frac{R_g}{r})-r^2*\phi'^2-\frac{r'^2}{1-\frac{R_g}{r}}}}\right)}{dt} = 0

 \frac{-r^2*\phi'}{L_1}=a, где а-некоторая константа.

\phi'=\frac{-aL_1}{r^2}

L_1^2=c^2(1-\frac{R_g}{r})-\frac{a^2L_1^2}{r^2}-\frac{r'^2r}{r-R_g}

L_2=\sqrt{\frac{c^2(r^2-R_gr)-\frac{r'^2r^3}{r-R_g}}{r^2+a^2}}


Для  r:

  \frac{\partial L_2}{\partial r}   -   \frac{d\frac{\partial L_2}{\partial r'}}{dt}=0


\frac{\left( 2c^2r-c^2R_g-\frac{2r'^2r^3-3r'^2r^2R_g}{(r-R_g)^2}\right)(r^2+a^2)-\left( c^2r^2-c^2R_gr-\frac{r'^2r^3}{r-R_g}\right)}{2(r^2+a^2)L_2}-2\frac{(r''r^3+3r^2r'^2)(r^3-r^2R_g+a^2r-a^2R_g)L_2-r'^2r^2(3r^3-2r^2R_g+a^2r)L_2-r'r^3(r^3-r^2R_g+a^2r-a^2R_g)L_2'}{(r^2+a^2)^2(r-R_g^2)^2L_2^2}=0

Обозначим числитель первого слагаемого за Т. Распишем L_2':

L_2'=r''\left(\frac{r'r^3}{(r^2+a^2)L_2(r-R_g)} \right)+\frac{(2rr'c^2-c^2R_gr')(r^2+a^2)(r-R_g)^2-L_2r^3r'(r-R_g)^2-r'^3r^3(r^2+a^2)}{(r^2+a^2)^2L_2(r-R_g)^2}

Обозначим второе слагаемое за В.

Подставим:

\frac{T}{2(r^2+a^2)^2L_2}-2\frac{r''(r^6-r^5R_g+a^2r^4-a^2R_gr^3)L_2+r^2r'^2(2a^2r-r^2R_g-a^2R_g)L_2-r''\frac{r'^2r^6}{L_2}-r'r^3(r^2+a^2)(r-R_g)B}{(r^2+a^2)^2(r-R_g)^2L_2}


\frac{r''(r^6-r^5R_g+a^2r^4-a^2R_gr^3)L_2^2-r'^2r^6}{(r^2+a^2)^2(r-R_g)^2L_2^3}=\frac{-4r^2r'^2(2a^2r-r^2R_g-a^2R_g)L_2+4r'r^3(r^2+a^2)(r-R_g)B-(r-R_g)^2L_2T}{2(r^2+a^2)^2(r-R_g)^2L_2^2}

Выразим r'':

r''=\frac{4r'r^3(r^2+a^2)(r-R_g)BL_2-4r^2r'^2(2a^2r-r^2R_g-a^2R_g)L_2^2-(r-R_g)^2L_2^2T}{(r^6-r^5R_g+a^2r^4-a^2R_gr^3)L_2^2-r'^2r^6}

А теперь выразим \phi'':

-\frac{d\left( \frac{-r^2*\phi'}{\sqrt{c^2*(1-\frac{R_g}{r})-r^2*\phi'^2-\frac{r'^2}{1-\frac{R_g}{r}}}}\right)}{dt} = 0

\frac{(2r'r\phi'+\phi''r^2)L_1-\phi'r^2\frac{\frac{c^2Rgr'}{r^2}-2r'r\phi'^2-2\phi''\phi'r^2-\frac{2r''r'r^2-2R_gr''r'r-r'^2R_g}{(r-R_g)^2}}{2L_1}}{L_1^2}=0


2(2r'\phi'+\phi''r)L_1^2-\phi'r\left(  \frac{c^2Rgr'}{r^2}-2r'r\phi'^2-2\phi''\phi'r^2-\frac{2r''r'r^2-2R_gr''r'r-r'^2R_g}{(r-R_g)^2}\right)=0

\phi''=\frac{\phi'r\left( \frac{c^2Rgr'}{r^2}-2r'r\phi'^2-\frac{2r''r'r^2-2R_gr''r'r-r'^2R_g}{(r-R_g)^2}\right)-4r'\phi'L_1^2}{2rL_1^2+2{\phi'}^2r^3}

Эта формула нам подходит, так как мы уже знаем, как выражать r'' через r,r',\phi'.

Вот код программы:


/*
 * Main.fx
 *
 * Created on 00:00:00.
 */

package javafxapplication1;

/**
 * @author User
 */

 // place your code here

import javafx.animation.*;                         //
import javafx.stage.*;

import javafx.scene.*;
import javafx.scene.text.*;
import javafx.scene.paint.*;
import javafx.scene.shape.*;
import javafx.scene.transform.*;


import java.lang.System;
import java.lang.Math;

var G=6.67e-11;
var deltaAngle:Number;
var c=2.9e8;
var a=1;

function sqrt(x:Number):Number{
    Math.sqrt(x)
}

function cosin(x:Number,y:Number,z:Number):Number{
if (z>0) then return -x/Math.sqrt(x*x+y*y)
else return -y/Math.sqrt(x*x+y*y);//Math.atan(y/x)//
}

function s(x:Number,y:Number):Number{
   if (y>=1) then return s(x,y-1)*x
   else return 1
}

function xr(x:Number,y:Number,z:Number):Number{
if (z>0) then return Math.sqrt(s(x,2)+s(y,2))
else return Math.acos(x/Math.sqrt(s(x,2)+s(y,2)))
}
function rx(r:Number,p:Number,z:Number):Number{
if (z>0) then return r*Math.cos(p)
else return    r*Math.sin(p)
}
function vxvr(x:Number,vx:Number,y:Number,vy:Number,z:Number):Number{
if (z>0) then return (x*vx-y*vy)/(Math.sqrt(s(x,2)+s(y,2)))
else return (vy*x-vx*y)/(x*x+y*y)
}
function vrvx(r:Number,vr:Number,p:Number,vp:Number,z:Number):Number{
if (z>0) then return vr*Math.sin(p)-r*Math.cos(p)*vp
else return vr*Math.cos(p)-r*Math.sin(p)*vp
}


function L1(r:Number,R:Number,vX:Number,vY:Number):Number{
return Math.sqrt(s(c,2)*(1-R/r)-s(r,2)*s(vY,2)-s(vX,2)*r/(r-R))
}

function L2(r:Number,R:Number,vX:Number):Number{
return Math.sqrt((s(c,2)*(s(r,2)-R*r)-s(vX,2)*s(r,3)/(r-R))/(s(r,2)+s(a,2)))
}

function B(r:Number,R:Number,vX:Number):Number{
return ((2*r*vX*s(c,2)-s(c,2)*R*vX)*(s(r,2)+s(a,2))*s((r-R),2)-L2(r,R,vX)*s(r,3)*vX*s((r-R),2)-s(vX,3)*s(r,3)*(s(r,2)+s(a,2)))/(s((s(r,2)+s(a,2)),2)*L2(r,R,vX)*s((r-R),2))
}

function T(r:Number,R:Number,vX:Number):Number{
return ((2*s(c,2)*r-s(c,2)*R-(2*s(vX,2)*s(r,3)-3*s(vX,2)*s(r,2)*R)/(s(r-R,2)))*(s(r,2)+s(a,2))-2*r*(s(c,2)*s(r,2)-s(c,2)*R*r-(s(vX,2)*s(r,3))/(r-R)))/(2*s(s(r,2)+s(a,2),2)*L2(r,R,vX))
}

//function Ugol(x:Number,y:Number):Number{
//return Math.atan(y/x)
//}


class Particle{                              //
    public var name: String ;
    public var color: Color;

    public var x: Number ;
    public var y: Number ;
    public var vX: Number ;
    public var vY: Number ;

    public var radius: Number ;
    public var mass: Number;

    public override function clone():Particle {
        Particle{
            name: name,
            color: color,
            x: x
            y: y
            vX: vX
            vY: vY,
            radius: radius
            mass: mass
            }
    }
}

class ParticleSystem extends CustomNode{
    public var centralParticle: Particle;
    public var particles: Particle[];

    public var dt: Number = 0.01 ;
             public var time: Number = 0;

    public var R:Number=2*G*centralParticle.mass/(c*c) ;
    public function run () {


        for (particle in particles){
            var r=xr(particle.x*s(10,8),particle.y*s(10,8),1);
            var p=xr(particle.x*s(10,8),particle.y*s(10,8),0);
            var vr=vxvr(particle.x*s(10,8),particle.vX*s(10,8),particle.y*s(10,8),particle.vY*s(10,8),1);
            var vp=vxvr(particle.x*s(10,8),particle.vX*s(10,8),particle.y*s(10,8),particle.vY*s(10,8),1);

            //  Solar mass: centralParticle.mass
           var ar = (2*vr*(s(r,2)+s(a,2))*(r-R)*B(r,R,vr)*L2(r,R,vr)-2*s(r,2)*s(vr,2)*(2*s(a,2)*r-s(r,2)*R-s(a,2)*R)*s(L2(r,R,vr),2)-(r-R)*s(L2(r,R,vr),2)*T(r,R,vr))/((s(r,6)-s(r,5)*R+s(r,4)*s(a,2)-s(r,3)*s(a,2)*R)*s(L2(r,R,vr),2)-s(vr,2)*s(r,6)) ;  // r
            //var ap =(vp*r*((s(c,2)*R*vr/s(r,2))-2*vr*r*s(vp,2)-(2*ar*vr*r-2*R*ar*vr*r-s(vr,2)*R)/(s(r-R,2)))-4*vr*vp*L1(r,R,vr,vp))/(2*r*L1(r,R,vr,vp)+2*s(vp,2)*s(r,2));   // ph

           // System.out.println(ay);
           vr = ar * dt +  vr;     // r
           vp = -a*L1(r,R,vr,vp)/s(r,2);     // phi

            r =  vr * dt +  r;    //r
            p =  vp * dt +  p;    //phi
            //println('particle.x');println(particle.x);
            //println(Ugol(particle.x+200,particle.y+75));
//deltaAngle=Ugol(r+200,p+75);
            particle.x=rx(r,p,1)/s(10,8);
            particle.y=rx(r,p,0)/s(10,8);
            particle.vX=vrvx(r,vr,p,vp,1)/s(10,8);
            particle.vY=vrvx(r,vr,p,vp,0)/s(10,8);
        }
                time += dt;

    }

        public override function create():Node{
        return Group{
            content: [
                Circle{
                    radius: bind centralParticle.radius
                    fill: centralParticle.color
                },
                for (particle in particles)
                Circle{
                    radius: particle.radius
                    fill: particle.color
                    centerX: bind particle.x
                    centerY: bind particle.y
                }
//Line{
  //        startX: bind -375
    //    startY: bind -70
      //endX: bind 1000
    //endY: bind -70
//
  //        stroke: Color.DARKGRAY
    //    strokeWidth: 1
//}
            ]
        }
    }
    public override function clone():ParticleSystem {
        ParticleSystem{
            centralParticle: centralParticle
            particles:
            for( particle in particles)
            particle.clone()
            }

    }
}

class CustomButton extends CustomNode {

    public var text: String;
    public var action: function();

    public override function create(): Node {
        return Group {
            content: [
                Rectangle{
                    width: 100
                    height: 50
                    arcHeight: 10
                    arcWidth: 10
                    fill: Color.LIGHTBLUE
                    onMouseClicked: function(e){
                        action();
                    }

                }
                Text{
                    x: 30
                    y: 30
                    font: Font{
                        size: 16
                    }
                    content: "Reset"
                }
            ]
        };
    }
}


var particleSystem = ParticleSystem{
    centralParticle: Particle{              // "Zvezda"
        name: "Zvezda"
        radius: 70
        mass: 1.9e30// Define Sun mass
        color: Color.ORANGE
    }

    particles: [
         Particle{                           //
            name: "Earth"
            radius: 7
            color: Color.GREEN
            mass: 5.97e24 // Define Earth mass
            x: 124  // Define Earth distance to Sun
            y: 1
            vX: 0
            vY: 2.041286383e-7

        },
        Particle{                           //
            name: "Red Light"
            radius:  3
            color: Color.RED
            mass: 3.6e-47 // Define Red Photon mass
            x: -200
            y: -75
            vX: 2.9
            vY: 0

        },


    ]


};


var currentParticleSystem = particleSystem.clone();

var timeline = Timeline {
    keyFrames: KeyFrame {
        time: 0.0003s,
        action: function() {
            if(currentParticleSystem.time < 43.2){
                currentParticleSystem.run()
            }
        }
    }
    repeatCount: Timeline.INDEFINITE
}

timeline.play();


    Stage{                                      //
    title: "Light in the Gravity Field"
    width: 1270
    height: 700
    onClose: function(){
        System.exit(0);
    }
    scene: Scene{
        content: [
            Text{
            x:50
            y:100
             fill: Color.WHITE
                font: Font{ size: 16}
                content: bind "Delta Angle: {deltaAngle}"

        }

            CustomButton {
                transforms: Transform.translate(20, 20)  // sdvig componenty
                text: "Reset"
                action: function(){
                    currentParticleSystem = particleSystem.clone();
                }

            },
            Group{
                content: Group{
                    transforms: Transform.translate(375, 350)  //zadaem koordinatbI i stavim v nih tochku (0,0)
                    content: bind currentParticleSystem
                }
            }
        ]
        fill: Color.BLACK

    }

}

Метрика Править

Математические формулы Править

\frac {df} {dx} = f\prime(x)
 df  = f\prime(x) dx


 d(uv)  = du * v + v * du
Если ds = F(\tau) d\tau , то s = \int_{\tau1}^{\tau2}  F(\tau) d\tau

Метрика на плоскости Править

Function


\Delta s ^ 2 = \Delta x ^2 + \Delta y ^2

ds ^ 2 = dx ^2 + dy ^2


Нахождение длины окружности.

Зададим уравнение окружности в параметрическом виде:

x = r * \cos \phi
y = r * \sin \phi

тогда квадрат маленькой дуги окружности будет равен

ds^2 = dx ^2 + dy ^2  = (d(r * \cos \phi))^2 + (d(r * \sin \phi))^2 = r^2 * (d \cos \phi)^2 +  r ^2 * (d \sin \phi)^2  = r^2 * ( (- \sin \phi * d\phi )^2 +  (\cos \phi * d\phi)^2 )

ds^2 = r^2 * (\sin \phi ^2 d\phi ^2  + \cos \phi ^2 * d\phi ^2) =  r^2 * (\sin \phi ^2   + \cos \phi ^2 ) * d\phi ^2

ds^2 =  r^2 * d \phi ^2

ds  =  r  * d\phi


 s  =  \int_{s_1}^{s_2} ds =  \int_0^{2\pi}  r  * d\phi = r * (2\pi - 0 ) = 2 \pi r

Метрика в пространстве Править

ds ^ 2 = dx ^2 + dy ^2  + dz ^2

Метрика на сфере Править

Сферические полярные координаты:

 x = r \cdot \sin \theta  \cdot \cos\phi
 y = r \cdot \sin \theta  \cdot \sin \phi
 z = r \cdot \cos \theta


 dx = d(r \cdot \sin \theta  \cdot \cos \phi)
 dy = d(r \cdot \sin \theta  \cdot \sin \phi)
 dz = d(r \cdot \cos \theta)

На сфере r = const , отсюда следует что dr = 0 .

Теперь надо вычислить dx, dy и dz и подставить их в формулу для метрики в 3х-мерном пространстве:

ds ^ 2 = dx ^2 + dy ^2  + dz ^2

Задачи Править

Дана метрика на сфере:

 ds^2 = r^2 ( (d\theta)^2 + sin^2\theta * (d\phi)^2)

1. Найти длину мередиана при фиксированном угле \phi

Кривая ( \theta, \phi ) где \phi = const .

2. Найти длину параллели при фиксированном угле \theta

Кривая ( \theta, \phi ) где \theta = const .


3. Найти длину эллипса.

 \frac {x^2} {a^2} + \frac {y^2} {b^2} = 1 - уравнение эллипса
 ds^2 = dx^2 + dy^2 - метрика на плоскости.

4. Дополнительная задача

Вывести метрику на сфере.


1. Дано:

 \vec r(\tau) = (x(\tau),y(\tau)) - параметризованная кривая \tau \in (\tau_1,\tau_2) .
 ds^2 = F_{11}\cdot dx_1^2 + 2 F_{12}\cdot dx_1 dx_2 + F_{22} \cdot dx_2^2 - метрика на плоскости.


Длина кривой:

s=\int_{\tau_{1}}^{\tau_{2}} {\sqrt{F_{11} (x(\tau),y(\tau))*x'^2(\tau) + 2F_{12} (x(\tau),y(\tau))*x'(\tau)*y'(\tau) + F_{22} (x(\tau),y(\tau))*y'^2(\tau)} * d\tau}


2. Дана метрика на плоскости:

 ds^2 = g_{11}\cdot dx_1^2 + 2 g_{12}\cdot dx_1 dx_2 + g_{22} \cdot dx_2^2

Надо найти уравнение геодезической линии.

Ссылки Править

Опыты подтверждающие общую теорию относительности
Теги для математических формул

Обнаружено использование расширения AdBlock.


Викия — это свободный ресурс, который существует и развивается за счёт рекламы. Для блокирующих рекламу пользователей мы предоставляем модифицированную версию сайта.

Викия не будет доступна для последующих модификаций. Если вы желаете продолжать работать со страницей, то, пожалуйста, отключите расширение для блокировки рекламы.

Также на ФЭНДОМЕ

Случайная вики