СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ

Благодаря готовым учебным материалам для работы в классе и дистанционно

Скидки до 50 % на комплекты
только до

Готовые ключевые этапы урока всегда будут у вас под рукой

Организационный момент

Проверка знаний

Объяснение материала

Закрепление изученного

Итоги урока

Решение математических задач в углубленном курсе информатики

Категория: Информатика

Нажмите, чтобы узнать подробности

Задача 1. Вычислить сумму последовательности

S = 1+(1+1/2)+(1+1/2+1/3)+…+(1+1/2+…+1/n).

Рекуррентное соотношение 

Просмотр содержимого документа
«Решение математических задач в углубленном курсе информатики»

Решение математических задач в углубленном курсе информатики


В современном информационном обществе программирование считают второй грамотностью. Деятельность по составлению программ с использованием ПЭВМ не является специфической для какой-то одной области, ею пронизываются все сферы материального, научно-технического, социально-экономического и информационного производства. Навыки алгоритмизации и программирования приобретают всё более фундаментальный характер и становятся таким же элементом культуры, как умение читать, писать и излагать свои мысли. Целью предлагаемых статей является помочь учителям информатики в более глубоком усвоении учениками основ алгоритмизации, в умении выделять главное, в грамотном использовании конструкций языка программирования при решении математических задач. Программирование – это искусство, которому надо учить, которым следует овладевать уже в школьные годы, чтобы достичь определенных успехов в данной области.


Использование рекуррентных соотношений для вычисления сумм последовательностей

Тема. Оператор цикла (рекуррентные соотношения).

Задача 1. Вычислить сумму последовательности

S = 1+(1+1/2)+(1+1/2+1/3)+…+(1+1/2+…+1/n).

Рекуррентное соотношение: - для общего члена последовательности имеет вид ai = ai-1+1/i;

- для суммы Si = Si-1+ai , a0 = 0, S0 = a0 , (i = 1, 2,…, n).

Определим переменные, используемые в алгоритме для решения задачи:

n – индекс последнего члена последовательности;

i - индекс текущего(ей) члена(суммы) последовательности;

s – текущая сумма последовательности, результат;

a – текущий член последовательности.

Алгоритм на языке PASCAL выглядит следующим образом.

{Вычисление суммы последовательности}

const n=10;

var s, a:real;

i:byte;

begin

{Начальная установка}

a:=0; s:=a;

for i:=1 to n do begin

a:=a+1/i;

s:=s+a

end;

writeln(‘сумма=’,s:10:4);

end.


Для n = 10 имеем S = 22.2187.


Алгоритм в Excel выглядит следующим образом.


n=

15



Решение

№ п\п

ai

si

control

1

=1/A4

=B4

=ЕСЛИ(A4=$B$1;"otvet")

=A4+1

=B4+1/A5

=C4+B5

=ЕСЛИ(A5=$B$1;"otvet")

=A5+1

=B5+1/A6

=C5+B6

=ЕСЛИ(A6=$B$1;"otvet")

=A6+1

=B6+1/A7

=C6+B7

=ЕСЛИ(A7=$B$1;"otvet")

=A7+1

=B7+1/A8

=C7+B8

=ЕСЛИ(A8=$B$1;"otvet")

=A8+1

=B8+1/A9

=C8+B9

=ЕСЛИ(A9=$B$1;"otvet")

=A9+1

=B9+1/A10

=C9+B10

=ЕСЛИ(A10=$B$1;"otvet")

=A10+1

=B10+1/A11

=C10+B11

=ЕСЛИ(A11=$B$1;"otvet")

=A11+1

=B11+1/A12

=C11+B12

=ЕСЛИ(A12=$B$1;"otvet")

=A12+1

=B12+1/A13

=C12+B13

=ЕСЛИ(A13=$B$1;"otvet")

=A13+1

=B13+1/A14

=C13+B14

=ЕСЛИ(A14=$B$1;"otvet")

=A14+1

=B14+1/A15

=C14+B15

=ЕСЛИ(A15=$B$1;"otvet")

=A15+1

=B15+1/A16

=C15+B16

=ЕСЛИ(A16=$B$1;"otvet")

=A16+1

=B16+1/A17

=C16+B17

=ЕСЛИ(A17=$B$1;"otvet")

=A17+1

=B17+1/A18

=C17+B18

=ЕСЛИ(A18=$B$1;"otvet")

=A18+1

=B18+1/A19

=C18+B19

=ЕСЛИ(A19=$B$1;"otvet")


Задача 2. Вычислить значение функции , заданной в виде ряда Тейлора .

Разделив член последовательности на , имеем

.

Следовательно, общий член последовательности будет вычисляться по рекуррентной формуле

, ).

Определим переменные, используемые в алгоритме для решения задачи:

n – индекс последнего члена последовательности;

i - индекс текущего(ей) члена(суммы) последовательности;

x – значение ;

mn – значение ;

s – текущая сумма последовательности, результат;

a – текущий член последовательности;

f – вспомогательная переменная.

Алгоритм на языке PASCAL выглядит следующим образом.

{Вычисление суммы последовательности}

const n=5;

var s, a, x, mn, f:real; i:byte;

begin

writeln(‘Введите x, 1

readln(x);

{Начальная установка}

a:=x; s:=a; mn:=-x*x; f:=1;

for i:=1 to n do begin

f:=f+2; a:=a*mn/(f-1)/f; s:=s+a end;

writeln(‘сумма=’,s:10:4);

end.

Для n = 5, x = 1.5 имеем S = 0.9975.

Для n = 5, x = /3 имеем S = 0.8660.


Алгоритм в Excel выглядит следующим образом.

A B C D E F G

n=

5






x=

=ПИ()*0,5






"-x2

=-(B2^2)






Решение

№ п\п

"2i+1

"(2i+1)!

x2i+1

ai

si

control

0

=2*A6+1

=B6

=B2

=D6/C6

=E6

=ЕСЛИ(A6=$B$1;"otvet")

=A6+1

=2*A7+1

=C6*B7*(B7-1)

=D6*$B$3

=D7/C7

=F6+E7

=ЕСЛИ(A7=$B$1;"otvet")

=A7+1

=2*A8+1

=C7*B8*(B8-1)

=D7*$B$3

=D8/C8

=F7+E8

=ЕСЛИ(A8=$B$1;"otvet")

=A8+1

=2*A9+1

=C8*B9*(B9-1)

=D8*$B$3

=D9/C9

=F8+E9

=ЕСЛИ(A9=$B$1;"otvet")

=A9+1

=2*A10+1

=C9*B10*(B10-1)

=D9*$B$3

=D10/C10

=F9+E10

=ЕСЛИ(A10=$B$1;"otvet")

=A10+1

=2*A11+1

=C10*B11*(B11-1)

=D10*$B$3

=D11/C11

=F10+E11

=ЕСЛИ(A11=$B$1;"otvet")

=A11+1

=2*A12+1

=C11*B12*(B12-1)

=D11*$B$3

=D12/C12

=F11+E12

=ЕСЛИ(A12=$B$1;"otvet")


Задача 3. Вычислить сумму последовательности

S = ,

где - индекс последнего члена последовательности; – последний член последовательности; 2 ≤ ≤ 3.

Выделим в общем члене последовательности (=1,2,…,), очевидные компоненты , , , , определяемые из следующих рекуррентных соотношений:; ; ; α (или α), α (α - начальное значение угла и приращение угла. В нашем случае α = 50 , или α = 36).

Общий член рассматриваемой последовательности имеет вид:

а) – нечетно);

б)– четно).

Текущая сумма определяется из рекуррентного соотношения

, ).

Введём переменные, используемые в алгоритме для решения данной задачи:

s – текущая сумма последовательности, результат;

a – значение текущего члена последовательности;

e - число ;

x - вводимое значение ;

alfa - начальный угол и приращение в радианах (alfa = π/36);

i – индекс текущего(ей) члена(суммы) последовательности;

n – индекс последнего члена последовательности;

sw – переключатель булевского типа, определяющий вид члена последовательности. Если sw = true(истина), вычисляем текущий член последовательности по формуле (а), иначе - по формуле (б).

Алгоритм на языке PASCAL выглядит следующим образом.

{Вычисление суммы последовательности}

const n=10;

var s,a, p1, p2, p3, p4, e, x, alfa:real; i:byte; sw:boolean;

begin e:=exp(1); alfa:=pi/36;

