
Лаба 1-6 ОАИП, 2сем, 1 курс [Вариант 1] / Отчет2_6
.docx/*
Трацевский Никита Андреевич, группа 243302
Лабораторная работа №6
Тема: МЕТОДЫ НАХОЖДЕНИЯ МИНИМУМА ФУНКЦИИ ОДНОЙ ПЕРЕМЕННОЙ
Вариант 1
*/
Консольный режим.
Код программы:
#include <vcl.h>
#include <conio.h>
#include <math.h>
#include <iostream.h>
#pragma hdrstop
double F(double x)
{
return x - 7 * pow (sin(x),2);
}
double MDP ( double alfa, double beta, double e)
{
cout << "Введите начально приближение (alfa, beta):"<<endl;
cout << "Alfa = ";
cin >> alfa;
cout <<"Beta = ";
cin >> beta;
cout << endl;
do
{
double x1 = (alfa + beta - e)/2;
double x2 = (alfa + beta + e)/2;
double y1 = F(x1);
double y2 = F(x2);
if ( y1 > y2)
alfa = x1;
else
beta = x2;
}
while (fabs(beta - alfa) / 2 < 2*e);
return (alfa + beta) / 2;
}
#pragma argsused
int main(int argc, char* argv[])
{
SetConsoleOutputCP(1251);
SetConsoleCP(1251);
double a, b, m, h, x, y;
double alfa, beta, e;
cout << " Начало интервала (а): ";
cin >> a;
cout << " Конец интервала (b): ";
cin >> b;
cout << " Количество выводимых точек (m): ";
cin >> m;
cout << " Погрешность (e): ";
cin >> e;
double ht = (b - a) / m;
x = a;
do
{
y = F(x);
cout <<"При Х ="<< x << " У = " <<y <<endl;
x = x + ht;
}
while (x < b);
cout <<"Координаты локального минимума"<<endl;
for (int i =0; i<3; i++)
{
double z = MDP (alfa, beta, e);
cout << "Координата Х " << z << " Координата У " << F(z)<<endl;
}
getch();
}
Скриншот работоспособности программы: