Mercurial > hg > octave-nkf
diff scripts/linear-algebra/condest.m @ 14237:11949c9795a0
Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Add clf() to all demos using plot features to get reproducibility.
Use 64 as input to all colormaps (jet (64)) to get reproducibility.
* bicubic.m, cell2mat.m, celldisp.m, cplxpair.m, interp1.m, interp2.m,
interpft.m, interpn.m, profile.m, profshow.m, convhull.m, delaunay.m,
griddata.m, inpolygon.m, voronoi.m, autumn.m, bone.m, contrast.m, cool.m,
copper.m, flag.m, gmap40.m, gray.m, hot.m, hsv.m, image.m, imshow.m, jet.m,
ocean.m, pink.m, prism.m, rainbow.m, spring.m, summer.m, white.m, winter.m,
condest.m, onenormest.m, axis.m, clabel.m, colorbar.m, comet.m, comet3.m,
compass.m, contour.m, contour3.m, contourf.m, cylinder.m, daspect.m,
ellipsoid.m, errorbar.m, ezcontour.m, ezcontourf.m, ezmesh.m, ezmeshc.m,
ezplot.m, ezplot3.m, ezpolar.m, ezsurf.m, ezsurfc.m, feather.m, fill.m,
fplot.m, grid.m, hold.m, isosurface.m, legend.m, loglog.m, loglogerr.m,
pareto.m, patch.m, pbaspect.m, pcolor.m, pie.m, pie3.m, plot3.m, plotmatrix.m,
plotyy.m, polar.m, quiver.m, quiver3.m, rectangle.m, refreshdata.m, ribbon.m,
rose.m, scatter.m, scatter3.m, semilogx.m, semilogxerr.m, semilogy.m,
semilogyerr.m, shading.m, slice.m, sombrero.m, stairs.m, stem.m, stem3.m,
subplot.m, surf.m, surfc.m, surfl.m, surfnorm.m, text.m, title.m, trimesh.m,
triplot.m, trisurf.m, uigetdir.m, uigetfile.m, uimenu.m, uiputfile.m,
waitbar.m, xlim.m, ylim.m, zlim.m, mkpp.m, pchip.m, polyaffine.m, spline.m,
bicgstab.m, cgs.m, gplot.m, pcg.m, pcr.m, treeplot.m, strtok.m, demo.m,
example.m, rundemos.m, speed.m, test.m, calendar.m, datestr.m, datetick.m,
weekday.m: Revamp %!demos to use Octave coding conventions on spacing, etc.
author | Rik <octave@nomad.inbox5.com> |
---|---|
date | Fri, 20 Jan 2012 12:59:53 -0800 |
parents | 72c96de7a403 |
children | f3d52523cde1 |
line wrap: on
line diff
--- a/scripts/linear-algebra/condest.m +++ b/scripts/linear-algebra/condest.m @@ -194,45 +194,46 @@ endfunction + %!demo -%! N = 100; -%! A = randn (N) + eye (N); -%! condest (A) -%! [L,U,P] = lu (A); -%! condest (A, @(x) U\ (L\ (P*x)), @(x) P'*(L'\ (U'\x))) -%! condest (@(x) A*x, @(x) A'*x, @(x) U\ (L\ (P*x)), @(x) P'*(L'\ (U'\x)), N) -%! norm (inv (A), 1) * norm (A, 1) +%! N = 100; +%! A = randn (N) + eye (N); +%! condest (A) +%! [L,U,P] = lu (A); +%! condest (A, @(x) U \ (L \ (P*x)), @(x) P'*(L' \ (U'\x))) +%! condest (@(x) A*x, @(x) A'*x, @(x) U \ (L \ (P*x)), @(x) P'*(L' \ (U'\x)), N) +%! norm (inv (A), 1) * norm (A, 1) ## Yes, these test bounds are really loose. There's ## enough randomization to trigger odd cases with hilb(). %!test -%! N = 6; -%! A = hilb (N); -%! cA = condest (A); -%! cA_test = norm (inv (A), 1) * norm (A, 1); -%! assert (cA, cA_test, -2^-8); +%! N = 6; +%! A = hilb (N); +%! cA = condest (A); +%! cA_test = norm (inv (A), 1) * norm (A, 1); +%! assert (cA, cA_test, -2^-8); %!test -%! N = 6; -%! A = hilb (N); -%! solve = @(x) A\x; solve_t = @(x) A'\x; -%! cA = condest (A, solve, solve_t); -%! cA_test = norm (inv (A), 1) * norm (A, 1); -%! assert (cA, cA_test, -2^-8); +%! N = 6; +%! A = hilb (N); +%! solve = @(x) A\x; solve_t = @(x) A'\x; +%! cA = condest (A, solve, solve_t); +%! cA_test = norm (inv (A), 1) * norm (A, 1); +%! assert (cA, cA_test, -2^-8); %!test -%! N = 6; -%! A = hilb (N); -%! apply = @(x) A*x; apply_t = @(x) A'*x; -%! solve = @(x) A\x; solve_t = @(x) A'\x; -%! cA = condest (apply, apply_t, solve, solve_t, N); -%! cA_test = norm (inv (A), 1) * norm (A, 1); -%! assert (cA, cA_test, -2^-6); +%! N = 6; +%! A = hilb (N); +%! apply = @(x) A*x; apply_t = @(x) A'*x; +%! solve = @(x) A\x; solve_t = @(x) A'\x; +%! cA = condest (apply, apply_t, solve, solve_t, N); +%! cA_test = norm (inv (A), 1) * norm (A, 1); +%! assert (cA, cA_test, -2^-6); %!test -%! N = 12; -%! A = hilb (N); -%! [rcondA, v] = condest (A); -%! x = A*v; -%! assert (norm(x, inf), 0, eps); +%! N = 12; +%! A = hilb (N); +%! [rcondA, v] = condest (A); +%! x = A*v; +%! assert (norm(x, inf), 0, eps);