Mercurial > hg > octave-nkf
changeset 2720:4d964afd8d57
[project @ 1997-02-22 19:40:49 by jwe]
author | jwe |
---|---|
date | Sat, 22 Feb 1997 19:40:49 +0000 |
parents | eaa225e7e721 |
children | 1c256e0e1474 |
files | test/octave.test/nonlin/fsolve-1.m test/octave.test/nonlin/fsolve-2.m test/octave.test/nonlin/nonlin.exp |
diffstat | 3 files changed, 100 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
new file mode 100644 --- /dev/null +++ b/test/octave.test/nonlin/fsolve-1.m @@ -0,0 +1,45 @@ +x_opt = [ 0.599054; + 2.395931; + 2.005014 ]; + +tol = 1.0e-5; + +function retval = f (p) + + x = p(1); + y = p(2); + z = p(3); + + retval = zeros (3, 1); + + retval(1) = sin(x) + y**2 + log(z) - 7; + retval(2) = 3*x + 2**y -z**3 + 1; + retval(3) = x + y + z - 5; + +end + +[x, info] = fsolve ("f", [ 0.5, 2.0, 2.5 ]); + +val = f (x); + +info_bad = (info != 1); +solution_bad = sum (abs (x - x_opt) > tol); +value_bad = sum (abs (val) > tol); + +if (info_bad) + printf ("info bad\n"); +else + printf ("info good\n"); +endif + +if (solution_bad) + printf ("solution bad\n"); +else + printf ("solution good\n"); +endif + +if (value_bad) + printf ("value bad\n"); +else + printf ("value good\n"); +endif
new file mode 100644 --- /dev/null +++ b/test/octave.test/nonlin/fsolve-2.m @@ -0,0 +1,48 @@ +x_opt = [ -0.767297326653401; + 0.590671081117440; + 1.47190018629642; + -1.52719341133957 ]; + +tol = 1.0e-5; + +function retval = f (p) + + x = p(1); + y = p(2); + z = p(3); + w = p(4); + + retval = zeros (4, 1); + + retval(1) = 3*x + 4*y + exp (z + w) - 1.007; + retval(2) = 6*x - 4*y + exp (3*z + w) - 11; + retval(3) = x^4 - 4*y^2 + 6*z - 8*w - 20; + retval(4) = x^2 + 2*y^3 + z - w - 4; + +end + +[x, info] = fsolve ("f", [-1, 1, 2, -1]); + +val = f (x); + +info_bad = (info != 1); +solution_bad = sum (abs (x - x_opt) > tol); +value_bad = sum (abs (val) > tol); + +if (info_bad) + printf ("info bad\n"); +else + printf ("info good\n"); +endif + +if (solution_bad) + printf ("solution bad\n"); +else + printf ("solution good\n"); +endif + +if (value_bad) + printf ("value bad\n"); +else + printf ("value good\n"); +endif