Método de interpolación de Lagrange para resolver el valor de la función

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquíInserte la descripción de la imagen aquí

import java.util.Scanner;

public class Lagrange_polynomial {
    static int num;//记录y&x的对数
    final static int MAXN=10;
    static double a[][]=new double[MAXN][2];//记录x和y
    static  double x;//记录要求近似值的x
    static double y=0;//用于保存近似值
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        System.out.println("共有几对x和f(x):");
        num=sc.nextInt();
        System.out.println("依次输入x&f(x):");
        for(int i=0;i<num;i++){

            a[i][0]=sc.nextDouble();
            a[i][1]=sc.nextDouble();
        }
        System.out.println("所求值的x:");
        x=sc.nextDouble();
        System.out.print("L(x)=");
        for(int i=0;i<num;i++){//用于输出L(x)
            print(i);
            if(i!=(num-1)){
                System.out.print("+");
            }
        }
        for(int i=0;i<num;i++){
            deal(i);
        }

        System.out.println("f("+x+")的近似值是:"+y);
    }
      static  void print(int ii){//用于输出L(x)
        System.out.print(a[ii][1]+"*");
        System.out.print("(");
        for(int i=0;i<num;i++){
            if(i!=ii){
                if(i!=0&&ii!=0){
                    System.out.print("*");
                }
                System.out.print("(");
                System.out.print("x-"+a[i][0]);
                System.out.print(")");
                if(i!=0){
                    System.out.print("/");
                }
                System.out.print("(");
                System.out.print(a[ii][0]+"-"+a[i][0]);
                System.out.print(")");
            }
        }
        System.out.println(")");
    }
     static void deal(int ii){//用于计算近似值
        double temp=1;
        for(int i=0;i<num;i++){
            if(i!=ii){
                temp*=(x-a[i][0]);
                temp/=(a[ii][0]-a[i][0]);
            }
        }
        y+=a[ii][1]*temp;
    }
}
//2 0.5
//        2.5 0.4
//        4 0.25

Inserte la descripción de la imagen aquí

30 artículos originales publicados · ganó 9 · visitó 1319

Supongo que te gusta

Origin blog.csdn.net/weixin_43625164/article/details/105290041
Recomendado
Clasificación