clear; clc;
syms t

% 输入参数：
% f：被逼近的函数（符号表达式）
% w：权函数（符号表达式）
% n：逼近多项式的阶数（单项式基的最高次数）
f = exp(t);    % 示例：被逼近函数
w = 1;          % 示例：权函数
n = 2;          % 示例：逼近多项式阶数


i = 0 : n;
Funx = t .^ i;
d = int(w * f * Funx, 0, 1);

Hibert = hilb(n + 1);

digits(5);
fintP = vpa(d);
axk = Hibert \ fintP';
Snx = Funx * axk;

Sqa_err = abs(vpa(int(f * f, 0, 1)) - vpa(d * axk));

% 输出结果：
% fintP：函数f与各单项式基的带权内积
% axk：最佳平方逼近多项式的系数
% Snx：最佳平方逼近多项式（符号形式）
% Sqa_err：平方逼近误差
fintP, axk, Snx, Sqa_err