找出不超过n次的多项式f(x)使得上式最小。
设f(x)=sigma(ai*x^i)
将积分式展开有三项,第一项是关于a的二次式,第二项是关于a的一次式,第三项式常数项。
如果想让上式最小,可以对于n+1个系数各求一次偏导,使其偏导为0,则得到n+1个方程,高斯消元即可求解。
关键是这题要用java,但当时还不太会用java,因此解不来。
其实这题是可用希尔波特矩阵直接构造高斯消元,第二天上科学计算课的时候正好就提到了这类题目,推出来和上面求偏导的方法推出来是一样的。
import java.io.*;
import java.util.*;
import java.math.*;
public class Main{
static BigDecimal c[][];
static BigDecimal pro[];
static BigDecimal cal[];
static BigDecimal E;
static int prec=100;
static int r_m;
static int n;
// static BigInteger c[];
private static void swap(int i,int j)
{
BigDecimal tmp;
for (int k=0;k<=n+1;k++) {
tmp=c[i][k];
c[i][k]=c[j