Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- double f1(double x) { return -1.0*pow(x,2)/*Math::Pow(2, Math::Pow(x, 2))*/; }
- double f2(double x) { return x-1/*Math::Cos(Math::Pow(x, 2)) + 1*/; }
- void smps(double a, double b, double eps, bool f, double &S)
- {
- int n = 0;
- double h = 0;
- double I = eps + 1, I1 = 0;
- if (f)
- for (int N = 2; (N <= 4) || (Math::Abs(I1 - I) > eps); N *= 2)
- {
- double sum2 = 0, sum4 = 0, sum = 0;
- h = (b - a) / (2 * N);
- for (int i = 1; i <= 2 * N - 1; i += 2)
- {
- sum4 += f1(a + h * i);
- sum2 += f1(a + h * (i + 1));
- }
- sum = f1(a) + 4 * sum4 + 2 * sum2 - f1(b);
- I = I1;
- I1 = (h / 3) * sum;
- n++;
- richTextBox2->Text += Convert::ToString(n + "\t" + h + "\t\t" + I1.ToString(".000") + "\n");
- }
- else
- for (int N = 2; (N <= 4) || (Math::Abs(I1 - I) > eps); N *= 2)
- {
- double sum2 = 0, sum4 = 0, sum = 0;
- h = (b - a) / (2 * N);
- for (int i = 1; i <= 2 * N - 1; i += 2)
- {
- sum4 += f2(a + h * i);
- sum2 += f2(a + h * (i + 1));
- }
- sum = f2(a) + 4 * sum4 + 2 * sum2 - f2(b);
- I = I1;
- I1 = (h / 3) * sum;
- n++;
- richTextBox2->Text += Convert::ToString(n + "\t" + h + "\t\t" + I1.ToString(".000") + "\n");
- }
- S = I1;
- }
- private: System::Void button2_Click(System::Object^ sender, System::EventArgs^ e) {
- double a = Convert::ToDouble(textBox7->Text);
- double b = Convert::ToDouble(textBox8->Text);
- double eps = Convert::ToDouble(textBox9->Text);
- richTextBox2->Text = Convert::ToString("\ty1(x)=2^x^2\n");
- richTextBox2->Text += Convert::ToString("n\th\t\tI\n");
- double S1 = 0, S2 = 0;
- smps(a, b, eps, true, S1);
- richTextBox2->Text += Convert::ToString("\n\ty2(x)=cos(x^2)+1\n");
- richTextBox2->Text += Convert::ToString("n\th\t\tI\n");
- smps(a, b, eps, false, S2);
- label2->Text = Convert::ToString("Площадь между функциями:\n" + S2.ToString(".000") + "-" + S1.ToString(".000") + " = " + (S2 - S1).ToString(".000") + "(м^2)");
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement