|
Разработка программного обеспечения для решения уравнений с одной переменной методом Ньютона (касательных) |
сли (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; begintextcolor(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; begind: =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; beginIf abs (m) < abs (n) thendlx: =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 dobeginStr (lx: 0: 1, st); If lx >=0 thenOutTextXY (535-dcross, yn+7, st) elseOutTextXY (525-dcross, yn+7, st); lx: =lx-2*dlx; dcross: =dcross+80; end; x: =80; RepeatSetLineStyle (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; RepeatIf ly > 0 thenbeginLine (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);
Страницы: 1, 2, 3
|
|
|
© 2003-2013
Рефераты бесплатно, курсовые, рефераты биология, большая бибилиотека рефератов, дипломы, научные работы, рефераты право, рефераты, рефераты скачать, рефераты литература, курсовые работы, реферат, доклады, рефераты медицина, рефераты на тему, сочинения, реферат бесплатно, рефераты авиация, рефераты психология, рефераты математика, рефераты кулинария, рефераты логистика, рефераты анатомия, рефераты маркетинг, рефераты релиния, рефераты социология, рефераты менеджемент. |
|
|