Dosya:FeynmanPropagatorWithMass0.2.jpg
Sayfa içeriği diğer dillerde desteklenmemektedir.
Görünüm
Vikipedi, özgür ansiklopedi
Bu önizlemenin boyutu: 600 × 600 piksel. Diğer çözünürlükler: 240 × 240 piksel | 480 × 480 piksel | 1.001 × 1.001 piksel.
Tam çözünürlük ((1.001 × 1.001 piksel, dosya boyutu: 37 KB, MIME tipi: image/jpeg))
Bu dosya Wikimedia Commons'ta bulunmaktadır. Dosyanın açıklaması aşağıda gösterilmiştir. Commons, serbest/özgür telifli medya dosyalarının bulundurulduğu depodur. Siz de yardım edebilirsiniz. |
Özet
AçıklamaFeynmanPropagatorWithMass0.2.jpg |
English: Feynman propagator, m = 0.2, left/right/top/bottom bounds of image are at = ±2. |
Kaynak | Yükleyenin kendi çalışması |
Yazar | Cyp |
Lisanslama
Ben, bu işin telif sahibi, burada işi aşağıdaki lisanslar altında yayımlıyorum:
Bu dosya, Creative Commons Atıf-Benzer Paylaşım 3.0 Taşınmamış lisansı ile lisanslanmıştır
- Şu seçeneklerde özgürsünüz:
- paylaşım – eser paylaşımı, dağıtımı ve iletimi
- içeriği değiştirip uyarlama – eser adaptasyonu
- Aşağıdaki koşullar geçerli olacaktır:
- atıf – Esere yazar veya lisans sahibi tarafından belirtilen (ancak sizi ya da eseri kullanımınızı desteklediklerini ileri sürmeyecek bir) şekilde atıfta bulunmalısınız.
- benzer paylaşım – Maddeyi yeniden karıştırır, dönüştürür veya inşa ederseniz, katkılarınızı orijinal olarak aynı veya uyumlu lisans altında dağıtmanız gerekir.
Bu belgenin GNU Özgür Belgeleme Lisansı, Sürüm 1.2 veya Özgür Yazılım Vakfı tarafından yayımlanan sonraki herhangi bir sürüm şartları altında bu belgenin kopyalanması, dağıtılması ve/veya değiştirilmesi için izin verilmiştir;
Değişmeyen Bölümler, Ön Kapak Metinleri ve Arka Kapak Metinleri yoktur. Lisansın bir kopyası GNU Özgür Belgeleme Lisansı sayfasında yer almaktadır.http://www.gnu.org/copyleft/fdl.htmlGFDLGNU Free Documentation Licensetruetrue |
İstediğiniz lisansı seçebilirsiniz.
C++ source code - click on "show" on the right to view |
---|
C++ source code - click on "show" on the right to view |
#include <fstream>
#include <vector>
#include <string>
#include <algorithm>
#include <stdexcept>
#include <complex>
#include <stdint.h>
#include <tr1/cmath>
class Function
{
public:
virtual ~Function() {}
//virtual std::string name() const = 0;
virtual std::complex<double> eval(double x, double y) const = 0;
};
class Identity : public Function
{
std::complex<double> eval(double x, double y) const
{
return std::complex<double>(x, y);
}
};
class Propagator : public Function
{
public:
Propagator(double mass/*, char const *name*/) : m(mass)/*, n(name)*/ {}
//std::string name() const { return n/*"propagator"*/; }
std::complex<double> eval(double x, double y) const
{
double s = y*y-x*x; // y is time, x is a space dimension.
//double const m = 0.0000000001;//.0001;
if(s >= -1.e-20 && s <= 1.e-20)
return 1.e20;
if(s >= 0)
return m/(8*M_PI*std::sqrt(s))*std::complex<double>(std::tr1::cyl_bessel_j(1, m*std::sqrt(s)), std::tr1::cyl_neumann(1, m*std::sqrt(s)));
else
return m/(4*M_PI*M_PI*std::sqrt(-s))*std::complex<double>(0, -std::tr1::cyl_bessel_k(1, m*std::sqrt(-s)));
return std::complex<double>(x, y);
}
private:
double m;
//char const *n;
};
struct Pixel
{
Pixel() { col[0] = 0xFF; col[1] = 0x00; col[2] = 0xFF; }
Pixel(double r, double g, double b)
{
col[0] = std::max(0, std::min(255, int(0.5+255*r)));
col[1] = std::max(0, std::min(255, int(0.5+255*g)));
col[2] = std::max(0, std::min(255, int(0.5+255*b)));
}
//Pixel(std::complex<double> const &val) { col[0] = 0; col[1] = std::max(0, std::min(255, int(127.5+63.75*std::real(val)))); col[2] = std::max(0, std::min(255, int(127.5+63.75*std::imag(val)))); }
uint8_t col[3];
};
Pixel colourComplex(std::complex<double> const &z)
{
double r = std::abs(z);
double theta = std::arg(z);
double y = std::tanh(r/2);
double m = y*(1-y);
double s = m*std::sin(theta);
double c = m*std::cos(theta);
double const q = .5;
double const w = std::sqrt(.75);
return Pixel(y + c, y - q*c + w*s, y - q*c - w*s);
}
class Image
{
public:
Image(unsigned x, unsigned y, Function const &function_, double x1_, double y1_, double x2_, double y2_)
: sx(x), sy(y), function(&function_), /*filename(function_.name() + ".ppm"),*/ x1(x1_), y1(y1_), x2(x2_), y2(y2_)
{
data.resize(x*y);
//#pragma omp parallel for
for(int py = 0; py < int(y); ++py)
for(unsigned px = 0; px != x; ++px)
data[px+py*sx] = colourComplex(function->eval(x1+(x2-x1)*(px/(sx-1.)), y1+(y2-y1)*(py/(sy-1.))));
}
void save(std::string const &name)
{
std::string filename = name+".ppm";
std::ofstream f(filename.c_str(), std::ios::binary);
if(!f)
throw std::runtime_error("Couldn't open file \""+filename+"\" for writing.");
f << "P6\n" << sx << " " << sy << "\n255\n";
f.write(data, 3*sx*sy);
}
private:
unsigned sx, sy;
Function const *function;
//std::string filename;
double x1, y1, x2, y2;
std::vector<Pixel> data;
};
int main()
{
Image identity(1001, 1001, Identity(), -2, -2, 2, 2);
identity.save("PropagatorColours");
Image propagator1(1001, 1001, Propagator(.2), -2, -2, 2, 2);
propagator1.save("FeynmanPropagatorWithMass0.2");
Image propagator2(1001, 1001, Propagator(2), -2, -2, 2, 2);
propagator2.save("FeynmanPropagatorWithMass2");
Image propagator3(1001, 1001, Propagator(20), -2, -2, 2, 2);
propagator3.save("FeynmanPropagatorWithMass20");
Image propagator4(1001, 1001, Propagator(200), -2, -2, 2, 2);
propagator4.save("FeynmanPropagatorWithMass200");
return 0;
}
|
Bu dosyada gösterilen öğeler
betimlenen
Vikiveri ögesi olmayan bir değer
image/jpeg
Dosya geçmişi
Dosyanın herhangi bir zamandaki hâli için ilgili tarih/saat kısmına tıklayın.
Tarih/Saat | Küçük resim | Boyutlar | Kullanıcı | Yorum | |
---|---|---|---|---|---|
güncel | 20.34, 26 Ağustos 2008 | 1.001 × 1.001 (37 KB) | Cyp | {{Information |Description={{en|1=Feynman propagator, m = 0.2, left/right/top/bottom bounds of image are at = ±2.}} |Source=Own work by uploader |Author=Cyp |Date= |Permission= |other_versions= }} <!--{{ImageUpload|full}}--> [[Category:Feyn |
Dosya kullanımı
Bu görüntü dosyasına bağlantısı olan sayfalar:
Meta veri
Bu dosyada, muhtemelen fotoğraf makinesi ya da tarayıcı tarafından eklenmiş ek bilgiler mevcuttur. Eğer dosyada sonradan değişiklik yapıldıysa, bazı bilgiler yeni değişikliğe göre eski kalmış olabilir.
_error | 0 |
---|
"https://tr.chped.com/wiki/Dosya:FeynmanPropagatorWithMass0.2.jpg" sayfasından alınmıştır