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

  • Вид работы:
    Контрольная работа
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    546,15 Кб
  • Опубликовано:
    2013-11-24
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

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

Московский авиационный институт

Национальный исследовательский университет

Факультет радиоэлектроники

Кафедра 403








Расчетно-графическая работа

по дисциплине: Информатика

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

Выполнил:

студент группы 4О-110Б

Ибрагимов Я.О

Принял:

Преподаватель кафедры 403

Кошелькова Л.В


Москва 2011

Содержание

Анализ задания

Теоретические сведения

Схемы алгоритмов

Набор тестов

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

Список используемой литературы

Анализ задания

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

 

если аргумент Х принимает M различных значений, параметр А изменяется от начального значения An, N раз, с шагом Da, а параметр В принимает значение, равное интегралу:

 ,

вычисленному с погрешностью ξ при заданном интервалом изоляции c,d.

Входными данными в этой задаче являются: An- начальное значение аргумента, Da- шаг, с которым изменяется параметр, N- кол-во его изменений, M- количество значений аргумента Х, массив значений аргумента Х. Для решения интеграла методом Симпсона используются следующие входные данные: интервалы изоляции интеграла - с,d, начальное приближение корня - Xo, погрешность вычисления интеграла − Eps, предельно допустимое число повторений цикла при вычислении корня- Km.

Выходными данными являются четыре массива: двумерный массив значений функции Мy двумерный массив ошибок Er, одномерный массив аргумента Мх и параметра А; значение интеграла − В, диагностические сообщения, извещающие пользователя в следующих случаях:

·  Невозможность вычисления тангенса числа, выходящего за его ОДЗ.

·        Невозможность вычисления интеграла с заданной точностью за определенное количество повторений цикла.

В алгоритме выполняются следующие функции:

·  ввод исходных данных

·        вычисление уравнения

·        проверка количества итераций при вычислении интеграла и формирование ошибки в случае, если корень не найден за заданное число итераций;

·        вычисление таблицы значений функции

·        проверка значения выражения под функцией tg и формирования признака ошибки, если оно имеет отрицательный знак

·        вывод результатов вычислений

Теоретические сведения

Определённый интеграл - аддитивный монотонный нормированный функционал, заданный на множестве пар, первая компонента которых есть интегрируемая функция или функционал, а вторая - область во множестве задания этой функции (функционала).


Нахождение значения интеграла:

.                                                                                            Нахождение первообразной функции;

2.      Нахождения значений первообразной от нижней и верхней границы интегрирования;

3.                                                                                          Вычитание значения первообразной от нижней границы интегрирования из значения первообразной от верхней границы.

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

.

Если разбить интервал интегрирования на 2N равных частей, то имеем

где.

Схемы алгоритмов

В соответствии с принципами структурного программирования каждый функционально законченный фрагмент программы оформлен в виде подпрограммы. В результате программа включает главную программу и набор подпрограмм, предназначенных соответственно для ввода массива (InpX), табулирования функции (Vych), вычисления интеграла (integral), вывода результатов выполнения программы (OutP).

Схема алгоритма главной программы представлена на рис.2, а таблица обозначения переменных главной программы- в табл. 1.

Главная программа начинается с ввода значений входных данных: сначала - простых переменных, а затем- массива X с помощью подпрограммы- процедуры (InpX).

Обозначение в задании

Обозначение в алгоритме

 Наименование

M

M

Количество элементов массива аргумента Х, целый тип

An

An

Начальное значение параметра А, вещественный тип

Da

Da

Шаг изменения параметра А, вещественный тип

N

N

Количество изменений параметра А, вещественный тип

X

Массив значений аргумента Х, вещественный тип

B

B

Параметр функции, вещественный тип

Y

Y

Функция, вещественный тип


My

Массив значений параметра, вещественный тип


Er

Массив признака ошибки, целый тип

C,D

C,D

Границы интеграла, вещественный тип

ξ

Eps

Заданная погрешность вычисления корня, вещественный тип


Xn

Начальное приближение корня, вещественный тип


Km

