Я где то напутал теперь запутался подскажите в чем ошибка очень надо.
Функция интеграла xcosx. Пределы интегрирования от 0 до ПИ
Код:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
float a,b,z,dx,x,f,n;
a = StrToFloat(LabeledEdit1->Text);
b = StrToFloat(LabeledEdit2->Text);
n = StrToFloat(LabeledEdit3->Text);
dx = (b -a) /n; // Рахуємо диференціал
z = 0;
for (int j = 0; j < n; j++)
{
x = a + dx / 2 + j * dx;
f = x * cos(x) + M_PI;
z += f * dx;
}
Memo1->Lines->Add("Метод лівих прямокутників " + FloatToStr(z));
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
float a,b,z,dx,x,f,n;
a = StrToFloat(LabeledEdit1->Text);
b = StrToFloat(LabeledEdit2->Text);
n = StrToFloat(LabeledEdit3->Text);
dx = (b -a) /n; // Рахуємо диференціал
z = 0;
for (int j = 0; j < n; j++)
{
x = a + j * dx;
f = x * cos(x) + M_PI;
z += f * dx;
}
Memo1->Lines->Add("Метод середніх прямокутників " + FloatToStr(z));
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
float a,b,z,dx,x,f,n;
a = StrToFloat(LabeledEdit1->Text);
b = StrToFloat(LabeledEdit2->Text);
n = StrToFloat(LabeledEdit3->Text);
dx = (b -a) /n; // Рахуємо диференціал
z = 0;
for (int j = 1; j < n; j++)
{
x = a + j * dx;
f = x * cos(x) + M_PI;
z += f * dx;
}
Memo1->Lines->Add("Метод правих прямокутників " + FloatToStr(z));
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button4Click(TObject *Sender)
{
float a,b,z,dx,x1,x2,f1,f2,n;
a = StrToFloat(LabeledEdit1->Text);
b = StrToFloat(LabeledEdit2->Text);
n = StrToFloat(LabeledEdit3->Text);
dx = (b -a) /n; // Рахуємо диференціал
z = 0;
for (int j = 0; j < n; j++)
{
x1 = a + j * dx;
x2 = x1 + dx;
f1 = x1 * cos(x1) + M_PI;
f2 = x2 * cos(x2) + M_PI;
z += (f1 + f2 / 2) * dx;
}
Memo1->Lines->Add("Методом трапецій " +
FloatToStr(z));
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button5Click(TObject *Sender)
{
float z,f,x,h,fa,fb,s4,s2,a,b;
int k,n,j;
a = StrToFloat(LabeledEdit1->Text);
b = StrToFloat(LabeledEdit2->Text);
n = StrToFloat(LabeledEdit3->Text);
h = (b - a) / n;
fa = a * cos(a);
fb = b * cos(b);
s4 = 0;
s2 = 0;
for (x = a + h; x < b; x += 2*h)
{
s4 += x;
}
s4 *= 4;
for (x = a + 2 * h; x < b; x += 2*h)
{
s2 += x;
}
z = h * (fa + fb + s4 + s2 * 2) / 3;
Memo1->Lines->Add("Метод Сімпсона " + FloatToStr(z));
}
Буду очень благодарен за помощь