Всё сдал! - помощь студентам онлайн Всё сдал! - помощь студентам онлайн

Реальная база готовых
студенческих работ

Узнайте стоимость индивидуальной работы!

Вы нашли то, что искали?

Вы нашли то, что искали?

Да, спасибо!

0%

Нет, пока не нашел

0%

Узнайте стоимость индивидуальной работы

это быстро и бесплатно

Получите скидку

Оформите заказ сейчас и получите скидку 100 руб.!


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

Тип Реферат
Предмет Математика
Просмотров
769
Размер файла
23 б
Поделиться

Ознакомительный фрагмент работы:

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

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

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

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

Отчёт по лабораторной работе №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


Нет нужной работы в каталоге?

Сделайте индивидуальный заказ на нашем сервисе. Там эксперты помогают с учебой без посредников Разместите задание – сайт бесплатно отправит его исполнителя, и они предложат цены.

Цены ниже, чем в агентствах и у конкурентов

Вы работаете с экспертами напрямую. Поэтому стоимость работ приятно вас удивит

Бесплатные доработки и консультации

Исполнитель внесет нужные правки в работу по вашему требованию без доплат. Корректировки в максимально короткие сроки

Гарантируем возврат

Если работа вас не устроит – мы вернем 100% суммы заказа

Техподдержка 7 дней в неделю

Наши менеджеры всегда на связи и оперативно решат любую проблему

Строгий отбор экспертов

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

1 000 +
Новых работ ежедневно
computer

Требуются доработки?
Они включены в стоимость работы

Работы выполняют эксперты в своём деле. Они ценят свою репутацию, поэтому результат выполненной работы гарантирован

avatar
Математика
История
Экономика
icon
159599
рейтинг
icon
3275
работ сдано
icon
1404
отзывов
avatar
Математика
Физика
История
icon
156804
рейтинг
icon
6076
работ сдано
icon
2739
отзывов
avatar
Химия
Экономика
Биология
icon
105734
рейтинг
icon
2110
работ сдано
icon
1318
отзывов
avatar
Высшая математика
Информатика
Геодезия
icon
62710
рейтинг
icon
1046
работ сдано
icon
598
отзывов
Отзывы студентов о нашей работе
66 019 оценок star star star star star
среднее 4.9 из 5
ТИУ г. Нижневартовск
Спасибо Огромное - Сделано без безусловно на отлично. Работа написана досрочно, с соблюден...
star star star star star
Московский Университет имени С.Ю. Витте
Спасибо исполнителю за работу, как всегда выполнена досрочно, без замечаний, из 100 баллов...
star star star star star
горный университет
Отличная работа, выполнена сразу же после принятия заказа, очень быстро и качественно
star star star star star

Последние размещённые задания

Ежедневно эксперты готовы работать над 1000 заданиями. Контролируйте процесс написания работы в режиме онлайн

Выполнить 2 контрольных задания

Контрольная, Психология и профилактика отклоняющегося поведения

Срок сдачи к 30 апр.

2 минуты назад

3 Задачки простые

Решение задач, ПЭМИ

Срок сдачи к 23 апр.

4 минуты назад

Разработка и создание дизайна рекламной продукции

Другое, Реклама и PR

Срок сдачи к 3 мая

4 минуты назад
4 минуты назад

Выполнить отчет по практике

Отчет по практике, Оборудование предприятий общественного питания

Срок сдачи к 13 мая

5 минут назад

решить задачи

Решение задач, техническая механика

Срок сдачи к 23 апр.

5 минут назад

Онлайн-помощь. Мат.анализ. М-09362

Онлайн-помощь, Математика

Срок сдачи к 24 апр.

6 минут назад

4 симестр

Отчет по практике, Монтаж электропроводок всех видов

Срок сдачи к 26 апр.

6 минут назад

Редакция доклада

Доклад, Строительство

Срок сдачи к 24 апр.

7 минут назад

Введение в информационные технологии (Рек) 233481 доп

Контрольная, Информационные системы и технологии

Срок сдачи к 31 мая

9 минут назад
10 минут назад

Решить несколько задач

Решение задач, бухгалтерский управленческий учет

Срок сдачи к 30 апр.

10 минут назад

Multisim

Лабораторная, Электротехника и электроника

Срок сдачи к 24 апр.

11 минут назад
11 минут назад

Составление оптимального суточного рациона

Самостоятельная работа, Возрастная анатомия

Срок сдачи к 3 мая

11 минут назад

Книга: с. в. кривцова "учитель и проблемы дисциплины"

Рецензия, Теория и методика преподавания

Срок сдачи к 1 мая

11 минут назад
planes planes
Закажи индивидуальную работу за 1 минуту!

Размещенные на сайт контрольные, курсовые и иные категории работ (далее — Работы) и их содержимое предназначены исключительно для ознакомления, без целей коммерческого использования. Все права в отношении Работ и их содержимого принадлежат их законным правообладателям. Любое их использование возможно лишь с согласия законных правообладателей. Администрация сайта не несет ответственности за возможный вред и/или убытки, возникшие в связи с использованием Работ и их содержимого.

«Всё сдал!» — безопасный онлайн-сервис с проверенными экспертами

Используя «Свежую базу РГСР», вы принимаете пользовательское соглашение
и политику обработки персональных данных
Сайт работает по московскому времени:

Вход
Регистрация или
Не нашли, что искали?

Заполните форму и узнайте цену на индивидуальную работу!

Файлы (при наличии)

    это быстро и бесплатно