Dosya:FeynmanPropagatorWithMass0.2.jpg
![Dosya:FeynmanPropagatorWithMass0.2.jpg](http://upload.wikimedia.org/wikipedia/commons/thumb/b/b4/FeynmanPropagatorWithMass0.2.jpg/600px-FeynmanPropagatorWithMass0.2.jpg)
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:
![w:tr:Creative Commons](https://upload.wikimedia.org/wikipedia/commons/thumb/7/79/CC_some_rights_reserved.svg/90px-CC_some_rights_reserved.svg.png)
![atıf](https://upload.wikimedia.org/wikipedia/commons/thumb/1/11/Cc-by_new_white.svg/24px-Cc-by_new_white.svg.png)
![benzer paylaşım](https://upload.wikimedia.org/wikipedia/commons/thumb/d/df/Cc-sa_white.svg/24px-Cc-sa_white.svg.png)
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;
}
|
Altyazılar
Bu dosyanın temsil ettiği şeyin tek satırlık açıklamasını ekleyin.
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.wikipedia.org/wiki/Dosya:FeynmanPropagatorWithMass0.2.jpg" sayfasından alınmıştır