writeln(‘Введите x, 2

readln(x);

{Начальная установка}

s:=0; sw:=true; p1:=1; p2:=1; p3:=1; p4:=alfa;

for i:=1 to n do begin

p1:=p1*e; p2:=p2*x; p3:=p3*i;

p4:=p4+alfa;{или p4:=alfa*i};

if sw then a:=(p1-p2)/(p3+sin(p4))

else a:=(p1-p2)/(p3-cos(p4));

s:=s+a; sw:=not sw

end;{конец цикла}

writeln(‘сумма=’,s:10:4);

end.

Для n = 10, x = 2.5 имеем S = 3.4541.


Алгоритм в Excel выглядит следующим образом.


A B C D E

n=

10




x=

2




e=

=EXP(1)




alfa=

=РАДИАНЫ(5)




Решение





№ п\п

ei

xi

i!

alfai

1

=B3

=B2

=A7

=$B$4

=A7+1

=B7*$B$3

=C7*$B$2

=D7*A8

=A8*$B$4

=A8+1

=B8*$B$3

=C8*$B$2

=D8*A9

=A9*$B$4

=A9+1

=B9*$B$3

=C9*$B$2

=D9*A10

=A10*$B$4

=A10+1

=B10*$B$3

=C10*$B$2

=D10*A11

=A11*$B$4

=A11+1

=B11*$B$3

=C11*$B$2

=D11*A12

=A12*$B$4

=A12+1

=B12*$B$3

=C12*$B$2

=D12*A13

=A13*$B$4

=A13+1

=B13*$B$3

=C13*$B$2

=D13*A14

=A14*$B$4

=A14+1

=B14*$B$3

=C14*$B$2

=D14*A15

=A15*$B$4

=A15+1

=B15*$B$3

=C15*$B$2

=D15*A16

=A16*$B$4

=A16+1

=B16*$B$3

=C16*$B$2

=D16*A17

=A17*$B$4

=A17+1

=B17*$B$3

=C17*$B$2

=D17*A18

=A18*$B$4



F G H

 

 

 

ai

si

control

=ЕСЛИ(ОСТАТ(A7;2)=1;(B7-C7)/(D7+SIN(E7));(B7-C7)/(D7-COS(E7)))

=F7

=ЕСЛИ(A7=$B$1;"otvet")

=ЕСЛИ(ОСТАТ(A8;2)=1;(B8-C8)/(D8+SIN(E8));(B8-C8)/(D8-COS(E8)))

=G7+F8

=ЕСЛИ(A8=$B$1;"otvet")

=ЕСЛИ(ОСТАТ(A9;2)=1;(B9-C9)/(D9+SIN(E9));(B9-C9)/(D9-COS(E9)))

=G8+F9

=ЕСЛИ(A9=$B$1;"otvet")

=ЕСЛИ(ОСТАТ(A10;2)=1;(B10-C10)/(D10+SIN(E10));(B10-C10)/(D10-COS(E10)))

=G9+F10

=ЕСЛИ(A10=$B$1;"otvet")

=ЕСЛИ(ОСТАТ(A11;2)=1;(B11-C11)/(D11+SIN(E11));(B11-C11)/(D11-COS(E11)))

=G10+F11

=ЕСЛИ(A11=$B$1;"otvet")

=ЕСЛИ(ОСТАТ(A12;2)=1;(B12-C12)/(D12+SIN(E12));(B12-C12)/(D12-COS(E12)))

=G11+F12

=ЕСЛИ(A12=$B$1;"otvet")

=ЕСЛИ(ОСТАТ(A13;2)=1;(B13-C13)/(D13+SIN(E13));(B13-C13)/(D13-COS(E13)))

=G12+F13

=ЕСЛИ(A13=$B$1;"otvet")

=ЕСЛИ(ОСТАТ(A14;2)=1;(B14-C14)/(D14+SIN(E14));(B14-C14)/(D14-COS(E14)))

=G13+F14

=ЕСЛИ(A14=$B$1;"otvet")

=ЕСЛИ(ОСТАТ(A15;2)=1;(B15-C15)/(D15+SIN(E15));(B15-C15)/(D15-COS(E15)))

=G14+F15

=ЕСЛИ(A15=$B$1;"otvet")

=ЕСЛИ(ОСТАТ(A16;2)=1;(B16-C16)/(D16+SIN(E16));(B16-C16)/(D16-COS(E16)))

=G15+F16

=ЕСЛИ(A16=$B$1;"otvet")

=ЕСЛИ(ОСТАТ(A17;2)=1;(B17-C17)/(D17+SIN(E17));(B17-C17)/(D17-COS(E17)))

=G16+F17

=ЕСЛИ(A17=$B$1;"otvet")

=ЕСЛИ(ОСТАТ(A18;2)=1;(B18-C18)/(D18+SIN(E18));(B18-C18)/(D18-COS(E18)))

=G17+F18

=ЕСЛИ(A18=$B$1;"otvet")


5