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

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

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

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

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

Да, спасибо!

0%

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

0%

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

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

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

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


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

Тип Реферат
Предмет Математика
Просмотров
811
Размер файла
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
157252
рейтинг
icon
6079
работ сдано
icon
2741
отзывов
avatar
Химия
Экономика
Биология
icon
105734
рейтинг
icon
2110
работ сдано
icon
1318
отзывов
avatar
Высшая математика
Информатика
Геодезия
icon
62710
рейтинг
icon
1046
работ сдано
icon
598
отзывов
Отзывы студентов о нашей работе
67 201 оценка star star star star star
среднее 4.9 из 5
МИИТ
Работа выполнена на отлично в кратчайшие сроки и без замечаний. Спасибо
star star star star star
СПБГУ
Реферат с ответами на вопросы по предмету Осн. науч. исследований выполнено в срок на Отли...
star star star star star
ТГМА
Мария очень грамотный и вежливый исполнитель! Работу выполнила досрочно с высоким антиплаг...
star star star star star

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

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

Эксплуатационная практика | П. В | Производственная практика

Отчет по практике, Эксплуатационная практика | П.В | Производственная практика

Срок сдачи к 10 сент.

только что

Переписать тех процесс .

Другое, Резание Материалов

Срок сдачи к 31 авг.

только что

Курсовая

Курсовая, Системы управления технологическими процессами

Срок сдачи к 15 сент.

только что

Сделать отчет о практике

Отчет по практике, Менеджмент организации

Срок сдачи к 16 июля

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

Написать отчет по практике. Юриспруденция. Д-00517

Отчет по практике, Право

Срок сдачи к 15 июля

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

срочно составить Гугл форму исследования

Кандидатская диссертация, Гугл форма исследования на анлийском языке

Срок сдачи к 13 июля

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

«Консультирование родителей детей с ОВЗ

Курсовая, Основы психологического консультирования

Срок сдачи к 31 июля

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

Решить задачу

Решение задач, Математика

Срок сдачи к 13 июля

5 минут назад

Выполнить расчетную часть

Отчет по практике, Маркшейдерское дело

Срок сдачи к 22 июля

7 минут назад

20-25 стр работа, отсутствие ИИ

Курсовая, Теория государства и права

Срок сдачи к 31 июля

8 минут назад

Ахмедова Мальвина Акифовна 4 семесип левел синергия

Отчет по практике, Учебно-ознакомительная практика | У.О | Учебная практика

Срок сдачи к 25 сент.

9 минут назад

Рзаева Сона Рашад кызы Левел синергия 4 семестр

Отчет по практике, Переводческая практика | У.О | Учебная практика

Срок сдачи к 19 июля

9 минут назад

Джабарлы Анар Самир оглы 2 cеместр мти левел

Отчет по практике, Технологическая (проектно-технологическая) практика | У.О | Учебная практика

Срок сдачи к 9 авг.

9 минут назад

Поступаю в университет Предстоит сдавать дистанционно вступительные...

Решение задач, Основы технических знаний

Срок сдачи к 16 июля

9 минут назад

Дневник практики

Другое, Дневник практики

Срок сдачи к 18 июля

9 минут назад

Дневник практики

Отчет по практике, Юридический факультет

Срок сдачи к 18 июля

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

Решить 3 вариант. 2 задачи.

Решение задач, Теория вероятностей и математическая статистика

Срок сдачи к 19 июля

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

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

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

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

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

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

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

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