Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #pragma endregion
- double x1, x11, x2, x12, x3, x13, fxmin, E, Ea, h1, h2, h3, a0, a1, a2, a3, a, fa1, fa2, fa3, fa, a11, a21, a31;
- int k, u;
- private: System::Void MyForm_Load(System::Object^ sender, System::EventArgs^ e) {
- }
- private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
- x11 = System::Convert::ToDouble(textBox1->Text);
- x12 = System::Convert::ToDouble(textBox2->Text);
- x13 = System::Convert::ToDouble(textBox3->Text);
- E = System::Convert::ToDouble(textBox4->Text);
- k = 1;
- Ea = 0.0000001;
- do {
- x1 = x11;
- x2 = x12;
- x3 = x13;
- h1 = -(24*x1-2*x2+12*sqrt(5));
- h2 = -(-2*x1+12*x2);
- h3 = -(4*sqrt(5));
- // Метод квадратичной аппроксимации для поиска a
- a11 = 0;
- a21 = 0.5;
- a31 = 1;
- a0 = 0;
- a = 0;
- u = 1;
- do {
- a0 = a;
- a1 = a11;
- a2 = a21;
- a3 = a31;
- fa1 = 12 * (x1 + a1 * h1)*(x1 + a1 * h1) - 2 * (x1 + a1 * h1)*(x2 + a1 * h2) + 6 * (x2 + a1 * h2)*(x2 + a1 * h2) - 12 * sqrt(5)*(x1 + a1 * h1) + 4 * sqrt(5)*(x3 + a1 * h3) - 10;
- fa2 = 12 * (x1 + a2 * h1)*(x1 + a2 * h1) - 2 * (x1 + a2 * h1)*(x2 + a2 * h2) + 6 * (x2 + a2 * h2)*(x2 + a2 * h2) - 12 * sqrt(5)*(x1 + a2 * h1) + 4 * sqrt(5)*(x3 + a2 * h3) - 10;
- fa3 = 12 * (x1 + a3 * h1)*(x1 + a3 * h1) - 2 * (x1 + a3 * h1)*(x2 + a3 * h2) + 6 * (x2 + a3 * h2)*(x2 + a3 * h2) - 12 * sqrt(5)*(x1 + a3 * h1) + 4 * sqrt(5)*(x3 + a3 * h3) - 10;
- a = 0.5*((fa1*(a2 * a2 - a3 * a3) + fa2 * (a3 * a3 - a1 * a1) + fa3 * (a1 * a1 - a2 * a2)) / ((fa1*(a2 - a3) + fa2 * (a3 - a1) + fa3 * (a1 - a2))));
- fa = 12 * (x1 + a * h1)*(x1 + a * h1) - 2 * (x1 + a * h1)*(x2 + a * h2) + 6 * (x2 + a * h2)*(x2 + a * h2) - 12 * sqrt(5)*(x1 + a * h1) + 4 * sqrt(5)*(x3 + a * h3) - 10;
- if ((a > a1) && (a < a3)) {
- if ((a > a1) && (a < a2)) {
- if (fa <= fa2) {
- a11 = a1;
- a21 = a;
- a31 = a2;
- }
- else {
- a11 = a;
- a21 = a2;
- a31 = a3;
- }
- }
- if ((a > a2) && (a < a3)) {
- if (fa <= fa2) {
- a11 = a2;
- a21 = a;
- a31 = a3;
- }
- else {
- a11 = a1;
- a21 = a2;
- a31 = a;
- }
- }
- }
- else {
- textBox9->Text = Convert::ToString(404);
- }
- u = u + 1;
- } while (fabs(a - a0) > Ea);
- x11 = x1 + a * h1;
- x12 = x2 + a * h2;
- x13 = x3 + a * h3;
- k = k + 1;
- } while (sqrt((x11-x1)*(x11-x1)+(x12-x2)*(x12-x2)+(x13-x3)*(x13-x3))>E);
- textBox5->Text = Convert::ToString(x11);
- textBox7->Text = Convert::ToString(x12);
- textBox8->Text = Convert::ToString(x13);
- fxmin= 12 * (x11)*(x11) - 2 * (x11)*(x12) + 6 * (x12)*(x12) - 12 * sqrt(5)*(x11) + 4 * sqrt(5)*(x13) - 10;
- textBox6->Text = Convert::ToString(fxmin);
- textBox9->Text = Convert::ToString(k);
- }
- };
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement