Суммирование рядов
Курсовая работа, 22 Января 2013, автор: пользователь скрыл имя
Описание работы
Решение математических задач с помощью вычислительной техники очень распространено в наше время. Для вычисления часто используются основные элементарные функции, такие как синус, косинус, тангенс, и т.д.
Однако алгоритмы нахождения функций скрыты от пользователя.
В данной программе описан алгоритм для нахождения функции Arctg реализованый через ряды Тейлора.
Содержание работы
1. Введение 3
2. Постановка задачи 4
3. Руководство пользователя 5
4. Руководство программиста 6
5. Заключение 8
6. Литература 8
7. Приложение 8
Файлы: 1 файл
Otchet.docx
— 78.33 Кб (Скачать файл)Министерство образования и науки Российской Федерации
Федеральное государственное бюджетное
образовательное
учреждение высшего профессионального
образования
Нижегородский государственный университет им. Н.И. Лобачевского
Факультет вычислительной математики и кибернетики
Отчет по лабораторной работе №1
Суммирование рядов
Выполнил: студент группы 8101
_______________ Артемов К.С.
Подпись
Научный руководитель:
Доцент кафедры МО ЭВМ
________________ Баркалов А.В.
Подпись
Нижний Новгород
2012
Содержание
Содержание
- Введение 3
- Постановка задачи 4
- Руководство пользователя 5
- Руководство программиста 6
- Заключение 8
- Литература 8
- Приложение 8
Введение
Решение математических задач с помощью вычислительной техники очень распространено в наше время. Для вычисления часто используются основные элементарные функции, такие как синус, косинус, тангенс, и т.д.
Однако алгоритмы нахождения функций скрыты от пользователя.
В данной программе описан алгоритм для нахождения функции Arctg реализованый через ряды Тейлора.
Постановка задачи
Требуется разработать программу, позволяющую выполнять расчёт значений для некоторого набора функций в заданной точке с вычислением погрешности за счёт разложения этих функций в ряд Тейлора.
Программа должна:
Расчет оценки значения выбранной функции выполняется до исчерпания введенного числа слагаемых. По результатам расчета программа должна вывести следующую информацию:
Аргумент, Значение
функции, Идеальное Значение Функции
(полученное с использованием встроенных
математических функций Pascal) и разница
значений между идеальным значением и
значением функции.
Руководство пользователя
- Запустите файл Asdsad.exe
- На экране появиться надпись:
Нужно ввезти начальные значения аргумента, если модуль этого значения будет больше 1 то программа выдаст ошибку и запросит выполнить действие заного.
Аналогичные действия происходят при вводе конечного аргумента.
После чего . Программа выведет сводную таблицу, где будет показаны аргумент функции её значение, эталоное значение, разница значений..
Руководство программиста
Описание структуры программы
Программа состоит из 1 дополнительных модуля, а также одной функции. Ниже приведен список используемого модуля и процедуры и их описание.
Модули:
- Myfunc – используется для вычисления арктангенса через ряд Тейлора
- Math – используется для вычислений гиперболических функций посредством Паскаля.
Описание структур данных
type
index=1..nPoint;
vector=array[index] of real;
const
nPoint=10; количество точек
var
a,b,h:real; //граница области уменшения аргумента и шаг
i,n:integer; количество слагаемых
diference,arg,func:vector; разница значений, аргумент, функция
x:double;
Описание алгоритмов
Алгоритмы для вычисления
функций, реализованных в программе,
расположены в отдельном
Обозначение: <…> - здесь необходимо вставить название функции.
Арктангенс :
Вводим значение аргумента функции присваиваем его к переменным и высчитываем первоначальное значение функции
x:=arg;
d:=x;
S:=x;
for k := 2 to n do
begin
d:=(-1)*d*x*x;
c:=d/(2*k-1);
s:=s+c;
result:=s;
Далее высчитываем шаг функции h:=(b-a)/(nPoint-1);
И присваиваем значения каждому элементу массива
arg[i]:=a+(i-1)*h;
func[i]:=MyFunc(arg[i]);
Diference[i]:=abs(arctan(arg[
Заключение
В результате работы была написана программа, позволяющая вычислить значения функции арктангенс без помощи встроенных.
По ходу исследования
было выяснено, что значения арктангеса
вычисляемые при помощи разложения рядов
Тейлора не так уж далеки от «идеала»
.
Литература
- Грызлов В.И., Грызлова Т.П. «Турбо Паскаль 7.0.» - М.: ДМК, 1998. - 400 с., ил.
- Лекции по курсу «Методы программирования» на факультете ВМК ННГУ им. Лобачевского за 1 семестр.
- Кетков Ю.Л, Кетков А.Ю. «Свободное программное обеспечение. FREE PASCAL для студентов и школьников» - БХВ-ПЕТЕРБУРГ: - 2011, - 376 с.,
Приложение. Фрагменты исходного кода программы
program asdsad;
{$APPTYPE CONSOLE}
uses
SysUtils,
Math;
const
nPoint=10;
type
index=1..nPoint;
vector=array[index] of real;
var
a,b,h:real;
i,n:integer;
diference,arg,func:vector;
x:double;
function Myfunc(arg:real):real;
var s,d,c:real;
k:integer;
begin
x:=arg;
d:=x;
S:=x;
for k := 2 to n do
begin
d:=(-1)*d*x*x;
c:=d/(2*k-1);
s:=s+c;
result:=s;
end;
end;
begin
writeln('Enter the calculate argument at the start of the function');
readln(a);
while (a <=-1) or (a >= 1) do
begin
writeln('Input Error. Please, Try again.');
readln(a);
end;
writeln ('enter the argument at the end of the function');
readln(b);
while (b < -1) or (b >= 1) do
begin
writeln('Input Error. Please, Try again.');
readln(b);
end;
writeln('---------------------
writeln('| Step | Value |Ideal Value |Difference| ');
writeln('---------------------
for i := 1 to nPoint do
begin
n:=10;
h:=(b-a)/(nPoint-1);
arg[i]:=a+(i-1)*h;
func[i]:=MyFunc(arg[i]);
Diference[i]:=abs(arctan(arg[
end;
for i := 1 to nPoint do
begin
writeln('| ',arg[i]:4:4,' | ',func[i]:4:8,' |',arctan(arg[i]):4:8,' |',Diference[i]:4:8,'|');
writeln('---------------------
end;
readln;
end.