Задача на C++ срещу заплащане!

confiscate

Registered
Здравейте,
Искам да Ви помоля за направата на задача на C++ срещу заплащане. Задачата е за симплксен метод за нелинейна оптимизация. Прилагам pdf файл със обяснение на метода. Задачата е за намиране на максимума на различни функции (напр. тази: Qx=x1^2+3x1*x2-x2^2) и трябва да включва в кода всички точки от приложеното ръководство, включително и формиране на начален симплекс и определяне координатите на отразения връх , до метод на Нелдер-Мид. На края трябва като отговор да излиза максимума на функцията. Ще приложа и кода , който имам на java може да Ви е от полза.
Цената е по договаряне , като очаквам Вашите оферти тук във форума. Задачата ми трябва до 10.05.2012 . Предпочитам хората да са от София.
Код на java:
Код:
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
    <title>Симплекс метод</title>
</head>
<script type="text/javascript">
    var n; x; p; u; del; i; j; Nc; Q; Qmax;
    function onSubmit(){
     n = document.getElementById('num').value;
     x10 = document.getElementById('x1').value;
     x20 = document.getElementById('x2').value;
     del = document.getElementById('delta').value;
     Qx = document.getElementById('qx').value;
     p = (1/(n*Math.sqrt(2)))*(Math.sqrt((parseInt(n)+parseInt(1)))-parseInt(1)+parseInt(n));
     u = (1/(n*Math.sqrt(2)))*((Math.sqrt(parseInt(n)+parseInt(1)))-1);
     Nc = parseFloat(1.65*n)+parseFloat(0.05*n*n)+parseFloat(1);
     var Count = 1;
     x = new Array();
     xijArray = new Array();
     xiPlusOneArray = new Array();
     arrayQx = new Array();
     for(i = 1; i < 2; i++){
        iplusone = parseInt(i)+parseInt(1);
        x[i] = new Array();
        x[iplusone] = new Array();
        x[i][0] = document.getElementById('x1').value;
        xijArray.push(x[i][0]);
        x[iplusone][0] = document.getElementById('x2').value;
        xiPlusOneArray.push(x[iplusone][0]);
        Q = Qx.replace(new RegExp("(x|X)1", "g"), x[i][0]);
        Q = Q.replace(new RegExp("(x|X)2", "g"), x[iplusone][0]);
        eval("var Result = " + Q + ";");
        Q = Result;
        Qmax = Q;
        arrayQx.push(Q);
        while(Count < Nc){
            for(j = 1; j <= 2; j++){
                if(j == 1){
                    var temp = del*p;
                    var temp2 = del*u;
                }else{
                    var temp = del*u;
                    var temp2 = del*p;
                }
                x[i][j] = parseFloat(x10)+parseFloat(temp);
                x[iplusone][j] = parseFloat(x20)+parseFloat(temp2);
                xijArray.push(x[i][j]);
                xiPlusOneArray.push(x[iplusone][j]);

                Q = Qx.replace(new RegExp("(x|X)1", "g"), x[i][j]);
                Q = Q.replace(new RegExp("(x|X)2", "g"), x[iplusone][j]);
                eval("var Result = " + Q + ";");
                Q = Result;
                arrayQx.push(Q);
                
                x[i].sort();
                var xw1=x[i][0];

                x[iplusone].sort();
                var xw2=x[iplusone][0];
                
                var sum = 0;
                var sum2 = 0;
                var averageOne = 0;
                var averageTwo = 0;
               
                for(var l = 0; l < xijArray.length; l++){
                    sum = parseFloat(sum) + parseFloat(xijArray[l]);
                    averageOne = sum/xijArray.length;
                }

                for(var m = 0; m < xiPlusOneArray.length; m++){
                    sum2 = parseFloat(sum2) + parseFloat(xiPlusOneArray[m]);
                    averageTwo = sum2/xiPlusOneArray.length;
                }
                 
                var xc1 = parseFloat(xw1) + parseFloat(2*(averageOne - xw1));
                var xc2 = parseFloat(xw2) + parseFloat(2*(averageTwo - xw2));
                Q = Qx.replace(new RegExp("(x|X)1", "g"), xc1);
                Q = Q.replace(new RegExp("(x|X)2", "g"), xc2);
                eval("var Result = " + Q + ";");
                Q = Result;

                xijArray[0] = xc1;
                xiPlusOneArray[0] = xc2;
            }
            if(Qmax < Q){
               Qmax = Q;
               Count = 1;
            }else{
               Count++;
            }
         }
      }
      alert("Qx="+Qmax);
    }
    
</script>
<body>
<table cellpadding="0" cellspacing="0" style="font-family: Tahoma; font-size: 11px;">
    <tr>
        <td>
           X1,0:  <input type="text" id="x1" style="width: 300px; height: 20px;" /><br /><br />
           X2,0:  <input type="text" id="x2" style="width: 300px; height: 20px;" /><br /><br />
           delta:  <input type="text" id="delta" style="width: 300px; height: 20px;" /><br /><br />
           Q(x):  <input type="text" id="qx" style="width: 300px; height: 20px;" /><br /><br />
           n:  <input type="text" id="num" style="width: 300px; height: 20px;" /><br /><br />
           <input type="button" value="submit" name="submit" id="submit" onclick="return onSubmit();" style="font-family: Verdana; font-size: 9px; background-color: #ffffff; border: 1px black solid; margin-left: 255px;"/>
        </td>
    </tr>
</table>
</body>
</html>

Връзка към ръководството: Ръководство

Благодаря предварително !
Поздрави
 

Горе