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

Меню

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

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

скачать рефератыКурсовая работа: Средства языка программирования Паскаль для решения математических задач

 WRITELN('C должно быть меньше 1!. Повторите ввод.');

 END;

 UNTIL ((P_PAR>0) AND (P_PAR<1));

 REPEAT

 BEGIN

 writeln('Начало интервала A: '); readln(PR_1);

 writeln('Конец интервала B: '); readln(PR_2);

 if not (PR_1<PR_2) then

 writeln ('A должно быть меньше B !. Повторите ввод.');

 END;

 UNTIL (PR_1<PR_2);

 REPEAT

 BEGIN

 writeln('Точность E: '); readln(POGR_PRO);

 if not (POGR_PRO>0) then

 writeln ('E должно быть больше 0 !. Повторите ввод.');

 END;

 UNTIL (POGR_PRO>0);

END;

FUNCTION integration(VAR GR_1,GR_2,F_PAR,POGR_FUNC:REAL):real;

 VAR

 INTEGRAL1, INTEGRAL2, X, H:REAL;

 N:INTEGER;

 READY:BOOLEAN;

begin

 integral1:=0;

 integral2:=0;

 n:=1;

 REPEAT

 N:=N*2;

 H:=(GR_2-GR_1)/N;

 X:=GR_1;

 Integral2:=0;

 repeat

 if x<=(-F_PAR) then

 integral2:=integral2+((1/sqr(3))*(ln(F_PAR)-F_PAR))

 ELSE IF((-F_PAR<x) and (x<=F_PAR))

 THEN integral2:=integral2+ln(F_PAR)

 ELSE if (X>F_PAR) THEN

 Integral2:=integral2+LN(X)/LN(10);

 X:=X+H;

 until not (X<=B);

 READY:=abs(integral1-integral2)<POGR_FUNC;

 INTEGRAL1:=INTEGRAL2;

 UNTIL READY;

 INTEGRATION:=INTEGRAL2;

END;

BEGIN

 ENTER_DATA(A,B,C,E);

 ABS_Integral:=INTEGRATION(A,B,C,E);

 Writeln;

 Writeln( 'Ответ: ');

 writeln('Интеграл на промежутке от ',A:0:2,' до ',B:0:2,' равен ');

 writeln (ABS_Integral:1:3,' с точностью ',E:1:3);

 ReadKey;

END.

1.7 Инструкция пользователю.

Данная программа вычисляет значение интеграла функции заданной графически. Интервал интегрирования, точность вычислений и параметр функции вводятся пользователем. Программа вычислит результат и выдаст его (в числовом виде) на экран монитора.

После запуска программы на экране появится описание программы.

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

Если все величины заданы корректно и вычисления не прерывались, то через некоторое время, зависящее от тактовой частоты процессора, программа подсчитает значение интеграла и выдаст его на экран.

В случае если требуется повторное вычисление значения, следует заново запустить программу.

1.8. Тестовый пример.

Программа для нахождения значения интеграла на определенном промежутке

Введите границы интервала [A,B], причем (A<B), число C (0<C<1), число D (D<0) и точность E (E>0):

Число C:

0.9

Число D:

-0.1

Начало интервала A:

5

Конец интервала B:

10

Точность E:

1

Ответ:

Интеграл на промежутке от A до B равен

2.574 с точностью 1.000

Программа для нахождения значения интеграла на определенном промежутке

Введите границы интервала [A,B], причем (A<B), число C (0<C<1), число D (D<0) и

точность E (E>0):

Число C:

0.9

Число D:

-0.1

Начало интервала A:

-0.9

Конец интервала B:

0.9

Точность E:

1

Ответ:

Интеграл на промежутке от A до B равен

-0.300 с точностью 1.000


2. Составление таблицы значений функции, заданной в виде разложения в ряд

2.1 Вариант задания и постановка задачи.

Задание (вариант №15):

Разработать алгоритм и составить программу вычисления таблицы значений функции, заданной в виде разложения в ряд. Значение функции вычислять с точностью e>0, т.е. вычисление суммы членов ряда необходимо прекратить, когда абсолютная величина очередного члена ряда разложения окажется меньше e: | ак | <e.

При вычислении очередного члена целесообразно воспользоваться рекурентным выражением:

ак+1=скак; к= 0, 1, 2, ...,

где ак - некоторый к-ый член ряда; ак+1 - следующий к+1-ый член ряда; ск - коэффициент, определяемый номером к.

При составлении программы необходимо по возможности воспользоваться операторами организации циклов WHILE, REPEAT, FOR.

Границы интервала вычислений функций a и b, величина шага изменения аргумента h и точность вычисления функции e задаются при вводе. На печать выводятся номер по порядку, значение аргумента, соответствующие ему, значение функции и номер члена ряда, на котором закончилось вычисление значение функции, в форме таблицы:

Х

f (x)

№ чл.р.

1
2
3
...

Функция:

2.2 Математическая формулировка задачи.

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

2.3 Численный метод решения.

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

Очевидно, что вычисление значения функции нужно производить за конечное число шагов. А значит, необходим некий ограничивающий фактор, в качестве которого в нашей задаче будет выступать погрешность вычислений e (e>0). Следовательно, вычислив каждый новый член ряда ak, нам необходимо проверить, не будет ли абсолютная величина очередного члена ряда меньше, чем величина погрешности e, т.е. |ak| < e. Если это неравенство не выполнилось, то следует вычислить новый член ряда, иначе можно заканчивать вычисление и выводить результат работы на экран дисплея.

Кроме того, при вычислении очередного члена целесообразно воспользоваться рекуррентным выражением: ak+1 = ck * ak; k = 0, 1, 2, …, где ak – некоторый k-ый член ряда; ak+1 - следующий k+1-ый член ряда; ck – коэффициент, определяемый номером k.

В данном случае нахождение коэффициента ck можно произвести следующим образом:

ak=;

ak+1=;

ck =  

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

ak+1 =ak*; k = 0, 1, 2, …

2.4 Описание переменных.

Имя переменной

Тип переменной

Значение

K

integer Номер члена ряда
number integer Порядковый номер
A real Начало интервала
B real Конец интервала
H Шаг интервала
E Точность
X Текущее значение аргумента
у Значение члена ряда
f Значение функции для текущего аргумента

2.5 Схема алгоритма.

Блок-схема: знак завершения: начало 


                                                    

                                              Программа предназначена для вычисления

таблицы значений функции,         

 


заданной в виде разложения в ряд.


 Введите границы интервала [A,B] ( причем (A<B) );

точность E (E>0)

 


и шаг изменения аргумента H (H>0)


Блок-схема: документ: A должно быть меньше B ! Повторите ввод.Блок-схема: решение: not (A&lt;B)                              ДА       

                                      

                   НЕТ    

Блок-схема: решение: A&lt;B                             НЕТ

 


                  ДА        

 

 

 


                                               нет    

 


                                     да

Блок-схема: решение: (number mod 18)=0  


                                         нет           

 


                                           да

                                           

                           нет       

Блок-схема: знак завершения: конец                                    

2.5.1 Схема алгоритма процедуры Table_begin

Блок-схема: документ: ----------
 

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


Новости

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

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

Пока нет

Новости в Twitter и Facebook

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

Новости

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

© 2010.