Автор: Пользователь скрыл имя, 30 Октября 2012 в 16:21, курсовая работа
Разработанный программно-методический комплекс содержит математическое описание, алгоритм и программу расчёта методом хорд и касательных. Программа написана на языке Бейсик. Исходные данные вводятся с клавиатуры.
Общие сведения
Функциональное назначение
Используемые технические и программные средства
Входные и выходные данные
Программа на QBasic
Операторы QBasic
Список используемой литературы
abs(dy2/(2*dx))<eps - формула для оценки погрешности
дифференцирования,
proizv:=dy/dx – значение первой производной.
Для оценки точности вычисления корня необходимо вычислять наименьшее значение производной f'(x) на промежутке [a, b], поэтому надо найти производную в точке x0.
Так как мы вычислили значение производной, то составим процедуру определения модуля ее наименьшего значения на промежутке [a, b]:
Procedure minimum(a,b,eps:real;var min:real);
Для этого достаточно сравнить модуль значения производной на концах промежутка и выбрать среди этих двух значений меньшее. Это можно сделать , так как по условию, функция на промежутке строго монотонна вместе со своими производными первого и второго порядков. Следует брать значение очень близкое к a, но справа от нее, аналогично для точки b - брать близкое значение слева от b, так как если в точке a или b производная будет равна нулю, тогда деление на нуль станет невозможным и в программе будет получена ошибка.
Здесь min:=abs(proizv(a,eps))- модуль значения производной функции в начале отрезка,
d:=abs(proizv(b,eps))- модуль значения производной функции в конце отрезка,
If min>d Then – сравнение значений модуля производной.
Функция для указания точности вычисления:
Function utoch(eps:real):integer;
Применяется в выводе корня x для уточнения его порядка относительно погрешности.
Здесь k:=k+1 – оператор, подсчитывающий степень погрешности и порядка корня x.
Заданную функцию запишем так:
Function fx(x:real):real;
Здесь fx:=exp(x)-10*x – наша заданная функция.
Блок-схема алгоритма.
Функциональное назначение
Программа
предназначена для расчета n-
Используемые технические
Для работы программы требуется любой IBM совместимый компьютер, видео адаптор VGA, печатающее устройство. Операционная система MS DOS, драйвер для поддержки русских букв и среда программирования QuickBASIC версии 4.0 и выше.
Входные и выходные данные
Входными данными для расчета являются:
-уравнение
Результатами расчета являются:
-n – значений
Программа на QBasic
CLS
INPUT "interval"; c, d
FOR i = c TO d
y = i ^ 3 - .2 * i ^ 2 + .5 * i + 1.4
PRINT "__________________"
PRINT "x="; i; "|"; "y="; y
IF y * y0 <= 0 AND i <> a THEN k = k + 1
y0 = y
NEXT i
PRINT " Kol-vo korney:"; k
FOR i = c TO d
y = i ^ 3 - .2 * i ^ 2 + .5 * i + 1.4
IF y * y0 <= 0 AND i <> c THEN
a = i - 1
b = i
DO
IF (a ^ 3 - .2 * a ^ 2 + .5 * a + 1.4) * (6 * a - .4) > 0 THEN
l = a - (a ^ 3 - .2 * a ^ 2 + .5 * a + 1.4) / (3 * a ^ 2 - .4 * a +
.5)
p = b - (b ^ 3 - .2 * b ^ 2 + .5 * b + 1.4) * (b - a) / ((b ^ 3 - .2
* b ^ 2 + .5 * b + 1.4) - (a ^ 3 - .2 * a ^ 2 + .5 * a + 1.4))
END IF
IF (b ^ 3 - .2 * b ^ 2 + .5 * b + 1.4) * (6 * b - .4) > 0 THEN
l = a - (a ^ 3 - .2 * a ^ 2 + .5 * a + 1.4) * (b - a) / ((b ^ 3 - .2
* b ^ 2 + .5 * b + 1.4) - (a ^ 3 - .2 * a ^ 2 + .5 * a + 1.4))
p = a - (b ^ 3 - .2 * b ^ 2 + .5 * b + 1.4) / (3 * b ^ 2 - .4 * b +
.5)
END IF
a = l
b = p
LOOP UNTIL b - a < .00001
x = (a + b) / 2
PRINT "koren: x="; x
END IF
y0 = y
NEXT i
END
Вот текст программы:
Вот продолжение текста программы:
Вот доказательство, что она работает.
Операторы QBasic
Оператор очистки экрана - CLS
Назначение: Оператор CLS предназначен для стирания содержимого экрана. Синтаксис: CLS [ { 0 | 1 | 2 } ]
Используются 4 разновидности оператора CLS:
CLS - стирается либо текстовая, либо графическая информация, в зависимости от предшествующего применения оператора VIEW.
CLS 0 - с экрана стирается как текстовая, так и графическая информация.
CLS 1 - если ранее был применен оператор VIEW, стирается только графическая информация. В противном случае очищается весь экран.
CLS 2 - стирается только текстовая информация, за исключением нижней строки экрана (строки номер 25, 30, 43 или 60 в зависимости от формата экрана).
Оператор условного перехода - IF...THEN...ELSE
Назначение: Позволяет передавать управление программой в зависимости от результата проверки условия. Имеет две разновидности.
Синтаксис: Первая форма представляет собой оператор, записываемый в одну строку:
IF <условие> THEN <выражение 1> [ELSE <выражение 2>]
<условие> Логическое
выражение, принимающее
<выражение 1> Вычисляется, если условие принимает значение TRUE, и пропускается в противном случае;
<выражение 2> Вычисляется, если условие принимает значение FALSE.
Если ELSE-часть отсутствует, а <условие> имеет значение FALSE, управление передается следующему оператору. Выражения имеют следующий синтаксис:
[<операторы>] [GOTO] <номер строки> | GOTO <метка>)
Вторая (блоковая) форма оператора условного перехода имеет вид:
IF <условие 1> THEN
[<блок 1>]
[ELSE IF <условие 2> THEN
[<блок 2>] ]
…
[ELSE
[<блок N>] ]
END IF
<условие 1> Логическое выражение, принимающее значение TRUE (ненулевое) или FALSE (нулевое)
(I = 1...N)
<блок 1> Последовательность операторов, занимающих одну или несколько строк (1 = 1...N).
Оператор цикла FOR … NEXT
Назначение: Применяется для циклического выполнения определенной группы операторов заданное число раз.
Синтаксис: FOR <счетчик> = <начальное значение> ТО <конечное значение> [STEP <приращение>]
NEXT [<счетчик 1>[, <счетчик 2>...]
Аргумент Описание
<счетчик> Внутренняя числовая
переменная счетчика циклов. Переменная
не может быть элементом
<начальное значение> Начальное значение счетчика циклов
<конечное значение> Конечное значение счетчика циклов
<приращение> Приращение счетчика циклов; может иметь отрицательное значение.
Оператор вывода данных на терминал - PRINT
Назначение: Вывод данных на экран.
Синтаксис: PRINT [<список выражений>][{, ;}]
Если аргумент <список выражений> опущен, то на экран выводится пустая строка. При наличии <списка выражений> значения выражений выводятся на экран. Выражения в списке могут быть числовыми или строковыми. Строковые константы должны быть заключены в кавычки. За выводимыми числами всегда следует пробел; положительным числам всегда предшествует пробел, а отрицательным - знак минус.
Оператор цикла - DO...LOOP
Назначение: Оператор обеспечивает циклическое выполнение группы операторов, пока <условие> в конструкции WHILE истинно (TRUE) или до тех пор, пока <условие> в конструкции UNTIL не станет истинным. Имеет две разновидности, в зависимости от того, проверяются ли условия в начале или конце цикла.
Синтаксис:
1. DO
<блок операторов>]
LOOP [[WHILE [ UNTIL) <условие>]
2. DO [(WHILE | UNTIL) <условие>1
[<блок операторов>]
LOOP
Аргумент Описание
<блок операторов> Один или
несколько операторов языка
<условие> Любое выражение, принимающее значение либо TRUE (не нуль), либо FALSE (нуль).
Оператор ввода данных с клавиатуры - INPUT
Назначение: Создает условия для ввода данных с клавиатуры в процессе выполнения программы.
Синтаксис: INPUT[;]["<строка приглашения>"[; | ,]]<список переменных> Аргумент Описание
; Точка с запятой после ключевого слова INPUT предписывает курсору оставаться на той же самой строке после нажатия клавиши ENTER
<строка приглашения>
; Точка с запятой после строки приглашения выводит на экран вопросительный знак.
, Запятая отменяет вывод вопросительного знака после строки приглашения
<список переменных> Список разделенных запятыми переменных, которым присваиваются вводимые значения.
Список используемой литературы:
1. Вычислительная математика: Учеб. пособие для техникумов /Данилина Н.И., Дубровская Н.С., Кваша О.П., Смирнов Г.Л. - М.: Высш.шк., 1985. - 472 с.
2. Введение в программирование на языке Microsoft BASIC: Учебное пособие / Ю.Я.Максимов, С.В.Осипов, А.В.Потемкин, Щ.С.Симоненков, А.В.Шалашов; Под ред. В.Г.Потемкина. - М.: "Диалог-МИФИ",1991. - 176 с.
3. http://ru.wikipedia.org/wiki/
Информация о работе Решение алгебраических уравнений методом касательных и хорд на QBasic