Банк рефератов содержит более 364 тысяч рефератов, курсовых и дипломных работ, шпаргалок и докладов по различным дисциплинам: истории, психологии, экономике, менеджменту, философии, праву, экологии. А также изложения, сочинения по литературе, отчеты по практике, топики по английскому.
Полнотекстовый поиск
Всего работ:
364139
Теги названий
Разделы
Авиация и космонавтика (304)
Административное право (123)
Арбитражный процесс (23)
Архитектура (113)
Астрология (4)
Астрономия (4814)
Банковское дело (5227)
Безопасность жизнедеятельности (2616)
Биографии (3423)
Биология (4214)
Биология и химия (1518)
Биржевое дело (68)
Ботаника и сельское хоз-во (2836)
Бухгалтерский учет и аудит (8269)
Валютные отношения (50)
Ветеринария (50)
Военная кафедра (762)
ГДЗ (2)
География (5275)
Геодезия (30)
Геология (1222)
Геополитика (43)
Государство и право (20403)
Гражданское право и процесс (465)
Делопроизводство (19)
Деньги и кредит (108)
ЕГЭ (173)
Естествознание (96)
Журналистика (899)
ЗНО (54)
Зоология (34)
Издательское дело и полиграфия (476)
Инвестиции (106)
Иностранный язык (62791)
Информатика (3562)
Информатика, программирование (6444)
Исторические личности (2165)
История (21319)
История техники (766)
Кибернетика (64)
Коммуникации и связь (3145)
Компьютерные науки (60)
Косметология (17)
Краеведение и этнография (588)
Краткое содержание произведений (1000)
Криминалистика (106)
Криминология (48)
Криптология (3)
Кулинария (1167)
Культура и искусство (8485)
Культурология (537)
Литература : зарубежная (2044)
Литература и русский язык (11657)
Логика (532)
Логистика (21)
Маркетинг (7985)
Математика (3721)
Медицина, здоровье (10549)
Медицинские науки (88)
Международное публичное право (58)
Международное частное право (36)
Международные отношения (2257)
Менеджмент (12491)
Металлургия (91)
Москвоведение (797)
Музыка (1338)
Муниципальное право (24)
Налоги, налогообложение (214)
Наука и техника (1141)
Начертательная геометрия (3)
Оккультизм и уфология (8)
Остальные рефераты (21692)
Педагогика (7850)
Политология (3801)
Право (682)
Право, юриспруденция (2881)
Предпринимательство (475)
Прикладные науки (1)
Промышленность, производство (7100)
Психология (8692)
психология, педагогика (4121)
Радиоэлектроника (443)
Реклама (952)
Религия и мифология (2967)
Риторика (23)
Сексология (748)
Социология (4876)
Статистика (95)
Страхование (107)
Строительные науки (7)
Строительство (2004)
Схемотехника (15)
Таможенная система (663)
Теория государства и права (240)
Теория организации (39)
Теплотехника (25)
Технология (624)
Товароведение (16)
Транспорт (2652)
Трудовое право (136)
Туризм (90)
Уголовное право и процесс (406)
Управление (95)
Управленческие науки (24)
Физика (3462)
Физкультура и спорт (4482)
Философия (7216)
Финансовые науки (4592)
Финансы (5386)
Фотография (3)
Химия (2244)
Хозяйственное право (23)
Цифровые устройства (29)
Экологическое право (35)
Экология (4517)
Экономика (20644)
Экономико-математическое моделирование (666)
Экономическая география (119)
Экономическая теория (2573)
Этика (889)
Юриспруденция (288)
Языковедение (148)
Языкознание, филология (1140)

Реферат: Решение систем линейных алгебраических уравнений 2

Название: Решение систем линейных алгебраических уравнений 2
Раздел: Рефераты по математике
Тип: реферат Добавлен 10:48:41 02 июля 2011 Похожие работы
Просмотров: 52 Комментариев: 21 Оценило: 2 человек Средний балл: 5 Оценка: неизвестно     Скачать

Нижегородский Технический Университет

Институт Радиотехники и Информационных Технологий

Кафедра «Прикладная Математика и Информатика»

Отчёт по лабораторной работе №2

Тема: «Решение систем линейных алгебраических уравнений»

Выполнила: Волынкина В.М.

группа 04-ПМ

Проверила: Катаева Л.Ю.

Нижний Новгород

2008

Содержание.

1.Постанoвка задачи №1, метод решения.

2.Постановка задачи №2, метод решения.

3. Реализация на языке С++ задачи №1.

4. Реализация на языке С++ задачи №2.

5. Реализация на языке Fortran задачи №1.

