Численный метод

Автор работы: Пользователь скрыл имя, 23 Мая 2013 в 16:59, курсовая работа

Описание работы

Численные методы дают приближенное решение задачи. Это значит, что вместо точного решения и (функции или функционала) некоторой задачи мы находим решение у другой задачи, близкое в некотором смысле (например, по норме) к искомому. Основная идея всех методов — дискретизация или аппроксимация (замена, приближение) исходной задачи другой задачей, более удобной для решения на ЭВМ, причем решение аппроксимирующей задачи зависит от некоторых параметров, управляя которыми, можно определить решение с требуемой точностью. Например, в задаче численного интегрирования такими параметрами являются узлы и веса квадратурной формулы. Далее, решение дискретной задачи является элементом конечномерного пространства.

Содержание работы

Введение
1. Решение систем линейных алгебраических уравнений методом простой итерации
1.1 Постановка задачи
1.2 Математическая формулировка задачи
1.3 Обзор существующих численных методов решения задачи
1.4 Численный метод решения задачи
1.5 Схема алгоритма
1.6 Текст программы
1.7 Тестовый пример

Файлы: 1 файл

Типо Расчётка.docx

— 628.29 Кб (Скачать файл)

При выполнении достаточного условия сходимости оценка погрешности  решения на k- ой итерации дается выражением:

 

 

где x·- точное решение СЛАУ.

Процесс итераций останавливается  при выполнении условия , где εε≤)(kε - задаваемая вычислителем точность.

Принимая во внимание, что  из (1.20) следует неравенство  , можно получить априорную оценку необходимого для достижения заданной точности числа итераций. При использовании в качестве начального приближения вектора β такая оценка определится неравенством:

откуда получаем априорную  оценку числа итераций k при ||α||<1

 

Следует подчеркнуть, что  это неравенство дает завышенное число итераций k, поэтому редко используется на практике.

 

1.6 Текст программы

program Yakobi;

uses crt;

const

maxn=100;

type

matrix=array[1..maxn,1..maxn] of real;

vector=array[1..maxn] of real;

vector1=array[1..maxn] of real;

var

i,j,n,k1: integer;

e,norma:real;

a: matrix;

b: vector;

x2,x3: vector1;

imya,dannble_i_rezultat,ekran:string;

procedure input(var kolvo:integer; var pogreshnostb:real; var matr1:matrix; var matr2:vector);

{Ввод исходных данных}

var i,j,code:integer;

a_s: string;

b_s: string;

begin

writeln('введите количество уравнений');

readln(kolvo);

writeln('введите погрешность вычисления');

readln(pogreshnostb);

writeln('введите матрицу коэффициентов при неизвестных');

for i:=1 to kolvo do

for j:=1 to kolvo do

begin

repeat

begin

writeln('введите элемент [',i,',',j,'] и нажмите Enter');

readln(a_s);

if (i=j) and (a_s='0') then

repeat

begin

writeln('Элементы на главной диагонали должны быть отличны от нуля. Повторите ввод');

readln(a_s);

end;

until a_s<>'0';

val(a_s,matr1[i,j],code);

end;

until code=0;

end;

writeln('введите вектор свободных коэффициентов');

for j:=1 to kolvo do

begin

repeat

writeln('введите элемент ',j,' и нажмите Enter');

readln(b_s);

val(b_s,matr2[j],code);

until code=0;

end;

end;

 

1.7 Тестовый пример

 

 

 

 


Информация о работе Численный метод