МАРК РЕГНЕРУС ДОСЛІДЖЕННЯ: Наскільки відрізняються діти, які виросли в одностатевих союзах
РЕЗОЛЮЦІЯ: Громадського обговорення навчальної програми статевого виховання ЧОМУ ФОНД ОЛЕНИ ПІНЧУК І МОЗ УКРАЇНИ ПРОПАГУЮТЬ "СЕКСУАЛЬНІ УРОКИ" ЕКЗИСТЕНЦІЙНО-ПСИХОЛОГІЧНІ ОСНОВИ ПОРУШЕННЯ СТАТЕВОЇ ІДЕНТИЧНОСТІ ПІДЛІТКІВ Батьківський, громадянський рух в Україні закликає МОН зупинити тотальну сексуалізацію дітей і підлітків Відкрите звернення Міністру освіти й науки України - Гриневич Лілії Михайлівні Представництво українського жіноцтва в ООН: низький рівень культури спілкування в соціальних мережах Гендерна антидискримінаційна експертиза може зробити нас моральними рабами ЛІВИЙ МАРКСИЗМ У НОВИХ ПІДРУЧНИКАХ ДЛЯ ШКОЛЯРІВ ВІДКРИТА ЗАЯВА на підтримку позиції Ганни Турчинової та права кожної людини на свободу думки, світогляду та вираження поглядів
Контакти
Тлумачний словник Авто Автоматизація Архітектура Астрономія Аудит Біологія Будівництво Бухгалтерія Винахідництво Виробництво Військова справа Генетика Географія Геологія Господарство Держава Дім Екологія Економетрика Економіка Електроніка Журналістика та ЗМІ Зв'язок Іноземні мови Інформатика Історія Комп'ютери Креслення Кулінарія Культура Лексикологія Література Логіка Маркетинг Математика Машинобудування Медицина Менеджмент Метали і Зварювання Механіка Мистецтво Музика Населення Освіта Охорона безпеки життя Охорона Праці Педагогіка Політика Право Програмування Промисловість Психологія Радіо Регилия Соціологія Спорт Стандартизація Технології Торгівля Туризм Фізика Фізіологія Філософія Фінанси Хімія Юриспунденкция |
|
|||||||
Приклади програм//1)Розв’язання системи лінійних рівнянь методом простої ітерації #include <conio.h> #include <iostream> #include <cmath> using namespace std; void main() { float a[4][4]={{0.13, 0.23, -0.44, -0.05}, {0.24, 0,-0.31, 0.15}, {0.06, 0.15, 0, -0.23}, {0.72, -0.08, -0.05, 0}}; float f[4]={2.13, -0.18, 1.44, 2.42}; float n, j, x[4], x0[4]; int i, q, c; cout<<"Rozvjazok SLAR metodom iteraciy"<<endl<<endl; cout<<"Zadana systema:"<<endl<<endl; for (i=0; i<4; i++) { cout<<"x"<<i+1<<"= "<<"("<<a[i][0]<<")"<<"x1+"<<"("<<a[i][1]<<")"<<"x2+" <<"("<<a[i][2]<<")"<<"x3+"<<"("<<a[i][3]<<")"<<"x4;"<<endl; } n=-2; for (i=0;i<=3;i++) { j=fabs(a[i][0])+fabs(a[i][1])+fabs(a[i][2])+fabs(a[i][3]); if (n<j) n=j; } cout.precision(3); cout<<endl<<"Norma A= "<<n<<endl; if (n<1) cout<<"Metod zbizhnyj"<<endl<<endl; else { cout<<"Metod rozzbizhnyj"<<endl; getch(); exit(1); } for (i=0; i<=3; i++) x[i]=f[i]; c=1; do{ q=0; for (i=0; i<=3; i++) { x0[i]=x[i]; x[i]=a[i][0]*x[0]+a[i][1]*x[1]+a[i][2]*x[2]+a[i][3]*x[3]+f[i]; if (fabs(x0[i]-x[i])<0.001) q++; } c++; }while (q!=4); cout.precision(3); cout<<"Rozvjazok sustemu:"<<endl; for (i=0; i<=3; i++) cout<<"x"<<i+1<<"="<<x[i]<<endl; cout.precision(0); cout<<endl<<"i="<<c<<endl; getch(); } //2)Розв’язання системи лінійних рівнянь методом Гауса #include <iostream> #include <conio.h> #include <cmath> using namespace std; void vuvid(float v[100][100], int q) { for (int i=0; i<q; i++) { for (int j=0; j<=q; j++) { if (j==q) cout<<"|\t"; cout<<v[i][j]<<"\t"; } cout<<"\n"; } }; void vvod(float a[100][100], int q) { cout<<"Vvedit matrucjy koeficientiv\n"; for (int i=0; i<q; i++) { for (int j=0; j<q; j++) { cout<<"a["<<i+1<<"]["<<j+1<<"]="; cin>>a[i][j]; } } cout<<"\n\nVvedit matrucjy vilnuh chleniv\n"; for (int i=0; i<q; i++) { int j; j=q; cout<<"b["<<i+1<<"]="; cin>>a[i][j]; } }; void tform(float v[100][100], int q) { float e; for (int k=0; k<q; k++) { for (int i=1+k; i<q; i++) { e=v[i][k]; for (int j=0; j<=q; j++) v[i][j]=v[i][j]-e/v[k][k]*v[k][j]; } } }; void xxx(float v[100][100], float x[100], int q) { float dx=0; for (int i=0; i<100; i++) x[i]=0; for(int i=q-1; i>=0; i--) { dx=0; for(int j=i; j<q; j++) dx=dx+x[j]*v[i][j] ; x[i]=(v[i][q]-dx)/v[i][i]; } }; void main() { clrscr(); int q=3, p=0; float a[100][100], x[100]; do { cout<<"\n\n\tRozvjazok SLAR metodom Gaysa:\n\n"; cout<<"\n\t1) Obchuslutu zi standartnumu znachennjamu \n\n"; cout<<"\t2) Vvestu znachennja\n\n"; cout<<"\t3) Exit\n\n"; cout<<"Vash vubir (1, 2, 3)\t"; cin>>p; if(p==3) exit(1); if(p==2) { clrscr(); cout<<"\nVvedit kilkist rivnjan: "; cin>>q; if((q<1)||(q>=100)) { cout<<"Zaveluka kilkist rivnjan"; getch(); exit(1); } else { cout<<"\n"; vvod(a, q); cout<<"\n\tObjednana matrucja\n"; vuvid(a, q); } } if (p==1) { clrscr(); q=3; a[0][0]=3.6; a[0][1]=1.8; a[0][2]=-4.7; a[1][0]=2.7; a[1][1]=-3.6; a[1][2]=1.9; a[2][0]=1.5; a[2][1]=4.5; a[2][2]=3.3; a[0][3]=3.8; a[1][3]=0.4; a[2][3]=-1.6; cout<<"\n\tObjednana matrucja\n"; vuvid(a, q); } tform(a, q); xxx(a, x, q) ; cout<<"\n\n\tRozvjazok sustemu\n\n"; for (int i=0; i<q; i++) cout<<"x"<<i+1<<"="<<x[i]<<"\n"; getch(); }while(p!=3); getch(); } Контрольні питання 1) Назвіть методи розв’язання систем лінійних рівнянь. 2) Наведіть приклади прямих методів. Назвіть їх переваги та недоліки. 3) Наведіть приклади ітераційних методів. Назвіть їх переваги та недоліки. 4) Наведіть алгоритм методу простої ітерації розв’язання систем лінійних алгебраїчних рівнянь. 5) Назвіть умови збіжності методу простої ітерації. 6) Наведіть алгоритм методу Гауса розв’язання систем лінійних алгебраїчних рівнянь.
Лабораторна робота №2
|
||||||||
|