Changeset 3189


Ignore:
Timestamp:
03/05/10 09:41:24 (15 years ago)
Author:
Mathieu Morlighem
Message:

Added Misfit 4

Location:
issm/trunk/src
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk/src/c/objects/Tria.cpp

    r3188 r3189  
    30193019                }
    30203020        }
     3021        else if(fit==4){
     3022                /*We are using an logarithmic 2 misfit:
     3023                 *
     3024                 *      1            [        |u| + eps     2          |v| + eps     2  ]
     3025                 * J = --- \bar{v}^2 | log ( -----------  )   +  log ( -----------  )   | 
     3026                 *      2            [       |u    |+ eps              |v    |+ eps     ]
     3027                 *                              obs                       obs
     3028                 *        dJ                              1      u                             1
     3029                 * DU = - -- = - \bar{v}^2 log(u...) --------- ----  ~ - \bar{v}^2 log(u...) ------
     3030                 *        du                         |u| + eps  |u|                           u + eps
     3031                 */
     3032                for (i=0;i<numgrids;i++){
     3033                        dux_list[i] = - pow(numpar->meanvel,(double)2)*(
     3034                                                log((fabs(vx_list[i])+numpar->epsvel)/(fabs(obs_vx_list[i])+numpar->epsvel)) * 1/(vx_list[i]+numpar->epsvel));
     3035                        duy_list[i] = - pow(numpar->meanvel,(double)2)*(
     3036                                                log((fabs(vy_list[i])+numpar->epsvel)/(fabs(obs_vy_list[i])+numpar->epsvel)) * 1/(vy_list[i]+numpar->epsvel));
     3037                }
     3038        }
    30213039        else{
    30223040                /*Not supported yet! : */
     
    45894607                }
    45904608        }
     4609        else if(fit==4){
     4610                /*We are using an logarithmic 2 misfit:
     4611                 *
     4612                 *      1            [        |u| + eps     2          |v| + eps     2  ]
     4613                 * J = --- \bar{v}^2 | log ( -----------  )   +  log ( -----------  )   | 
     4614                 *      2            [       |u    |+ eps              |v    |+ eps     ]
     4615                 *                              obs                       obs
     4616                 */
     4617                for (i=0;i<numgrids;i++){
     4618                        misfit_list[i]=0.5*pow(numpar->meanvel,(double)2)*(
     4619                          pow(log((fabs(vx_list[i])+numpar->epsvel)/(fabs(obs_vx_list[i])+numpar->epsvel)),(double)2) +
     4620                          pow(log((fabs(vy_list[i])+numpar->epsvel)/(fabs(obs_vy_list[i])+numpar->epsvel)),(double)2) );
     4621                }
     4622        }
    45914623        else{
    45924624                /*Not supported yet! : */
  • issm/trunk/src/m/classes/public/ismodelselfconsistent.m

    r3181 r3189  
    371371
    372372        %FIT
    373         checkvalues(md,{'fit'},[0 1 2 3]);
     373        checkvalues(md,{'fit'},[0 1 2 3 4]);
    374374
    375375        %OBSERVED VELOCITIES
Note: See TracChangeset for help on using the changeset viewer.