6. Реализация на языке Fortran задачи №2.

7. Реализация в Matlab задачи №1.

8. Реализация в Matlab задачи №2.

9. Вывод.

10.Список литературы.

1.Постановка задачи №1. Метод решения.

Представить реализацию метода простой итерации для решения систем линейных алгебраических уравнений.

Запишем исходную систему уравнений в векторно-матричном виде: Ax=F.

Пусть Е - заданное приближение.

Матрицу А всегда можно привести к виду, когда на диагонали находятся максимальные значения. Только в этом случае итерационный метод применяют.

Приведение матрицы А происходит путём нахождения в строке максимального элемента и перестановки этой строки на место той строки, номер которой совпадает с номером столбца максимального элемента.

Затем из каждого уравнения выражаем хi:

Чтобы запустить итерационный процесс, необходимо задать начальные приближения значений неизвестных: хi(0)=0.

Затем подставим нулевые значения переменных в правые части уравнений. Получим некоторые значения переменных хi: Будем рассматривать их в качестве следующего (первого) приближения хi(1).

Проверим, удовлетворяют ли заданной точности получившиеся значения. Найдём модули разности получившегося приближения и начального: !х(1)-х(0)! Если значения модулей больше заданного приближения, продолжаем итерационный процесс.

На следующем шаге подставляем в правые части формул х(1) приближения, получаем значения х(2) приближений, проверяем модули разности и т.д.

Итерационный процесс продолжается до тех пор, пока все значения х i(k) не станут близкими к xi(k+1), т.е. пока модули разности не станут меньше заданного приближения: !х(к+1)-х(к)!<Е.

2.Постановка задачи №2. Метод решения.

Представить реализацию метода Зейделя для решения систем линейных алгебраических уравнений.

Запишем исходную систему уравнений в векторно-матричном виде: Ax=F.

Пусть Е - заданное приближение.

Приводим матрицу А к виду, когда на диагонали находятся максимальные значения.

(как в методе простой итерации).

Затем из каждого уравнения выражаем хi:

Чтобы запустить итерационный процесс, необходимо задать начальные приближения значений неизвестных: хi(0)=0.

Затем подставим нулевые значения переменных в правую часть первого уравнения, т.е. в формулу для х1. В следующие формулы для хi будем подставлять значения переменных, найденные на этом же шаге. Например: формула

Получившиеся значения переменных будем рассматривать как следующие приближения.

После каждого итерационного шага делаем проверку по принципу, описанному в методе простой итерации.

3. Реализация на языке С++ задачи №1.

#include <iostream>

using namespace std;

int main()

{

int c=0,n,p,z;

float l=0,t=0,E,max,r;

cout<<"kol-vo perem=";

cin>>n;

cout<<n<<endl;

float A[n][n],F[n], x[n],y[n],q[n];

for (int i=0; i<n; i++)

{

for (int j=0;j<n;j++)

{

cout<<"A["<<i<<"]["<<j<<"]=";

cin>>A[i][j];

}

}

for (int i=0;i<n;i++)

{

cout<<"F["<<i<<"]=";

cin>>F[i];

}

cout<<"priblijenie=";

cin>>E;

cout<<E<<endl;

//---------------privedenie matrici--------------------------

for (int i=0;i<n;i++)

{ max=A[i][0];

for (int j=0;j<n;j++)

{

if (max<A[i][j]) {max=A[i][j];p=i,z=j;}

}

if (p!=z) {for (int j=0;j<n;j++) {

q[j]=A[z][j];

A[z][j]=A[p][j];

A[p][j]=q[j];

}

}

}

for (int i=0; i<n; i++)

{

for (int j=0;j<n;j++)

{

cout<<"A["<<i<<"]["<<j<<"]="<<A[i][j]<<" ";

}

}

cout<<"privedena"<<endl;

//------------------------------------------------------------

for (int i=0;i<n;i++) //1 shag

{

x[i]=F[i]/A[i][i];

cout<<"x["<<i<<"]="<<x[i]<<endl;

}

for (int i=0;i<n;i++) {

if (x[i]<E) {c=c+1;}

}

if (c==n) {goto END;}

else c=0;

goto V;

V: for (int i=0;i<n;i++) {y[i]=x[i];}

for (int i=0;i<n;i++)

{

l=0; t=0;

for (int j=0;j<i;j++)

{

if(j<i) {l=l+A[i][j]*y[j];}

}

for (int k=i+1;k<n;k++)

{

if(k<n) {t=t+A[i][k]*y[k];}

}

x[i]=(F[i]-l-t)/A[i][i];

cout<<"x["<<i<<"]="<<x[i];

}

cout<<endl;

for (int i=0;i<n;i++)

{

r=x[i]-y[i];

if(r<0){r=-r;}

if (r<E){c=c+1;}

}

if (c==n) {goto END;}

else {c=0;

goto V;}

END: cout<<"Zadacha reshena!"<<endl;

return 0;

}

