2019年4月4日 星期四

[JAVA程式語言]例題1-6 牛頓的多項式內插法 已知2點座標 求 x=0.5 f(x)= ??

[JAVA程式語言]例題1-6 牛頓的多項式內插法 已知2點座標 求 x=0.5 f(x)= ??
/* ex1-9.java is for developing the divided-defference
 * table for Newton Interpolation polynomial.

例題1-6 牛頓的多項式內插法 已知2點座標 求 x=0.5 f(x)= ??

已知3點座標
  x                 f(x)
================
 0                  0
 1                  -3
求 x=0.5   f(x)= ??

 */


import java.util.Scanner;

public class Main {
    public static void main(String []args) {
        Scanner scanner = new Scanner(System.in);
        float[]   x ;
        float[][] f ;
        float  l ,ff;
        int i, j , n  ;
        x = new float[10]; // 利用new指令產生物件
        f = new float[10][10]; // 利用new指令產生物件
       
        n=scanner.nextInt();

        for(i=0;i<=n;i++)  {
            x[i]=scanner.nextFloat();
            f[i][0]=scanner.nextFloat();
        }   
           
        System.out.printf("\n Divided Difference Table:\n");
        System.out.printf(" =========================\n");
        for(j=1;j<=n;j++) {
            for(i=0;i<=n-j;i++) {
            f[i][j]=(f[i+1][j-1]-f[i][j-1])/(x[i+j]-x[i]);
            }
        }
       
        System.out.printf("i   x(i)     f(i)    f(i,i+1) f(i,i+1.i+2),......\n");
       
        for(i=0;i<=n;i++) {
            System.out.printf("%d  %8.5f ",i,x[i]);
            for(j=0;j<=n-i;j++) {
            System.out.printf("%8.5f ",f[i][j]);
            }
            System.out.println();
        }
    }
}

 輸出畫面
$javac Main.java
$java -Xmx128M -Xms16M Main

 Divided Difference Table:
 =========================
i   x(i)     f(i)    f(i,i+1) f(i,i+1.i+2),......
0   0.00000  0.00000 -3.00000 
1   1.00000 -3.00000 

沒有留言:

張貼留言

Messaging API作為替代方案

  LINE超好用功能要沒了!LINE Notify明年3月底終止服務,有什麼替代方案? LINE Notify將於2025年3月31日結束服務,官方建議改用Messaging API作為替代方案。 //CHANNEL_ACCESS_TOKEN = 'Messaging ...