Professional Documents
Culture Documents
звіт лр5
звіт лр5
Лабораторна робота №5
Обчислення власних значень та власних векторів матриць
Варіант № 16
Виконав:
студент 2-го курсу
ТЕФ групи ТМ-81
Онищенко Н.Р.
Перевірила:
Залевська О.В.
Київ – 2020
Завдання
1.Допрограмовий етап: визначити кількість дійсних коренів рівняння,
відокремити корені рівняння (письмово) (див. теореми про верхню та нижню
границі, Гюа, метод поліномів Штурма). Результатом є висновок: перший
корінь належить проміжку […], другий корінь належить проміжку […] і т.д.
2.Програмний етап: уточнити корені рівняння:
2.1.Методом бісекції. 2.2.Методом хорд.
2.3.Методом Ньютона (дотичних).
Вихідне рівняння:
f(x) = 2𝑥 3 − 4𝑥 2 − 𝑥 + 1 = 0
Виконання допрограмового етапу:
Розв'язок методом бісекції:
\
void filling(int*& a, int A, int K, int &n, double* start, double* end, int &amount) {
fstream file("coef.txt");
for (int i = 0; i < n; i++) {
file >> a[i];
}
file.close();
a[0] *= 1 + A;
a[n - 1] *= K;
file.open("intrval.txt");
file >> amount;
for (int i = 0; i < amount; i++) {
file >> start[i];
file >> end[i];
}
file.close();
class Method {
public:
double c; // c = (s + e) / 2;
int k = 0;
if (fabs(s) < fabs(e)) {
double temp = s;
s = e;
e = temp;
}
do {
//iter(k, s, e);
c = (s + e) / 2.;
double f = func(a, n, s);
double fc = func(a, n, c + eps);
if (f * fc < 0) {
e = c;
}
else {
s = c;
}
k++;
int main() {
int k = 81 - 81 / 10 * 10;
long int a = 81264 / 10000;
task(a, k);
cout << endl;
return EXIT_SUCCESS;
}
Діапазони координат точок:
Заданий поліном:
Результат програми: