скачать рефераты
  RSS    

Меню

Быстрый поиск

скачать рефераты

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

если (a = 0) то

вывод

number: =0;

иначе

выполнять

i: =1; если (a*ln(b*m) *(-a/sqr(m))) > 0 то

mass [i]: =m;

code_of: =1;

иначе

Рисунок 5.4 – Алгоритм решения уравнения вида y(x) =a×ln(b×x)


если (a*ln(b*n) *(-a/sqr(n))) > 0 то

mass [i]: =n;

code_of: =1;

иначе

вывод

number: =0; code_of: =0;

если (code_of = 1) то

выполнять

x1: =mass [i] -a*ln(b*mass [i]) /

(a/mass [i]);

root: =Abs (x1-mass [i]);

i: =i+1;

mass [i]: =x1;

пока (root < E);

если (x1 < m) или (x1 > n) то

вывод

number: =0; code_of: =0;

вывод

Рисунок 5.4 – Алгоритм решения уравнения вида y(x) =a×ln(b×x) (продолжение)


5.7.2. Алгоритм нахождения корня уравнения y(x) =a×x2+b×x+c

Алгоритм решения уравнения вида y(x) =a×x2+b×x+c приводится на рисунке 5.5.

выполнять


ввод

если (a = 0) и (b = 0) и (c = 0) то

вывод

number: =0;

иначе

выполнять

i: =1;

если (a*sqr(m) +b*m+c) *(2*a) >= 0 то

mass [i]: =m;

code_of: =1;

иначе

Рисунок 5.5 – Алгоритм решения уравнения вида y(x) =a×x2+b×x+c


если (a*sqr(n) +b*n+c) *(2*a) >= 0 то

mass [i]: =n;

code_of: =1;

иначе

вывод

number: =0; code_of: =0;

если (code_of = 1) то

выполнять

x1: =mass [i] -((a*sqr(mass [i]) +

b*mass [i] +c) /(2*a*mass [i] +b));

root: =Abs (x1-mass [i]);

i: =i+1;

mass [i]: =x1;

пока (root < E);

если (x1 < m) или (x1 > n) то

вывод

number: =0; code_of: =0;

вывод

Рисунок 5.5 – Алгоритм решения уравнения вида y(x) =a×x2+b×x+c (продолжение)

Алгоритмы решения уравнений рис.5.4 и рис.5.5 соответствуют procedure equation_1 и procedure equation_2 в программе соответственно.


6. КОМПЛЕКТАЦИЯ И ЗАГРУЗКА ПРОГРАММЫ

6.1. Комплектация

Папка my_stuff, в которой содержится:

– RUOP. exe – основной файл программы;

– help. asc – файл с методологической информацией;

– m_n. txt – файл, содержащий значения промежутков m и n;

– a_b_c. txt – файл, содержащий значения параметров a, b, c;

– E. txt – файл, содержащий значение погрешности E;

– egavga. bgi – файл для работы с графикой;

– keyrus. com – файл для работы с русским языком;

– trip. chr – файл, содержащий русский шрифт.

6.2. Порядок инсталляции и запуск программы

Требуется скопировать папку my_stuff с содержащимися в ней файлами в папку “c: \temp\”. Для запуска программы необходимо запустить файл RUOP. exe, расположенный в папке my_stuff.

При копировании программы в иную папку, невозможными становятся работа "Справки" загрузка и автоматическое сохранение информации в файлы.


7. ТЕСТОВЫЕ ПРИМЕРЫ

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

Тестовые примеры для решения уравнения вида y(x) =a*ln(b*x) приводятся в таблице 6.1.

Таблица 7.1. Тестовые примеры для уравнения вида y(x) =a*ln(b*x)

m n a b E Результат
1 10 1 0.5 0.01 2
-20 -0.01 9 -2 0.01 -0.2
9 14 100 1 0.01 Уравнение не имеет корней

Тестовые примеры для решения уравнения вида y(x) =a*x^2+b*x+c приводятся в таблице 6.2.

Таблица 7.2. Тестовые примеры для уравнения вида y(x) =a*x^2+b*x+c

m n a b c E Результат
-10 10 5 29 3 0.01 -0.1054
-10 10 0 4 10 0.01 -2.5
5 20 5 29 4 0.01 Уравнение не имеет

При введении в программу данных, не отвечающих требованиям типу, будет появляться сообщение "Ошибка ввода", пока не будут введены правильные данные, соответствующие требованиям программы.

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

При введении в программу данных, отвечающих требованиям, будут появляться сопроводительные сообщения (советы) по дальнейшим вариантам продолжения.

Если уравнение имеет корень, то построение графика и сохранение данных, результатов становится возможным.


ВЫВОДЫ

В процессе создания была написана программа, осуществляющая решение уравнения с одной переменной методом Ньютона (касательных). Программа способна решать два вида уравнений, а также выстраивать график по вводимым данным.

В программе реализована работа с графикой и с файлами, имеет интуитивно понятный интерфейс, реализована возможность справки.

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

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

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


ПЕРЕЧЕНЬ ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ

1. Фаронов В.В. "Turbo Pascal 7.0. Начальный курс": учебное пособие. – М.: Кнорус, 2006. – 576 с.

2. Сухарёв М. Turbo Pascal 7.0. Теория и практика программирования. – СПб: "Наука и техника", 2003. – 576 с.

3. Методические указания по оформлению студенческих работ для студентов специальностей 080403 "Программное обеспечение автоматизированных систем", 080404 "Интеллектуальные системы принятия решений", 050103 "Экономическая кибернетика"; Утверждено на заседании учёного совета ДонГИИИ протокол № 7 от 23.02. 2004 г. – Донецк: ДонГИИИ, 2004, 46 с.


Приложение А

ТЕХНИЧЕСКОЕ ЗАДАНИЕ

А.1 Общие сведения

Полное название программного продукта: "Численные методы. Решение уравнений с одной переменной методом Ньютона (касательных)". Её условное обозначение РУОП. Работа выполняется студентом 1-го курса Донецкого государственного института искусственного интеллекта (ДонГИИИ), факультета СКИТ, группы СУА-05, Николаевым Алексеем Сергеевичем.

Основанием для разработки РУОП является задание, выданное кафедрой Программного обеспечения интеллектуальных систем (ПОИС).

Плановый срок начала работы: 17 февраля 2006 года.

Дата защиты работы: 22 мая 2006 года.

А.2 Назначения и цели создания программы

Данная программа создана как учебное пособие для студентов высших учебных заведений и для учащихся математических классов среднеобразовательных школ. Позволяет решать уравнения вида y(x) =a×ln(b×x) и y(x) =ax2+bx+c методом Ньютона (касательных).

А.3 Требования к программному продукту

А.3.1. Общие требования

Программа должна выполнять следующие требования:

1) решать два вида уравнений: y(x) =a×ln(b×x) и y(x) =ax2+bx+c методом Ньютона (касательных);

2) поддержку графического меню, состоящего из пяти пунктов:

– помощь и справочная информация;

– y(x) =a×ln(b×x);

– y(x) =a×x^2+b×x+c;

– построение графика;

– выход;

3) по вводимым значениям промежутков уравнения и по вводимым значениям коэффициентов уравнения:

– вычислять корень уравнения в зависимости от вводимых данных;

– выстраивать график уравнения, отмечая, на оси абсцисс, промежуточные корни уравнения, выводить значение корня уравнения.

А.3.2. Функциональные требования

Для реализации программного продукта необходимо разработать:

1) поддержку файлов, предоставление возможности решать пользователю самому, вводить начальные данные из файла или с клавиатуры, необходимость сохранения данных и полученных результатов в файлы;

2) систему справочной информации по реализуемому в РУОП методу Ньютона.

А.3.2. Требования к техническому обеспечению

Рекомендуемые характеристики аппаратных средств:

– КПУ: i486;

– ОЗУ: 4 мб;

– видеоадаптер VGA, EGA;

– монитор: VGA, EGA;

– клавиатура;

– свободное дисковое пространство – около 100 килобайт.

А.3.3. Требования к программному обеспечению

Для успешной загрузки программы требуется наличие операционной системы MS DOS 6.0.

А.3.5. Требования к организационному обеспечению

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


Приложение Б

РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ

Главное меню появляется после титульного листа. Меню состоит из пяти пунктов. Скроллинг осуществляется клавишами "z" и "x". Вход в подменю осуществляется клавишей "Enter".

В пункте "Справка" содержится методологическая информация по методу Ньютона.

В пункте "y(x) =a*ln(b*x)" осуществляется решение уравнения y(x) =a*ln(b*x) по вводимым параметрам, промежуткам и погрешности. В пункте осуществляется загрузка данных из файлов и сохранение данных в файлы по желанию пользователя.

В пункте "y(x) =a*x^2+b*x+c" осуществляется решение уравнения y(x) =a*x^2+b*x+c по вводимым параметрам, промежуткам и погрешности. В пункте осуществляется загрузка данных из файлов и сохранение данных в файлы по желанию пользователя.

В пункте "Построение графика" осуществляется построение графика по вводимым в уравнение данным.

В пункте "Выход" осуществляет выход из программы.


Приложение В

ЭКРАННЫЕ ФОРМЫ

Рисунок В.1 – Заставка, титульная страница

Рисунок В.2 – Меню

Рисунок В.3 – Общий вид окна "y(x) =a*ln(b*x)"

Рисунок В.4 – Общий вид окна "y(x) =a*x^2+b*x+c"

Рисунок В.5 – График функции y(x) =1*ln(0.5*x) на промежутке [1; 10]

Рисунок В.6 – График функции y(x) =5*sqr(x) +29*x+3 на промежутке [-10; 10]


Приложение Г

ЛИСТИНГ ПРОГРАММЫ

program Restorant;

uses CRT, Graph;

var a, b, c, m, n: real;

number, i: byte;

mass: array [1. . 20] of real;

{***************************************************************************}

procedure title;

begin

textcolor(2);

writeln (' Министерство образования Украины');

writeln (' Донецкий государственный институт искусственного интеллекта');

writeln;

writeln (' Кафедра ПОИС');

writeln;

writeln;

writeln (' Курсовая работа');

writeln (' По курсу "АЯ и П"');

writeln (' На тему: "Решение нелинейных уравнений методом Ньютона');

writeln (' (методом секущих)" ');

writeln;

writeln;

writeln (' Выполнил: ');

writeln (' Студент группы СУА-05');

writeln (' Николаев А.С. ');

writeln (' Проверил: ');

writeln (' cт. преп. кафедры ПОИС');

writeln (' Бычкова Е.В. ');

writeln (' асс. кафедры ПОИС');

writeln (' Волченко E. B. ');

writeln;

writeln (' 2005');

writeln;

writeln;

textcolor (red);

writeln ('Нажмите "Ввод" для продолжения"');

textcolor (lightgray); Readln;

end;

{***************************************************************************}

procedure pro; FORWARD;

{***************************************************************************}

procedure graphica;

var d, r, e: integer;

begin

d: =detect;

InitGraph (d, r, '');

e: =GraphResult;

if e <> grOK then WriteLn (GraphErrorMsg (e)) else pro;

end;

{***************************************************************************}

procedure setka (yn: integer; y2: real);

var x, y, cross, dcross: integer;

lx, ly, dlx, dly: real;

st: string;

begin

If abs (m) < abs (n) then

dlx: =Abs (n/6.25) else dlx: =Abs (m/6.25);

dly: =y2/((yn-110) /40);

dcross: =0;

lx: =6*dlx;

SetColor (LightGray);

For cross: = 1 to 7 do

begin

Str (lx: 0: 1, st);

If lx >=0 then

OutTextXY (535-dcross, yn+7, st) else

OutTextXY (525-dcross, yn+7, st);

lx: =lx-2*dlx;

dcross: =dcross+80;

end;

x: =80;

Repeat

SetLineStyle (DottedLn, 0, NormWidth);

Line (x, yn-3, x, 110); Line (x, yn+3, x, 360);

SetLineStyle (SolidLn, 0, NormWidth);

Line (x, yn-3, x, yn+3);

x: =x+40;

Until x = 600;

ly: =0;

y: =yn;

Repeat

If ly > 0 then

begin

Line (317, y, 323, y);

Str (ly: 0: 1, st);

OutTextXY (295, y+7, st);

end;

ly: =ly+dly;

SetLineStyle (DottedLn, 0, NormWidth);

Line (323, y, 570, y); Line (70, y, 317, y);

SetLineStyle (SolidLn, 0, NormWidth);

y: =y-40;

Until (y < 110);

ly: =0;

y: =yn;

Repeat

If ly < 0 then

begin

Line (317, y, 323, y);

Str (ly: 0: 1, st);

OutTextXY (285, y+7, st);

end;

ly: =ly-dly;

SetLineStyle (DottedLn, 0, NormWidth);

Line (323, y, 570, y); Line (70, y, 317, y);

SetLineStyle (SolidLn, 0, NormWidth);

y: =y+40;

Until (y > 360);

end;

{***************************************************************************}

{***************************************************************************}

procedure groffunc;

var l, y0: integer;

y1, y2, x, y, mx, my: real;

gr, grand: string;

{***************************************************************************}

function f (x: real): real;

begin

Case number of

1: f: =a*ln(b*x);

2: f: =a*sqr(x) +b*x+c;

end;

end;

{***************************************************************************}

Страницы: 1, 2, 3


Новости

Быстрый поиск

Группа вКонтакте: новости

Пока нет

Новости в Twitter и Facebook

  скачать рефераты              скачать рефераты

Новости

скачать рефераты

© 2010.