Складіть програму мовою С++ для знаходження функції y(x), де x Є [a, b] з кроком h. Дані для y(x), a, b, h вказані в таблиці.
y = x + sin(3x);
[a, b], h [-1, 3], h = 0.3
Програма:
С++:
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
float y, a, b, h;
cout << "a = "; cin >> a;
cout << "b = "; cin >> b;
cout << "h = "; cin >> h;
while (a <= b) {
y = a + sin(3 * a);
cout << "y = " << y << " при x = " << a << endl;
a += h;
}
Результат:
a = -1
b = 3
h = 0.3
-1.14112 при x = -1
-1.56321 при x = -0.7
-1.33204 при x = -0.4
-0.39552 при x = -0.1
0.764643 при x = 0.2
1.4975 при x = 0.5
1.47546 при x = 0.8
0.942254 при x = 1.1
0.528424 при x = 1.4
0.774186 при x = 1.7
1.72058 при x = 2
2.87844 при x = 2.3
3.59854 при x = 2.6
3.56297 при x = 2.9
Восстановим порядок выполнения команд:
1 команда (умножь на 2): 18 * 2 = 36
2 команда (прибавь b): 36 + b = ...
3 команда (умножь на 2): ...
4 команда (прибавь b): ... = 99
5 команда (умножь на 2): 99 * 2 = 198
Теперь распишем более подробно, заменив неизвестные буквами x и y:
2 команда (прибавь b): 36 + b = x
3 команда (умножь на 2): x * 2 = y
4 команда (прибавь b): y + b = 99
Теперь выписываем равенства с буквами:
36 + b = x
x * 2 = y
y + b = 99
Из этого мы можем составить уравнение, т.е. делаем методом подстановки:
x * 2 = y (x нам известен из верхнего уравнения x = b + 36, переносим его в следующее)
(36 + b) * 2 = y (жирным выделен наш x)
Идем дальше:
y + b = 99 (y нам известен из верхнего уравнения y = (36 + b) * 2, переносим его в следующее)
(36 + b) * 2 + b = 99 (жирным выделен наш y)
А теперь решаем полученное уравнение:
(36 + b) * 2 + b = 99
2 * 36 + 2 * b + b = 99
72 + 2b + b = 99
72 + 3b = 99
3b = 99 - 72
3b = 27
b = 27 / 3
b = 9
Мы нашли b. Теперь делаем проверку:
2 команда (прибавь b): 36 + 9 = 45
3 команда (умножь на 2): 45 * 2 = 90
4 команда (прибавь b): 90 + 9 = 99
Все верно!
ответ: 9
Складіть програму мовою С++ для знаходження функції y(x), де x Є [a, b] з кроком h. Дані для y(x), a, b, h вказані в таблиці.
y = x + sin(3x);
[a, b], h [-1, 3], h = 0.3
Програма:
С++:
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
float y, a, b, h;
cout << "a = "; cin >> a;
cout << "b = "; cin >> b;
cout << "h = "; cin >> h;
while (a <= b) {
y = a + sin(3 * a);
cout << "y = " << y << " при x = " << a << endl;
a += h;
}
}
Результат:
a = -1
b = 3
h = 0.3
-1.14112 при x = -1
-1.56321 при x = -0.7
-1.33204 при x = -0.4
-0.39552 при x = -0.1
0.764643 при x = 0.2
1.4975 при x = 0.5
1.47546 при x = 0.8
0.942254 при x = 1.1
0.528424 при x = 1.4
0.774186 при x = 1.7
1.72058 при x = 2
2.87844 при x = 2.3
3.59854 при x = 2.6
3.56297 при x = 2.9
Восстановим порядок выполнения команд:
1 команда (умножь на 2): 18 * 2 = 36
2 команда (прибавь b): 36 + b = ...
3 команда (умножь на 2): ...
4 команда (прибавь b): ... = 99
5 команда (умножь на 2): 99 * 2 = 198
Теперь распишем более подробно, заменив неизвестные буквами x и y:
1 команда (умножь на 2): 18 * 2 = 36
2 команда (прибавь b): 36 + b = x
3 команда (умножь на 2): x * 2 = y
4 команда (прибавь b): y + b = 99
5 команда (умножь на 2): 99 * 2 = 198
Теперь выписываем равенства с буквами:
36 + b = x
x * 2 = y
y + b = 99
Из этого мы можем составить уравнение, т.е. делаем методом подстановки:
36 + b = x
x * 2 = y (x нам известен из верхнего уравнения x = b + 36, переносим его в следующее)
(36 + b) * 2 = y (жирным выделен наш x)
Идем дальше:
y + b = 99 (y нам известен из верхнего уравнения y = (36 + b) * 2, переносим его в следующее)
(36 + b) * 2 + b = 99 (жирным выделен наш y)
А теперь решаем полученное уравнение:
(36 + b) * 2 + b = 99
2 * 36 + 2 * b + b = 99
72 + 2b + b = 99
72 + 3b = 99
3b = 99 - 72
3b = 27
b = 27 / 3
b = 9
Мы нашли b. Теперь делаем проверку:
1 команда (умножь на 2): 18 * 2 = 36
2 команда (прибавь b): 36 + 9 = 45
3 команда (умножь на 2): 45 * 2 = 90
4 команда (прибавь b): 90 + 9 = 99
5 команда (умножь на 2): 99 * 2 = 198
Все верно!
ответ: 9