Численный метод решения.
Пусть требуется приближённо вычислить значение функции, заданной в виде разложения в бесконечный ряд. Идея алгоритма вычисления суммы членов ряда состоит в следующем: Очевидно, что вычисление значения функции нужно производить за конечное число шагов. А значит, необходим некий ограничивающий фактор, в качестве которого в нашей задаче будет выступать погрешность вычислений 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 Описание переменных.
2.5 Схема алгоритма.
Программа предназначена для вычисления таблицы значений функции, заданной в виде разложения в ряд. Введите границы интервала [A,B] ( причем (A<B) ); точность E (E>0) и шаг изменения аргумента H (H>0) ДА
НЕТ НЕТ ДА нет
да нет да
нет
2.5.1 Схема алгоритма процедуры Table_begin
¦Номер¦ X ¦ f(x) ¦ Номер члена ряда ¦ 2.5.2 Схема алгоритма процедуры Table_end 2.6 Текст программы. Program kkr1_2;
procedure Table_begin;
begin writeln(' ----------------------------------------------------------------------------------'); writeln(' ¦Номер¦ X ¦ f(x) ¦ Номер члена ряда ¦'); writeln(' ----------------------------------------------------------------------------------'); end;
procedure Table_end; begin writeln(' ----------------------------------------------------------------------------------'); end;
var K,number:integer; A,B,H,E,X,y,f:real;
begin Writeln ('Программа предназначена для вычисления таблицы значений функции, '); writeln ('заданной в виде разложения в ряд.'); Writeln;
{------------------------------------------------------------------------} {Ввод данных}
writeln('Введите границы интервала [A,B] ( причем (A<B) ); точность E (E>0)'); writeln('и шаг изменения аргумента H (H>0)'); writeln;
repeat begin writeln('Начало интервала A: '); readln(A); writeln('Конец интервала B: '); readln(B); if not (A<B) then writeln ('A должно быть меньше B !. Повторите ввод.'); end; until (A<B);
repeat begin writeln('Точность E: '); readln(E); if not (E>0) then writeln ('E должно быть больше 0 !. Повторите ввод.'); end; until (E>0);
repeat begin writeln('Шаг H: ');readln(H); if not (H>0) then writeln ('H должно быть больше 0 !. Повторите ввод.'); end; until (H>0);
{------------------------------------------------------------------------} writeln('Вы ввели: '); writeln('A=',A:1:5, ' B=',B:1:5,' H=',H:1:5,' E=',E:1:5); writeln;
{------------------------------------------------------------------------} X:=A; number:=0;
Table_begin;
repeat k:=0; y:=(cos(2*x))/3; f:=0; inc(number);
repeat inc(k); y:=y*cos(2*(k+1)*x)*(2*k-1)/((2*k+3)*cos(2*k*x)); f:=f+y; until (abs(y)<E);
if (number mod 18)=0 then begin Table_end; Table_begin; end;
writeln(' ¦',number:5,'¦', X:20:13,' ¦ ',(4/Pi)*(0.5-f):16:13, ' ¦ ' ,k:7,' ¦'); X:=X+H; until not (X<B);
Table_end; end. 2.7 Инструкция пользователю.
После запуска программы, она сообщит, что предназначена для составления таблицы значений функции на определенном интервале и попросит ввести значения, необходимые для составления таблицы. К таким значениям относятся начало и конец интервала, шаг изменения аргумента , точность вычислений. Не стоит вводить слишком больших значений (либо слишком маленькую точность), так как тогда время работы программы сильно увеличится. Чтобы правильно составить требуемую таблицу, программе необходимы значения, которые пользователь введет в программу. Вводить значения надо после приглашения программы к соответствующему действию. Важный момент – если таблица полностью не поместиться на экран, то после заполнения последней строки, помещающейся на данном экране, программа попросит нажать любую клавишу и продолжить составление таблицы на чистом экране, т.е. предварительно очистив предыдущую таблицу. 2.8. Тестовый пример. Программа предназначена для вычисления таблицы значений функции, заданной в виде разложения в ряд.
Введите границы интервала [A,B] ( причем (A<B) ); точность E (E>0) и шаг изменения аргумента H (H>0):
Начало интервала A: 0.5 Конец интервала B: 7.6 Точность E: .001 Шаг H: 1 Вы ввели: A=0.50000 B=7.60000 H=1.00000 E=0.00100
------------------------------------------------------------------------------------------ ¦Номер¦ X ¦ f(x) ¦ Номер члена ряда ¦ ------------------------------------------------------------------------------------------ ¦ 1 ¦ 0.50000000000 ¦ 0.70477448832 ¦ 7 ¦ ¦ 2 ¦ 1.50000000000 ¦ 0.57770993869 ¦ 8 ¦ ¦ 3 ¦ 2.50000000000 ¦ 0.71713212380 ¦ 10 ¦ ¦ 4 ¦ 3.50000000000 ¦ 0.66752823117 ¦ 10 ¦ ¦ 5 ¦ 4.50000000000 ¦ 0.59106729937 ¦ 10 ¦ ¦ 6 ¦ 5.50000000000 ¦ 0.72198206866 ¦ 2 ¦ ¦ 7 ¦ 6.50000000000 ¦ 0.60541986599 ¦ 9 ¦ ¦ 8 ¦ 7.50000000000 ¦ 0.61517755154 ¦ 10 ¦ ------------------------------------------------------------------------------------------ 3.Работа с матрицами Вариант задания и постановка задачи.
Задание (вариант №15): Вычислить сумму элементов матрицы В(К,К), К £ 50, расположенных над двумя диагоналями и под ними:
3.2 Математическая формулировка задачи.
Популярное: Почему стероиды повышают давление?: Основных причин три... Как выбрать специалиста по управлению гостиницей: Понятно, что управление гостиницей невозможно без специальных знаний. Соответственно, важна квалификация... Генезис конфликтологии как науки в древней Греции: Для уяснения предыстории конфликтологии существенное значение имеет обращение к античной... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (206)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |