希尔伯特Hilbert矩阵是一个n×n矩阵,其对应的第ij个元素的值是1/(i+j-1).令A表示5×5希尔伯特矩阵.它最大的特征值是1.567.使用二分法确定如何改变左上元素A11,使得A的最大特征值等于π.确定A11,精确到小数点后6位.可以使用MATLAB命令hilb、pi、eig和max简化计算任务.
function a11 = Hilbert(n,a,b,tol)
%输入 a,b,为二分法区间上下限;
%输出 a11为希尔伯特矩阵第一行第一列数据。
k=hilb(n);
%生成n阶希尔伯特矩阵。
while(b-a)/2>tol
c=(a+b)/2;
k(1,1)=c;fc=max(eig(k))-pi;
if fc==0
break
end
k(1,1)=a;fa=max(eig(k))-pi;
if fa*fc<0
b=c;
else
a=c;
end
end
a11=(a+b)/2;
end
其中可取n=5,a=0,b=5,tol=0.5*10^-6(准确度控制在6位小数)
结果如下:
a11=Hilbert(5,0,5,0.5*10^-6)
a11 =
2.948010861873627