Частина тексту файла (без зображень, графіків і формул):
Міністерство освіти та науки України
Національний університет «Львівська політехніка»
Інститут телекомунікацій, радіоелектроніки та електронної техніки
Кафедра теоретичної радіотехніки та радіовимірювань
Звіт з розрахункової роботи
Тема «Розрахунок математичних моделей лінійних резистивних схем методом Гаусса »
з дисципліни «Інформатика та обчислювальна техніка»
Варіант 4
Метою лабораторної роботи є вивчення методу Гаусса розв’язування систем лінійних алгебраїчних рівнянь з дійсними коефіцієнтами, складання алгоритму і програми мовою С++ та налагодження програми на тестовій задачі.
Код програми мовою С
#include <cstdlib>
#include <iostream>
#include <fstream>
#include <math.h>
using namespace std;
double eps=1e-9;
int Gauss(double **a, double *x, int n){
int i,j,k;
for (k=0; k<n; k++){
if(fabs(a[k][k])<eps){
for(i=k+1; i<n && fabs(a[i][k])<eps; i++);
if(i==n){
return 1;
}
for(j=k; j<=n; j++){
double c=a[k][j];
a[k][j]=a[i][j];
a[i][j]=c;
}
}
for (i=n; i>=k; i--) a[k][i]/=a[k][k];
for(i=k+1; i<n; i++)
if(fabs(a[i][k])>eps)
for(j=n; j>=k;j--)
a[i][j]-=a[k][j]*a[i][k];
}
for (i=n-1; i>=0; i--){
x[i]=a[i][n];
for(j=i+1; j<n; j++)
x[i]-=a[i][j]*x[j];
}
return 0;
}
int main () {
int n,i,j;
ifstream in("matrix.txt");
if (!in){
cout <<"ne mogy znautu fail"<<endl;
system ("Pause");
return 1;
}
in>>n;
double **A=new double *[n],
*x=new double[n];
cout<<"Zadana rozshyrena matrycya"<<endl;
for (i=0;i<n; i++)
A[i] = new double [n+1];
for (i=0;i<n; i++){
for (j=0;j<=n; j++){
in>>A[i][j];
cout<<' '<<A[i][j];
}
cout<<endl;
}
if (Gauss(A,x,n)){
cout <<"Pomulka"<<endl;
system ("Pause");
return 2;
}
cout<<endl<<"Pryvedena do trykutnogo vyglyadu"<<endl;
for (i=0;i<n; i++){
for (j=0;j<=n; j++)
cout<<' '<<A[i][j];
cout<<endl;
}
cout<<endl<<"Rozvazok:"<<endl;
for (i=0; i<n; i++)
cout<<" x["<<(i+1)<<"]="<<x[i]<<endl;
cout<<endl;
system ("Pause");
for(i=0;i<n;i++)delete[] A[i];
delete[] A;
delete[] x;
return 0;
}
НАЛАГОДЖЕННЯ ТА РЕЗУЛЬТАТИ ТЕСТУВАННЯ.