1 семестр / лр 9
.docxУчреждение образования
«БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙТЕХНОЛОГИЧЕСКИЙ УНИВЕРСИТЕТ»
Кафедра информационных систем и технологий
ОТЧЕТ
по лабораторной работе №9
Решение инженерных задач на основе циклических программ
Выполнила: студентка ФИТ группы № 9 Каленик Алина
Проверила: Пустовалова Наталья Николаевна
Минск 2020
Задание №1 (метод трапеций)
3 |
1 +x3 |
a = 1, b = 6 |
#include<iostream>
using namespace std;
int main()
{
double a = 1, b = 6, n = 200, h, s = 0, x;
h = (b - a) / n;
x = a;
for (x; x < (b - h); x += h)
{
s += h * (1 + pow(x, 3) + 1 + pow((x + h), 3)) / 2;
}
cout << "s = " << s << endl;
}
Задание №2 (метод парабол)
3 |
1 +x3 |
a = 1, b = 6 |
#include<iostream>
using namespace std;
int main()
{
double a = 1, b = 6, n = 200, h, s1 = 0, s2 = 0, x, z;
h = (b - a) / (2*n);
x = a + 2 * h;
for (int i = 1; i < n; i++)
{
s2 += 1 + pow(x, 3);
x += h;
s1+= 1 + pow(x, 3);
x += h;
}
z = (h / 3) * (4 * s1 + 2 * s2 + 1 + pow(a, 3) + 4 * (1 + pow((a + h), 3)) + 1 + pow(b, 3));
cout << "z = " << z << endl;
}
Задание №3 (графический метод отделения корней)
3 |
x3 + 2x – 1 |
x³ + 2x – 1 = 0
x³ = 1 – 2x
y = x³
y = 1 – 2x
Из чертежа видно, что графики пересекаются в единственной точке, абсцисса которой находится внутри отрезка [0; 0,5].
Знаки функции на концах этого отрезка разные:
f(0,5) = (0,5)³ + 2 * 0,5 – 1 > 0,
f(0) = 0³ + 2 * 0 – 1 < 0
Значит, данное уравнение имеет один действительный корень, лежащий внутри отрезка [0; 0,5], т. е. a = 0, b = 0,5.
Задание №4 (вычисление корней методом касательных)
3 |
x3 + 2x – 1 |
#include <iostream>
using namespace std;
int main()
{
double a = 0, b = 0.5, e = 0.0001, x1, x = 0;
if (((pow(a, 3) + 2 * a - 1) / (3 * pow(a, 2) + 2)) > 0)
x1 = a;
else
x1 = b;
while (abs(x1 - x) > e)
{
x = x1;
x1 = x - (pow(x, 3) + 2 * x - 1) / (3 * pow(x, 2) + 2);
}
cout << x1 << endl;
}
Задание №5 (вычисление корней методом дихотомии)
3 |
x3 + 2x – 1 |
#include <iostream>
using namespace std;
int main()
{
double a = 0, b = 0.5, e = 0.0001, x;
while (abs(a - b) > (2 * e))
{
x = (a + b) / 2;
if ((pow(a, 3) + 2 * a - 1) * (pow(x, 3) + 2 * x - 1) <= 0)
b = x;
else
a = x;
}
cout << x << endl;
}
Задание №6 (вычисление корней с помощью приложения Excel)