Sprawko Lagrange Szczegi.docx

(113 KB) Pobierz

Interpolacja Lagrange

 

 

Technika obliczeniowa i symulacyjna laboratorium

 

Wydział : Telekomunikacja i Elektotechnika

 

Imie i Nazwisko:

·         Kamil Biedroń

Kierunek : Telekomunikacja i Elektronika

 

grupa : 3

 

Data:  2010-11-30

Ocena:

 

 

1 Cel ćwiczenia:

Sporządzenie algorytmu opartego na interpolacji lagrange wyliczającego interpolacje i wyrysowującego funkcję interpolującą dla zadanych danych.

 

2 Interpolacja dla danych węzłów:

 

0,000

1,000

1,000

2,000

2,000

3,000

3,000

4,000

4,000

5,000

5,000

5,000

6,000

4,000

7,000

3,000

8,000

4,000

9,000

5,000

 

3 Implementacja:

·         Clasa Interpolacja:

 

public class Interpolacja {

             

 

 

                            public static double getlagrange(double x, double [] xPoints, double[] yPoints){

                                          double y=0;

                                          int n=xPoints.length;

                                         

                                          for(int i=0;i<n;i++){

                                          double wyniki=1;

                                                        for(int j=0;j<n;j++){

                                                                      if(j!=i){

                                                                                    wyniki=wyniki*(x-xPoints[j])/(xPoints[i]-xPoints[j]);

                                                                      }

                                                        }

                                                        y=y+yPoints[i]*wyniki;

                                          }

                                         

                                         

                                          return y;

}

}

 

·         Clasa publiczna Lagrange:

public class Lagrange {

 

              /**

              * @param args

              */

              public static void main(String[] args) {

                           

 

                            // define your data

                            double[] xPoints = { 0,1,2,3,4,5,6,7,8,9};

                            double[] yPoints = { 1,2,3,4,5,5,4,3,4,5 };

                            Interpolacja.getlagrange(0.5, xPoints, yPoints);

                  int MAX=9;

                  int MIN=0;

                            double dy=0.1;

                  int n=(int)((MAX-MIN)/dy);

                  double[] x=new double [n];

                            double[] y=new double [n];

                            for(int i=0;i<n;i++){

                                          x[i]=i*dy;

                                          y[i]=Interpolacja.getlagrange(x[i], xPoints, yPoints);

                            }

                           

                            // Tworzenie j panelu do wykresu

                            Plot2DPanel plot = new Plot2DPanel();

 

                            // zdefiniowanie pozycji legendy

                            plot.addLegend("SOUTH");

                            // tworzenie legendy

                            plot.addScatterPlot("Punkty funkcji interpolującej", x, y);

                            plot.addScatterPlot("Węzły", xPoints, yPoints);

 

                            // zintegrowanie wykresu z programem

                            JFrame frame = new JFrame("a plot panel");

                            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

                            frame.setContentPane(plot);

                            frame.setSize(600, 500);

                            frame.setVisible(true);

              }

 

              }

...

Zgłoś jeśli naruszono regulamin