Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.company;
- import java.util.LinkedList;
- import java.util.List;
- public class Main {
- public static void main(String[] args) {
- float[] x = {1, 2, 4};
- float[] y = {2, 3, 4};
- List<Float> wspol = lagrangeInterpolation(x, y, 1);
- String wynik = "";
- for (int i = 0; i < wspol.size(); i++) {
- if (i != 0 && wspol.get(i) > 0) {
- if (i == wspol.size() - 2) {
- wynik = wynik + "+" + wspol.get(i) + "x";
- continue;
- }
- if (i == wspol.size() - 1) {
- wynik = wynik + "+" + wspol.get(i);
- continue;
- }
- wynik = wynik + "+" + wspol.get(i) + "x" + "^" + (wspol.size() - 1 - i);
- }
- if (i == wspol.size() - 2) {
- wynik = wynik + wspol.get(i) + "x";
- continue;
- }
- if (i == wspol.size() - 1) {
- wynik = wynik + wspol.get(i);
- continue;
- }
- wynik = wynik + wspol.get(i) + "x" + "^" + (wspol.size() - 1 - i);
- }
- System.out.println(wynik);
- }
- public static List<Float> lagrangeInterpolation(float[] xs, float[] ys, float x) {
- float t;
- float y = 0;
- float t2;
- List<Float> wspolczynniki = new LinkedList<>();
- for (int k = 0; k < xs.length; k++) {
- t = 1;
- t2 = 1;
- for (int j = 0; j < xs.length; j++) {
- if (j != k) {
- t = (float) (t * ((x - xs[j]) / (xs[k] - xs[j])));
- t2 = (float) (t2 * ((xs[j]) / (xs[k] - xs[j])));
- }
- }
- wspolczynniki.add(t2);
- y += t * ys[k];
- }
- return wspolczynniki;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement