#include "MpUtil.h" #include "SolveFixed.cpp" int n = 101; // Number of Grid Points Vector Grid1; // Grid const double cBar = 0.2; const double Beta = 1.0; const double p = 0.75; // Probability that Country 1 Wins const double Alpha = 0.5; // Probability that Country 2 Wins int Func1(const Vector &x, Vector &xNew) { Vector x1(n); Vector x2(n); for(int i=0; i x1New(n); Vector x2New(n); /* Apply T1 */ for(int i=0; i= x2(k)) CurrUtil += (Alpha * Grid1(j) + (One - Alpha) * x2(k)) * FDiff; else CurrUtil += (Beta * p - Grid1(i)) * FDiff; } if(CurrUtil > MaxUtil) { MaxUtil = CurrUtil; MaxIndex = j; } } x1New(i) = Grid1(MaxIndex); } /* Apply T2 */ for(int i=0; i= Grid1(j)) CurrUtil += (One - Alpha * x1(k) - (One - Alpha) * Grid1(j)) * FDiff; else CurrUtil += (Beta * (One - p) - Grid1(i)) * FDiff; } if(CurrUtil > MaxUtil) { MaxUtil = CurrUtil; MaxIndex = j; } } x2New(i) = Grid1(MaxIndex); } for(int i=0; i &x, Vector &xNew) { Vector x1(n); Vector x2(n); for(int i=0; i x1New(n); Vector x2New(n); /* Apply T1 */ for(int i=0; i MaxUtil) { MaxUtil = CurrUtil; MaxIndex = j; } } x1New(i) = Grid1(MaxIndex); } /* Apply T2 */ for(int i=0; i MaxUtil) { MaxUtil = CurrUtil; MaxIndex = j; } } x2New(i) = Grid1(MaxIndex); } for(int i=0; i &x, Vector &f) { Vector x1(n); Vector x2(n); for(int i=0; i x1New(n); Vector x2New(n); /* Apply T1 */ for(int i=0; i MaxUtil) { MaxUtil = CurrUtil; MaxIndex = j; } } x1New(i) = Grid1(MaxIndex); } /* Apply T2 */ for(int i=0; i MaxUtil) { MaxUtil = CurrUtil; MaxIndex = j; } } x2New(i) = Grid1(MaxIndex); } for(int i=0; i > sf(Func3,2*n); //SolveNelderMead sf(Func3,2*n); sf.Solve(); Vector x1(n); x1.Name = "x1"; Vector x2(n); x2.Name = "x2"; for(int i=0; i