4. Реализация на языке С++ задачи №2.

#include <iostream>

using namespace std;

int main()

{

int c=0,n,p,z;

float l=0,t=0,E,max,r;

cout<<"kol-vo perem=";

cin>>n;

cout<<n<<endl;

float A[n][n],F[n], x[n],y[n],q[n];

for (int i=0; i<n; i++)

{

for (int j=0;j<n;j++)

{

cout<<"A["<<i<<"]["<<j<<"]=";

cin>>A[i][j];

}

}

for (int i=0;i<n;i++)

{

cout<<"F["<<i<<"]=";

cin>>F[i];

}

cout<<"priblijenie=";

cin>>E;

cout<<E<<endl;

cout<<"OK!"<<endl;

//--------------------------------------------------------------

for (int i=0;i<n;i++)

{

max=A[i][0];

for (int j=0;j<n;j++)

{

if (max<A[i][j]) {max=A[i][j];p=i,z=j;}

}

if (p!=z) {for (int j=0;j<n;j++) {

q[j]=A[z][j];

A[z][j]=A[p][j];

A[p][j]=q[j];

}

}

}

for (int i=0; i<n; i++)

{

for (int j=0;j<n;j++)

{

cout<<"A["<<i<<"]["<<j<<"]="<<A[i][j]<<" ";

}

}

cout<<"privedena"<<endl;

//----------------------------------------------------------

V: for (int i=0;i<n;i++)

{

y[i]=x[i];

}

for (int i=0;i<n;i++)

{

l=0;

t=0;

for (int j=0;j<i;j++)

{

if(j<i){l=l+A[i][j]*x[j];}

}

for (int k=i+1;k<n;k++)

{

if(k<n) {t=t+A[i][k]*x[k];}

}

x[i]=(F[i]-l-t)/A[i][i];

cout<<"x["<<i<<"]="<<x[i];

}

cout<<endl;

for (int i=0;i<n;i++)

{

r=x[i]-y[i];

if(r<0){r=-r;}

if (r<E){c=c+1;}

}

if (c==n) {goto END;}

else {

c=0;

goto V;

}

END: cout<<"Zadacha reshena!"<<endl;

return 0;

}

5. Реализация на языке Fortran задачи №1.

n=0

c=0

read(*,*)n,e

dimension A(n,n),F(n),X(n),y(n)

t=0

l=0

do i=1:n:1

do j=1:n:1

read (*,*) A(i,j)

enddo

enddo

do i=1:n:1

read (*,*) F(i)

enddo

write ('priblizhenie=')

read (*,*) e

do i=1:n:1

X(i)=F(i)/A(i)(i)

enddo

do i=1:n:1

if (X(i).lt.e) c=c+1

endif

if (c.eq.n) goto END

endif

else c=0

goto V

enddo

V: do i=1:n:1

y(i)=X(i)

enddo

do i=1:n:1

l=0

t=0

do j=1:i:1

if (j.lt.i) l=l+A(i)(j)*y(j)

endif

enddo

do k=i+1:n:1

if (k.lt.n) t=t+A(i)(k)*y(k)

endif

enddo

X(i)=(F(i)-l-t)/A(i)(i)

enddo

do i=i:n:1

r=X(i)-y(i)

if (r.lt.0) r=-r

endif

if (r.lt.e) c=c+1

endif

enddo

if (c.eq.n) goto END

endif

else c=0

goto V

END: do i=0:n:1

write (*,*) X(i)

enddo

end

6. Реализация на языке Fortran задачи №2.

n=0

c=0

read(*,*)n,e

dimension A(n,n),F(n),X(n),y(n)

t=0

l=0

do i=1:n:1

do j=1:n:1

read (*,*) A(i,j)

enddo

enddo

do i=1:n:1

read (*,*) F(i)

enddo

write ('priblizhene=')

read (*,*) e

V: do i=1:n:1

y(i)=X(i)

enddo

do i=1:n:1

l=0

t=0

do j=1:i:1

if (j.lt.i) l=l+A(i)(j)*X(j)

endif

enddo

do k=i+1:n:1

if (k.lt.n) t=t+A(i)(k)*X(k)

endif

enddo

x[i]=(F[i]-l-t)/A[i][i]

enddo

