06.08.2013 Views

内容简介作者简介 - 科学与工程计算系

内容简介作者简介 - 科学与工程计算系

内容简介作者简介 - 科学与工程计算系

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

4.2.1 LU 分解、行列式和逆<br />

4.2.2 恰定方程组的解<br />

【例 4.2.2-1】“求逆”法和“左除”法解恰定方程的性能对比<br />

(1)<br />

randn('state',0);<br />

A=gallery('randsvd',100,2e13,2);<br />

x=ones(100,1);<br />

b=A*x;<br />

cond(A)<br />

ans =<br />

1.9990e+013<br />

(2)<br />

tic<br />

xi=inv(A)*b;<br />

ti=toc<br />

eri=norm(x-xi)<br />

rei=norm(A*xi-b)/norm(b)<br />

ti =<br />

0.7700<br />

eri =<br />

0.0469<br />

rei =<br />

0.0047<br />

(3)<br />

tic;xd=A\b;<br />

td=toc,erd=norm(x-xd),red=norm(A*xd-b)/norm(b)<br />

td =<br />

0<br />

erd =<br />

0.0078<br />

red =<br />

2.6829e-015<br />

4.2.3 范数、条件数和方程解的精度<br />

【例 4.2.3-1】Hilbert 矩阵是著名的病态矩阵。MATLAB 中有专门的 Hilbert 矩阵及其准确逆<br />

矩阵的生成函数。本例将对方程 Hx = b 近似解和准确解进行比较。<br />

N=[6 8 10 12 14];<br />

for k=1:length(N)<br />

n=N(k);<br />

H=hilb(n);<br />

Hi=invhilb(n);<br />

b=ones(n,1);<br />

x_approx=H\b;<br />

x_exact=Hi*b;<br />

ndb=norm(H*x_approx-b);nb=norm(b);<br />

ndx=norm(x_approx - x_exact);nx=norm(x_approx);<br />

er_actual(k)=ndx/nx;<br />

K=cond(H);<br />

er_approx(k)=K*eps;<br />

er_max(k)=K*ndb/nb;<br />

end<br />

2

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!