solvetteq.cpp

Go to the documentation of this file.
00001 #include <iostream>
00002 #include <cmath>
00003 using namespace std;
00004 int main()
00005 {
00006 //      const double tps = 4.5;
00007 //      const double tppss = 20.9;
00008 //      const double tppps = 15.8;
00009 //      const double p = 0.064;
00010         const double tps = 4.5;
00011         const double tppss = 19.6;
00012         const double tppps = 15.1;
00013         const double p = 0.07;
00014         const double psq = p * p;
00015         double h,vs,vp;
00016         const double starth = 20;
00017         const double endh = 45;
00018         const double deltah = 0.1;
00019         const double startvs = 3;
00020         const double endvs = 4;
00021         const double deltavs = 0.01;
00022         const double startvp = startvs * sqrt(3);
00023         const double endvp = endvs * sqrt(3);
00024         const double deltavp = 0.01;
00025         const double pickerror = 0.1;
00026         double deltatps, deltatppss, deltatppps;
00027         double besth,bestvp, bestvs;
00028         double bestdelta = 1e16;
00029         double currdelta;
00030         for (double currvs = startvs; currvs < endvs; currvs+=deltavs)
00031         {
00032                 const double vsterm = sqrt(1./(currvs*currvs) - psq);
00033                 //const double currvp = sqrt(3) * currvs;
00034                 for (double currvp = startvp; currvp < endvp; currvp+=deltavp)
00035                 {
00036                         const double vpterm = sqrt(1./(currvp*currvp) -psq);
00037                         for (double currh = starth; currh < endh; currh+=deltah)
00038                         {
00039                                 deltatps = tps - currh *(vsterm - vpterm);
00040                                 deltatppps = tppps - currh *(vsterm + vpterm);
00041                                 deltatppss = tppss - 2*currh * vsterm;
00042                                 currdelta = deltatps * deltatps + deltatppps* deltatppps + deltatppss*deltatppss;
00043                                 if (currdelta < bestdelta)
00044                                 {
00045                                         besth = currh;
00046                                         bestvp = currvp;
00047                                         bestvs = currvs;
00048                                         bestdelta = currdelta;
00049                                 }
00050                         }
00051                 }
00052         }
00053         cout << "H: " << besth << " Vp: " << bestvp << " Vs: " <<  bestvs << " Delta: " << sqrt(bestdelta/3.) << " Vp/Vs: " << bestvp/bestvs << endl; 
00054 }

Generated on Mon Sep 15 12:54:34 2008 for GPLIB++ by  doxygen 1.5.5