do i=i:n:1

r=X(i)-y(i)

if (r.lt.0) r=-r

endif

if (r.lt.e) c=c+1

endif

enddo

if (c.eq.n) goto END

else c=0

goto V

endif

END: do i=0:n:1

write (*,*) y(i)

enddo

end

7.Реализация в Matlab задачи №1.

clear

n=input('Vvedite kolichestvo peremennih: ');

for i=1:n

for j=1:n

A(i,j)=input('Vvedite element matrici A: ');

end

end

for i=1:n

F(i)=input('Vvedite element matrici F: ');

end

E=input('Vvedite priblijenie: ');

p=0;

z=0;

max=0;

c=0;

d=0;

if (det(A)~=0)

for i=1:n

max=A(i,1)

for j=1:n

if max<A(i,j)

max=A(i,j);

p=i;

z=j;

end

end

if p~=z

for j=1:n

q(j)=A(z,i);

A(z,j)=A(p,j);

A(p,j)=q(j);

end

end

end

end

for i=1:n

x(i)=F(i)/A(i,i);

end

for i=1:n

if x(i)<E

c=c+1;

end

end

if c==n

d=1;

end

while d==0

for i=1:n

y(i)=x(i);

end

for i=1:n

l=0;

t=0;

for j=0:i

if j<i

l=l+A(i,j)*y(j);

end

end

for k=i+1:n

if k<n

t=t+A(i,k)*y(k);

end

end

x(i)=(F(i)-l-t)/A(i,i);

end

for i=1:n

r=x(i)-y(i)

if r<0

r=-r;

end

if r<E

c=c+1

end

end

if c==n

d=1;

end

end

8. Реализация в Matlab задачи №2.

clear

n=input('Vvedite kolichestvo peremennih: ');

for i=1:n

for j=1:n

A(i,j)=input('Vvedite element matrici A: ');

end

end

for i=1:n

F(i)=input('Vvedite element matrici F: ');

end

E=input('Vvedite priblijenie: ');

p=0;

z=0;

max=0;

c=0;

d=0;

if (det(A)~=0)

for i=1:n

max=A(i,1)

for j=1:n

if max<A(i,j)

max=A(i,j);

p=i;

z=j;

end

end

if p~=z

for j=1:n

q(j)=A(z,i);

A(z,j)=A(p,j);

A(p,j)=q(j);

end

end

end

end

while d==0

for i=1:n

y(i)=x(i);

end

for i=1:n

l=0;

t=0;

for j=0:i

if j<i

l=l+A(i,j)*y(j);

end

end

for k=i+1:n

if k<n

t=t+A(i,k)*y(k);

end

end

x(i)=(F(i)-l-t)/A(i,i);

end

for i=1:n

r=x(i)-y(i)

if r<0

r=-r;

end

if r<E

c=c+1

end

end

if c==n

d=1;

end

end

Рeзультаты задачи №1 на С++ и Fortran:

x[0]=1.004

x[1]=0.998

x[2]=0.998

Рeзультаты задачи №1 в Matlab:

Рeзультаты задачи №2 на С++ и Fortran:

x[0]=1.00067

x[1]=0.999734

x[2]=0.999906

Рeзультаты задачи №1 в Matlab:

Результаты программ на С++ и Fortran совпадают с результатами ручного счёта. А в Matlab получились более точные числа, это связано с использованием другой системы счисления.

9.Вывод.

Научились решать системы линейных алгебраических уравнений методом простой итерации и методом Зейделя.

10.Список литературы.

Л.Н. Турчак , П.В. Плотников «Основы численных методов» стр.124-131

Оценить/Добавить комментарий
Имя
Оценка
Комментарии:
Хватит париться. На сайте FAST-REFERAT.RU вам сделают любой реферат, курсовую или дипломную. Сам пользуюсь, и вам советую!
Никита15:11:55 04 ноября 2021
.
.15:11:54 04 ноября 2021
.
.15:11:52 04 ноября 2021
.
.15:11:50 04 ноября 2021
.
.15:11:49 04 ноября 2021

Смотреть все комментарии (21)
Работы, похожие на Реферат: Решение систем линейных алгебраических уравнений 2

Назад
Меню
Главная
Рефераты
Благодарности
Опрос
Станете ли вы заказывать работу за деньги, если не найдете ее в Интернете?

Да, в любом случае.
Да, но только в случае крайней необходимости.
Возможно, в зависимости от цены.
Нет, напишу его сам.
Нет, забью.



Результаты(294402)
Комментарии (4230)
Copyright © 2005 - 2024 BestReferat.ru / реклама на сайте