Предельное число повторений цикла, целый тип


Err

Признак ошибки при решении интеграла, целый тип


I,J

Счетчики циклов, целый тип



Схема алгоритма главной программы. Вычисление интеграла производится путем вызова процедуры integral, формирующей также признак ошибки в случае, если корень не найден за предельно допустимое число итераций Km. При Err=1 выводятся диагностическое сообщение, иначе происходит табулирование функции (ПП Vych) и вывод результатов выполнения программы (ПП Outp). Значение eps определяет погрешность корня.

Подпрограмма − процедура ввода Inpx реализуется циклом, который завершается при наполнении всех указанных ячеек массива. В данном цикле реализуется заполнение массива X.


Список формальных параметров:M,X

Входные параметры: M

M- количество ячеек массива; вещественный тип

Выходные параметры: Х

Х- массив аргумента Х; вещественный тип

Подпрограмма-функция F предназначена для вычисления значения подынтегральной функции.

Список формальных параметров: x.

Входные данные:

1.                                                                                          x - аргумент функции, тип - вещественный.

Подпрограмма-процедура решения интеграла, Integral, реализуется методом Симпсона, состоящего из цикла, делящегося на две ветви для нахождения решения.

Подпрограмма-процедура Integral предназначена для вычисления численного значения интеграла.

Список формальных параметров: C, D, Z, Eps, Km, Err.

Входные данные:

1.                                                                 C - нижняя граница интегрирования, тип - вещественный;

2.      D - верхняя граница интегрирования, тип - вещественный;

3.      Eps - погрешность вычисления интеграла, тип - вещественный;

4.      Km - предельное число повторений цикла, тип - целый.

Выходные данные:

1.                                                                                          Z - численное значение интеграла, тип - вещественный;

Err - признак ошибки при вычислении интеграла, тип - целый.

Подпрограмма-процедура для вычисления значения функции vych, реализуется двойным циклом для вывода двумерного массива результатов y и других данных.

Подпрограмма-процедура vych для вычисления значения переменной y для всех возможных случаев

Список формальных параметров: y,x,an,da,n,m

Входные параметры: x,an,da,n,m

x- массив аргументов X; вещественный тип

an- начальное значение параметра а; вещественный тип

da- размер “шага” изменения параметра а; вещественный тип

n- количество “шагов” изменений параметра а; целый тип

m- количество ячеек массива x ; вещественный тип

Выходные параметры: y

y- двумерный массив аргументов y; вещественный тип

Er- массив ошибок; бинарный тип

Подпрограмма-процедура outp, предназначенная для вывода результатов расчета программы по средствам применения двойного цикла.

Список формальных параметров: x,y,b,er,an,da,n,m

Входные параметры: x,y,b,er,an,da,n,m

x- массив аргументов X; вещественный тип

y- двумерный массив аргументов y; вещественный тип

b- корень логарифмического уравнения;

an- начальное значение параметра а; вещественный тип

da- размер “шага” изменения параметра а; вещественный тип

n- количество “шагов” изменений параметра а; целый тип

m- количество ячеек массива x ; вещественный тип

 


Набор тестов

алгоритм интеграл подпрограмма тест

Для проверки правильности алгоритмов составим тесты для возможных путей вычислений и выполним контрольные просчеты, пользуясь независимыми от Pascal-среды вычислительными средствами - калькулятор.

Тест 1. Проверка ветви, работающей при правильном вводе данных

Входные данные: M=1; An=2; N=1; Da=0; d=0.57;c=2.36;eps=0.1;km=10;X[1]=3

Результаты: y= -115.03

b= 5.708

Тест 2. Проверка действий программы при вводе значений, приводящих к ошибке вычислений

Входные данные: М=2; An=1.4; N=3; Da=2; d=0.57; c=2.36; eps=0.1;km=10; x[1]=2.5; x[2]=0

Результат: Ошибка при х=2.5

Тест 3. Проверка действий программы при вводе множества Х.

