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

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

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

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

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

Да, спасибо!

0%

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

0%

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

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

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

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


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

Тип Реферат
Предмет Математика
Просмотров
754
Размер файла
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
отзывов
Отзывы студентов о нашей работе
65 048 оценок star star star star star
среднее 4.9 из 5
МГОУ
Работа выполнена очень быстро и качественно. Только положительные эмоции от сотрудничества
star star star star star
Ульяновский государственный технический университет (УлГТУ)
Не в первый раз работаю с данным исполнителем. Всегда работу выполняет заранее и очень кач...
star star star star star
Мед университет
Виктория очень внимательная, доброжелательная. Работу выполнила на отлично 👍 рекомендую да...
star star star star star

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

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

Проходить задания 2 курса техникума, дистант

Тест дистанционно, Разные

Срок сдачи к 28 февр.

только что

Перевести чертежи в пдф

Чертеж, МДК

Срок сдачи к 23 февр.

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

Бизнес модели на основе больших данных, анализ возможностей и вызовов для компаний

Курсовая, Инновационные бизнес модели глобальных компаний, менеджмент

Срок сдачи к 28 февр.

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

Практическое задание в Exel

Другое, Анализ данных в профессиональной сфере

Срок сдачи к 25 февр.

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

Объяснение решения задачи

Решение задач, Проектирование электроснабжения

Срок сдачи к 24 февр.

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

Помощь в разборе задач

Онлайн-репетитор, Проектирование электроснабжения

Срок сдачи к 23 февр.

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

написать курсовую

Курсовая, Технологическая оснастка

Срок сдачи к 20 мар.

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

Валидационные логистические мероприятия: объекты холодовой цепи

Магистерская диссертация, Биотехнология

Срок сдачи к 23 февр.

5 минут назад

ВКР Разработка автоматизированной системы управления вводом резерва для водного транспорта

Диплом, Тоэ, электрические машины, судовые автоматизированные электроэнергетические системы

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

6 минут назад

Оформить ВКР по стандарту

Диплом, Управление персоналом

Срок сдачи к 22 февр.

6 минут назад

Диплом для колледжа

Диплом, Бухгалтерский учет

Срок сдачи к 20 мар.

7 минут назад

Решить 3 практических задания

Контрольная, Менеджмент

Срок сдачи к 2 мар.

7 минут назад

Регрессионный анализ (5 факторов) и экономическое обоснование для проекта по финансам (Казахстан)

Решение задач, International Trade Finance, английский язык

Срок сдачи к 23 февр.

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

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

Решение задач, Тепоомассообменные процессы в защите окружающей среды, теплотехника

Срок сдачи к 25 мар.

9 минут назад

кр "экономические споры"

Контрольная, Экономика

Срок сдачи к 10 мар.

9 минут назад

Интервью и собеседование при приеме на...

Курсовая, основы профотбора

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

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

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

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

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

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

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

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

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