Overview
Comment: | Now ceases if |error|<criterion |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | origin/master | trunk |
Files: | files | file ages | folders |
SHA3-256: |
3300f687234780f3c60f44e4093e6e23 |
User & Date: | gawthrop@users.sourceforge.net on 1999-12-08 06:42:31 |
Other Links: | branch diff | manifest | tags |
Context
1999-12-13
| ||
22:26:03 | *** empty log message *** check-in: d380c79cb3 user: gawthrop@users.sourceforge.net tags: origin/master, trunk | |
1999-12-08
| ||
06:42:31 | Now ceases if |error|<criterion check-in: 3300f68723 user: gawthrop@users.sourceforge.net tags: origin/master, trunk | |
06:32:40 | Iterations now counts function evaluations - so minimum is 2. check-in: e506e8acbd user: gawthrop@users.sourceforge.net tags: origin/master, trunk | |
Changes
Modified mttroot/mtt/bin/trans/m/mtt_optimise.m from [a05c50834e] to [261e38eb89].
︙ | ︙ | |||
51 52 53 54 55 56 57 | error_old = inf; error=1e50; theta = theta_0; Theta = []; Error = []; Y = []; iterations = 0; | | | 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 | error_old = inf; error=1e50; theta = theta_0; Theta = []; Error = []; Y = []; iterations = 0; while (abs(error_old-error)>criterion)&&(abs(error)>criterion)&&(iterations<max_iterations) iterations = iterations + 1; error_old_old = error_old; error_old = error; eval(sprintf("[t,y,y_theta] = \ mtt_s%s(system_name,theta,free);",method)); # Simulate system if View |
︙ | ︙ | |||
86 87 88 89 90 91 92 | if error<(error_old+criterion) # Save some diagnostics Error = [Error error]; # Save error Theta = [Theta theta]; # Save parameters Y = [Y y]; # Save output endif ## Update the estimate if we are not done yet. | | | 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 | if error<(error_old+criterion) # Save some diagnostics Error = [Error error]; # Save error Theta = [Theta theta]; # Save parameters Y = [Y y]; # Save output endif ## Update the estimate if we are not done yet. if (abs(error_old-error)>criterion)&&(abs(error)>criterion)&&(iterations<max_iterations) if error>(error_old+criterion) # Reduce step size and try again factor = 10; disp(sprintf("%2.2f*step",alpha)); error = error_old; # Go back to previous error value error_old = inf; # Don't let it think its converged theta(free) = theta(free) + step; # Reverse step step = alpha*step; # new stepsize |
︙ | ︙ |