matlab怎么得到hilbert矩阵

要用matlab绘制ln(cond(Hn))~n曲线,其中Hn为hiltbert矩阵。本人matlab一点不会,求助。我连怎么得到hilbert矩阵都不知道... 要用matlab绘制ln(cond(Hn))~n曲线,其中Hn为hiltbert矩阵。本人matlab一点不会,求助。我连怎么得到hilbert矩阵都不知道 展开
 我来答
shadehi163
推荐于2017-09-22
知道答主
回答量:8
采纳率:0%
帮助的人:18.1万
展开全部

clear;

n=20;  %  n可取不同的值

for k=1:n

 H=hilb(k);

 lch(k)=log(cond(H));

end

plot(1:n,lch)

title('ln(cond(H))与n之间的关系')

xlabel('n')

ylabel('ln(cond(H))')

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
东莞大凡
2024-08-07 广告
OpenCV标定板是东莞市大凡光学科技有限公司在相机标定中常用的工具。它通常由黑白格点按一定规则排列在平面上组成,如棋盘格或圆形格等。在相机标定时,将标定板置于不同位置和姿态下拍摄图像,利用OpenCV库中的函数检测标定板上的角点或圆心,进... 点击进入详情页
本回答由东莞大凡提供
LEEKYUN
2011-10-16 · TA获得超过2424个赞
知道小有建树答主
回答量:1171
采纳率:100%
帮助的人:377万
展开全部
Hiltbert矩阵是著名的病态矩阵。Matlab中有专门的Hiltbert矩阵极其准确逆矩阵的生成函数:
H=hilb(n),返回n阶Hiltbert矩阵,其元素为H(i,j)=1/(i+j+1)。例:
>>H=hilb(6)
H =
1.0000 0.5000 0.3333 0.2500 0.2000 0.1667
0.5000 0.3333 0.2500 0.2000 0.1667 0.1429
0.3333 0.2500 0.2000 0.1667 0.1429 0.1250
0.2500 0.2000 0.1667 0.1429 0.1250 0.1111
0.2000 0.1667 0.1429 0.1250 0.1111 0.1000
0.1667 0.1429 0.1250 0.1111 0.1000 0.0909
用Matlab绘制ln(cond(Hn))~n曲线,其中Hn为hiltbert矩阵时,可以用如下程序,其中k和n可以设成任意值,例如k=n=20:
>> C=[];
for k=2:20
H=hilb(k);
C=[C,cond(H)];
end
LC=log(C);n=2:20;
P=polyfit(n,LC,1)
plot(n,LC,'o',n,polyval(P,n))
residure=C-exp(polyval(P,n))

P =

2.3305 3.3378

residure =

1.0e+021 *

Columns 1 through 10

-0.0000 -0.0000 -0.0000 -0.0000 -0.0000 0.0000 0.0000 0.0000 0.0000 0.0000

Columns 11 through 19

0.0000 0.0003 0.0005 0.0002 -0.0000 -0.0041 -0.0442 -0.4723 -4.9207
(图略)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
周永红_ZYH
2011-10-16 · TA获得超过2912个赞
知道大有可为答主
回答量:1455
采纳率:90%
帮助的人:690万
展开全部
clear;clf;
n=100; % n可取不同的正整数值
for k=1:n
H=hilb(k);
LCH(k)=log(cond(H));
end
plot(1:n,LCH)
title('ln(cond(Hn))与n之间的关系');
xlabel('n');
ylabel('ln(cond(H))');
追问
能每句都 解释一下吗,还有matlab里是怎么循环的,C 语言里有for,i++.但是matlab里没有 呀。另外我的Qq是153685096能加我吗,刚才这个只是题目的第一小问。谢谢了
追答
clear;clf;
n=100; % n可取不同的正整数值
for k=1:n % 循环语句
H=hilb(k); % 生成k阶Hilbert矩阵
LCH(k)=log(cond(H)); % 计算Hilbert矩阵的条件数cond(H)及其ln值
end % 循环语句结束
plot(1:n,LCH) % 画图
title('ln(cond(Hn))与n之间的关系'); % 图标题
xlabel('n'); % x轴标题
ylabel('ln(cond(H))'); % y轴标题

其它问题,可通过百度消息联系。

参考资料: http://hi.baidu.com/zzz700/blog/item/45091938f66a6adb9f3d62a3.html

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
su512nanjingsh
2011-10-16
知道答主
回答量:7
采纳率:0%
帮助的人:6.2万
展开全部
具体题目提供一下!
追问
问题里已经说了,求是如何求那条曲线,这是研究生数学分析的题
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
泪之梦幻
推荐于2018-05-21 · TA获得超过2211个赞
知道小有建树答主
回答量:304
采纳率:100%
帮助的人:56.9万
展开全部
在Matlab中可以直接使用hilb()函数得到指定的希尔矩阵。即产生每个矩阵元素的值都等于 1/(行索引+列索引-1)的矩阵。
此外,产生特殊矩阵方面,matlab是很强大的工具,还包括一下一些函数能够产生特殊矩阵:
(1) 魔方矩阵魔方矩阵有一个有趣的性质,其每行、每列及两条对角线上的元素和都相等。对于n阶魔方阵,其元素由1,2,3,…,n2共n2个整数组成。MATLAB提供了求魔方矩阵的函数magic(n),其功能是生成一个n阶魔方阵。
(2) 范得蒙矩阵范得蒙(Vandermonde)矩阵最后一列全为1,倒数第二列为一个指定的向量,其他各列是其后列与倒数第二列的点乘积。可以用一个指定向量生成一个范得蒙矩阵。在MATLAB中,函数vander(V)生成以向量V为基础向量的范得蒙矩阵。
(3) 希尔伯特矩阵在MATLAB中,生成希尔伯特矩阵的函数是hilb(n)。使用一般方法求逆会因为原始数据的微小扰动而产生不可靠的计算结果。MATLAB中,有一个专门求希尔伯特矩阵的逆的函数invhilb(n),其功能是求n阶的希尔伯特矩阵的逆矩阵。
(4) 托普利兹矩阵托普利兹(Toeplitz)矩阵除第一行第一列外,其他每个元素都与左上角的元素相同。生成托普利兹矩阵的函数是toeplitz(x,y),它生成一个以x为第一列,y为第一行的托普利兹矩阵。这里x, y均为向量,两者不必等长。toeplitz(x)用向量x生成一个对称的托普利兹矩阵。
(5) 伴随矩阵 MATLAB生成伴随矩阵的函数是compan(p),其中p是一个多项式的系数向量,高次幂系数排在前,低次幂排在后。
(6) 帕斯卡矩阵,二次项(x+y)n展开后的系数随n的增大组成一个三角形表,称为杨辉三角形。由杨辉三角形表组成的矩阵称为帕斯卡(Pascal)矩阵。函数pascal(n)生成一个n阶帕斯卡矩阵。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式