Студопедия

КАТЕГОРИИ:

АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Пример выполнения практической работы 6




Вычислить скалярное произведение s=(Ap,B(q+r)) при

;

Алгоритм решения задачи:

1. Вычисляем x=Ap

2. Вычисляем y=q+r

3. Вычисляем z=By

4. Вычисляем s=(x,z)

Ручной счет

1.

2.   ,

3.  ,

4. s=(x,z)=

Ответ: s=(Ap,B(q+r))=33.17

Найдем скалярное произведение тремя способами.

Первый способ предполагает написание М-файла. Текст М-файла приведен ниже. Второй способ предполагает использование режима командной строки
A=[1 2 3 1 2 1 3 2 0]; B=[4 1 2; 0 4 3;1 1 1]; p=[.1 1.7 -1.5]; q=[-1.6 0.8 1.1]; r=[-0.7 1.3 0.2]; x=A*p'; y=q+r; z=B*y'; s=sum(x.*z) >> A=[1 2 3;1 2 1;3 2 0]; >> B=[4 1 2; 0 4 3;1 1 1]; >> p=[.1; 1.7; -1.5]; >> q=[-1.6; 0.8; 1.1]; >> r=[-0.7; 1.3; 0.2]; >> s=dot(A*p,B*(q+r))

Третий способ.Запрограммируем вычисления всех операций.

function lab_6 fid1=fopen('datmatr.dat','rt'); fid2=fopen('rezalt.dat','wt'); if fid1>0 A=str2num(fgetl(fid1)); B=str2num(fgetl(fid1)); p=str2num(fgetl(fid1)); q=str2num(fgetl(fid1)); r=str2num(fgetl(fid1)); n=size(A); % print A fprintf(fid2,'matrix A \n');   disp('matrix A '); output(fid2,A,n(1)); % print B fprintf(fid2,'matrix B \n');   disp('matrix B '); output(fid2,B,n(1)); % print p fprintf(fid2,'vector p \n'); disp('vector p '); fprintf(fid2,'%8.4f \n',p); fprintf('%8.4f \n',p); % print q fprintf(fid2,'vector q \n'); disp('vector q '); fprintf(fid2,'%8.4f \n',q); fprintf('%8.4f \n',q); % print r fprintf(fid2,'vector r \n'); disp('vector r '); fprintf(fid2,'%8.4f \n',r); fprintf('%8.4f \n',r);   x=mult(A,p,n(1)); y=lin(1,q,1,r,n(1)); z=mult(B,y,n(1)); s1=scal(x,z,n(1)); fprintf(fid2,'s= %8.4f \n', s1); else disp('file .dat not found !'); end fclose('all'); end function output(fid, A,n) % print A for i=1:n fprintf(fid,'%8.4f',A(i,:)); fprintf(fid,'\n'); fprintf('%8.4f',A(i,:)); fprintf('\n'); end end   function y=mult(A,v,n) % y=A*v for i=1:n y(i)=0; for j=1:n y(i)=y(i)+A(i,j)*v(j); end end end   function c=lin(a1,a,b2,b,n) %c=a1*a+b2*b for i=1:n c(i)=a1*a(i)+b2*b(i); end end   function s=scal(a,b,n) % s=(a,b) s=0; for i=1:n s=s+a(i)*b(i); end end  

Результатвсех способов:

s = 33.1700

Контрольные вопросы к практической работе 6

1. Написать программу, формирующую матрицу А по правилу несколькими способами:

. Пользователь вводит только размер формируемой матрицы.

2. Написать программу, формирующую матрицу А по правилунесколькими способами:

. Пользователь вводит только размер формируемой матрицы.

3. Написать программу, формирующую матрицу А по правилунесколькими способами:

. Пользователь вводит только размер формируемой матрицы.

4. Пользователь вводит размер формируемой матрицы. Написать программу, формирующую матрицу А по правилунесколькими способами:

. Необходимо выполнить проверку четности размерности.

5. Какие параметры называются формальными? фактическими? Какая между ними связь?

 

ЧИСЛЕННЫЕ МЕТОДЫ И АЛГОРИТМЫ

Тема 7Решение задач методом Гаусса

Основные записи СЛАУ

В общем случае основная запись системы n линейных алгебраических уравнений с n неизвестными имеет следующий матричный вид:

   , (7.1)

где

;

A –матрица коэффициентов системы;  –вектор неизвестных;  –вектор свободных членов.

Классификацию СЛАУ можно представить в виде схемы (рис.7.1)

Рис.7.1 Классификация СЛАУ

Расширенная матрица- получается из матрицы коэффициентов системы путем добавления к этой матрице столбца свободных членов:

  (7.2)

где .

Общая схема метода Гаусса

Решение СЛАУ методом Гауссасостоит из двух частей:

· 1-я часть – приведение к эквивалентной системе уравнений более простой структуры (треугольной) за счет вычитания уравнений друг из друга, при умножении вычитаемого уравнения на специально подобранное число (Прямой ход).

· 2-я часть – решение равносильной системы уравнений с треугольной матрицей (Обратный ход).

Запишем общие формулы прямого хода:

  (7.3)

Замечание. Элемент  - называется ведущим элементом.

Обратный ход(решение системы с треугольной матрицей):

Из треугольной системы последовательно (в обратном порядке) вычисляются значения неизвестных по формуле:

  (7.4)

для i=n, n-1, n-2, ..., 2, 1 (при i=n сумма в формуле отсутствует).










Последнее изменение этой страницы: 2018-06-01; просмотров: 194.

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