Нахождение значений функции в промежуточных точках

Java   7 Январь 2012  Автор статьи:  

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

Входные данные:
3

Vvesti x

1 2 3

Vvesti f(x)

1 2 4

Выходные данные:
1.0 1.0

1.5 1.5

2.0 2.0

2.5 3.0

3.0 4.0

Реализация решения

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
import java.util.*;

public class Solution {

    public static void main(String[] args) {
        System.out.println("Vvesti kol-vo chisel");
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        System.out.println("Vvesti x");
        double x[] = new double[n];
        double fx[] = new double[n];
        for (int i = 0; i < n; i++) {
            x[i] = in.nextDouble();
        }
        System.out.println("Vvesti f(x)");
        for (int i = 0; i < n; i++) {
            fx[i] = in.nextDouble();
        }

        int d = 2;//koeficent delenie
        Splayn splayn=new Splayn();
        splayn.BuildSpline(x,fx,n);
        for (int i = 0; i < n - 1; i++) {
            double x1 = x[i];
            double x2 = x[i + 1];
            double y1 = fx[i];
            double y2 = fx[i + 1];
            double tempx = (x1 + x2) / d;

            double tempy = (y1 + y2) / d;

            System.out.println(x1 + " " + y1);
            System.out.println(tempx + " " + tempy);
            if (i == n - 2) System.out.println(x2 + " " + y2);
        }

    }

}

Научиться программировать

  • на Delphi

  • на Java

  • на C++