- •Міністерство освіти і науки україни національний технічний університет україни
- •Кафедра: “Динаміки і Міцності машин та опору матеріалів”
- •I. Завдання 1. Розробити алгоритм, що впорядковує елементи
- •2.1.Схема програми в Mathcad……………...……………...…..…….…8
- •2.1.Схема програми в Mathcad……………...……………...…..…….…12
- •3.1. Обчислення визначника в програмі Mathcad...………….............15
- •Іі.2. Розв’язок завдання в програмі Mathcad
Іі.2. Розв’язок завдання в програмі Mathcad
ІІІ.
Обчислити визначник
Обрахунок визначників
Використання методу Гауса для обрахунку визначників
Операції по виконанню повного ходу методу Гауса у відповідності з теоремами лінійної алгебри не змінюють величини визначника. Очевидно, що визначник трикутної матриці рівний добутку її діагональних елементів. Таким чином, для обрахунку визначників квадратної матриці необхідно привести її до трикутного вигляду і знайти добуток її діагональних елементів. При цьому слід врахувати, що вибір головного елемента здійснюється перестановкою рядків матриці, кожна з перестановок змінює знак визначника на протилежний.
При малих діагональних елементах трикутної матриці перемноження їх може привести до зникнення порядку, при великих величинах діагональних елементів - до переповнення. Можливим шляхом подолання подібних ситуацій являється обрахування замість визначника логарифма його величини як суми логарифмів діагональних елементів. За допомогою наведеної програми можна обрахувати визначник квадратних матриць методом Гауса з вибором головного елемента матриць і обрахунок її визначника. Результат виводиться на дисплей.
ІІІ.1. Схема програми в С++
/*програма для обчислення визначник матриці розмірністю n*n*/
# include <stdio.h>
# include <math.h>
float a[50][50]; float d,c,z,f;
int i,j,k,n;
int main()
{
printf("\n Vvedit rosmirnosty matrizu s n= ");
scanf(" %d", &n);
printf("\n n= %d", n);
printf("\n Vvedit marizu A \n");
for (i=0; i<n; i++)
for(j=0; j<n; j++) scanf(" %f",&a[i][j]);
/*перевірка правильного вводу матриц*/
printf("\n matriza A=");
for (i=0; i<n; i++)
{ printf( "\n ");
for(j=0; j<n; j++) printf(" %f",a[i][j]);
}
/*Приведення матриці до трикутного вигляду*/
k=0;
m1: if (a[k][k]==0) for(i=k; i<n; i++) a[i][k]=a[i][k]+a[i][k+1];
for (i=k; i<=n-1; i++)
{
c=-a[i+1][k]/a[k][k];
for(j=k; j<n; j++) a[i+1][j]=a[k][j]*c+a[i+1][j];
}
k++;
if(k<n-1) goto m1;
d=1;
for(i=0; i<n; i++)
{
j=i;
d=d*a[i][j];
}
printf("\n determinant= =%f", d);
for (i=0; i<n; i++)
{ printf( "\n ");
for(j=0;j<n; j++) printf(" %f",a[i][j]);}
getchar();
getchar();
return 0;
printf("\n End task \n");
}
ІІІ.2. Розв’язок завдання в програмі Mathcad
Висновок
Курсова робота виконана. Тепер залишилось підбити підсумки зробленого. Ми мали за мету повторити і використати на практиці деякі методи для обчислення різних математичних задач. Це стосується обчислення інтегралів, матриць, визначників, знаходження коренів рівнянь парної і не парної кратності, та ін. Було заплановано розв’язати всі завдання у програмі MathCad, а потім скласти для відповідних завдань програми на мові С++. Хоч і виникали деякі проблеми при складанні програм, все-ж таки нам вдалось зробити так, щоб всі програми працювали і видавали потрібний результат. Я переконався, що в наш час краще всього використовувати електронні машини для виконання різних задач науки і техніки.
Література
1. Справочник по специальным функциям с формулами графиками и математическими таблицами / Под ред. М.Абрамовица и И.Стеган. – М: Наука. Глав. ред. физ. мат. лит. – 1979. - 830 с.
2. Крылов В.И. Приближенное вычисление интегралов. – М: Наука. Глав. ред. физ. мат. лит. – 1967. - 500 с.
3. М.К.Кучер “Лекції та лабораторні роботи по інформатиці”.
4.Дональд Кнут. The Art of Computer Programming, Volume 3: Sorting and Searching, Third Edition. Addison-Wesley, 1997. ISBN 0-201-89685-0. Pages 106–110 of section 5.2.2: Sorting by Exchanging.