Входные данные: М=4; An=2.3; N=4; Da=0.3; d=0.57; c=2.36; eps=0.1; km=10 x[1]=3; x[2]=4; x[3]=3; x[4]=4

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

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, Grids, jpeg, ExtCtrls, TeEngine, Series, TeeProcs,

Chart, XPMan;= class(TForm)

mmo1: TMemo;: TEdit;: TEdit;: TEdit;: TButton;: TEdit;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TChart;: TLineSeries;: TStringGrid;: TXPManifest;: TEdit;

edt6: TEdit;

edt7: TEdit;: TEdit;: TLabel;

lbl10: TLabel;: TLabel;: TLabel;

procedure edt4KeyPress(Sender: TObject; var Key: Char);Button1Click(Sender: TObject);FormCreate(Sender: TObject);:array [0..40] of Real;:array [0..40,0..40] of Real;,da:Real;:integer;

{ Private declarations }

{ Public declarations };

var: TForm1;

{$R *.dfm}

function f(x:real):Real;:=sqr(sqrt(x)+1)*exp(3*x*(ln(exp(1))))/exp(6*ln(x));;

procedure Integral(C,D,Eps:real; Km:integer; var Z:real; var Err:integer);

var H,W,Z0:real;,j,K:integer;:=1;:=2;:=1;:=0;j<Km do begin:=F(C)+F(D);

H:=(D-C)/K;i:=1 to K-1 do If Odd(i) Then Z:=Z+4*F(C+i*H)Z:=Z+2*F(C+i*H);:=Z*H/3;:=Abs(Z0-Z);w<Eps Then begin

Err:=Err-1;:=Km;begin

Z0:=Z;:=j+1;:=K*2;;;

end;TForm1.edt4KeyPress(Sender: TObject; var Key: Char);:Integer;Key=#13 then.ColCount:=StrToInt(edt4.Text)+1;i:=1 to StringGrid1.ColCount do.Cells[i,0]:='X'+IntToStr(i);;TForm1.Button1Click(Sender: TObject);

var,j:integer;:Real;

ter:real;,d,eps:Extended;

km:integer;:integer;:Real;

begin:=StrToFloat(edt1.Text);

da:=StrToFloat(edt3.Text);:=StrToInt(Edt2.Text);

c:=StrToFloat(edt5.Text);:=StrToFloat(edt6.Text);:=StrToInt(edt8.Text);:=StrToFloat(edt7.Text);(C,D,Eps,Km,Z,Err);('B='+FloatTOStr(z));:=a;.Series[0].Clear;.RowCount:=n+2;i:=1 to StringGrid1.ColCount-1 do[i]:=StrToFloat(StringGrid1.Cells[i,1]);I:=1 to n+1 do.Cells[0,i+1]:=FloatToStr(aa);j:=1 to StringGrid1.ColCount-1 do(cos(pi*m[j]/5)=0) then

begin.Lines.Add('Ошибка деления на 0');

StringGrid1.Cells[i,j+1]:='Ошибка деления на 0';

end[i,j]:=aa*z*(sin((pi*m[j]/5))/cos((pi*m[j]/5))+2*aa*cos(m[j]/2*m[j]));

mmo1.Lines.Add('x= '+ FloatToStr(m[j])+ ' : ' + 'y= '+floattostr(y[i,j]));

StringGrid1.Cells[j,i+1]:=FloatToStr(y[i,j]);.Series[0].AddXY(m[j],y[i,j]);:=aa+da;;;TForm1.FormCreate(Sender: TObject);.Text:='';.ColCount:=2;.Cells[1,0]:='1';.Cells[0,1]:=' a/x';

end;.

Список использованной литературы

1.      Кошелькова Л.В., Заковряшин А.И. Решение алгебраических задач численными методами в среде DELPHI: Учебное пособие к расчётной работе. - М.: Изд-во МАИ-ПРИНТ, 2008. - 88 с.: ил.

.        http://ru.wikipedia.org - свободная общедоступная мультиязычная универсальная интернет-энциклопедия.

Похожие работы на - Разработка алгоритмов и программ решения алгебраических задач численными методами

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!