希尔伯特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>tolc=(a+b)/2;k(1,1)=c;fc=max(eig(k))-pi;if fc==0breakendk(1,1)=a;fa=max(eig(k))-pi;if fa*fc<0b=c;elsea=c;endenda11=(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