-
Notifications
You must be signed in to change notification settings - Fork 1.3k
/
Copy pathLegendre.C
53 lines (46 loc) · 1.29 KB
/
Legendre.C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
/// \file
/// \ingroup tutorial_math
/// \notebook
/// Example of first few Legendre Polynomials.
///
/// Draws a graph.
///
/// \macro_image
/// \macro_code
///
/// \author Lorenzo Moneta
#include "TMath.h"
#include "TF1.h"
#include "TCanvas.h"
#include <Riostream.h>
#include "TLegend.h"
#include "TLegendEntry.h"
#include "Math/IFunction.h"
#include <cmath>
#include "TSystem.h"
void Legendre()
{
TCanvas *Canvas = new TCanvas("DistCanvas", "Legendre polynomials example", 10, 10, 750, 600);
Canvas->SetGrid();
TLegend *leg = new TLegend(0.5, 0.7, 0.4, 0.89);
//drawing the set of Legendre functions
TF1* L[5];
for(int nu = 0; nu <= 4; nu++)
{
L[nu]= new TF1("L_0", "ROOT::Math::legendre([0],x)", -1, 1);
L[nu]->SetParameters(nu, 0.0);
L[nu]->SetLineStyle(kSolid);
L[nu]->SetLineWidth(2);
L[nu]->SetLineColor(nu+1);
}
L[0]->SetMaximum(1);
L[0]->SetMinimum(-1);
L[0]->SetTitle("Legendre polynomials");
leg->AddEntry(L[0]->DrawCopy(), " L_{0}(x)", "l");
leg->AddEntry(L[1]->DrawCopy("same"), " L_{1}(x)", "l");
leg->AddEntry(L[2]->DrawCopy("same"), " L_{2}(x)", "l");
leg->AddEntry(L[3]->DrawCopy("same"), " L_{3}(x)", "l");
leg->AddEntry(L[4]->DrawCopy("same"), " L_{4}(x)", "l");
leg->Draw();
Canvas->cd();
}