Текст программы

!Программа для вычисления суммы ряда Тейлора + форматированная таблица

program lab5

real x,Xn,Xk,step,An,eps,sum,a,f,T

integer n,Nmax/100/

open(1, file='results.txt')

write(*,*) 'input Xn, Xk, step, eps and a:'

read(*,*) Xn,Xk,step,eps,a

write(1,*) 'Xn=',Xn,' Xk=',Xk,' step=',step,' eps=',eps,' a=',a

write(1,10)

do x=Xn,Xk,step

f=sin(x+a)

n=0

An=sin(a)

sum=An

do while(abs(An)>eps)

T=(x*sin(a+(n+1)*asin(1.)))/((n+1)*sin(a+n*asin(1.)))

An=An*T

sum=sum+An

n=n+1

if(n>Nmax) then

write(1,*) 'Авария при x=',x,' n=',n,' sum=',sum,' f=',f

endif

enddo

write(1,12) x,f,sum,n

enddo

write(1,11)

10 Format(&

' ___________________________________________ '/&

' | x | Станд |Сумма ряда |Членов ряда|'/&

' |-------------------------------------------|')

11 Format(&

' |______|____________|___________|___________|')

12 Format(1x,'|',F5.2,2(' |',F11.7),'|',I6,5x,'|')

End

!Программа, вычисляющая An,sum и f для построения графиков

program lab5

real x,An,eps,sum,a,f,T

integer n,Nmax/100/

open(1, file='An.txt')

open(2, file='f.txt')

open(3, file='sum.txt')

open(4, file='errors.txt')

write(*,*) 'input x, eps and a:'

read(*,*) x,eps,a

f=sin(x+a)

n=0

An=sin(a)

sum=An

do while(abs(An)>eps)

T=(x*sin(a+(n+1)*asin(1.)))/((n+1)*sin(a+n*asin(1.)))

An=An*T

sum=sum+An

n=n+1

if(n>Nmax) then

write(1,*) 'Ошибка при x=',x,' n=',n,' sum=',sum,' f=',f

endif

write(1,*) n,An !координаты для графика An(n)

write(2,*) n,f !координаты для графика f(n)

write(3,*) n,sum !координаты для графика sum(n)

enddo

end

Графики

График зависимости An(n)

Графики зависимостей: sum(n) – ломаная линия, f(n) - прямая || оси X

Таблица с результатами работы 1-ой программы:

Xn= -2.000000

Xk= 2.000000

step= 1.000000E-01

eps= 1.000000E-05

a= 1.000000E-01

___________________________________________

| x | станд |Сумма ряда |Членов ряда|

|-------------------------------------------|

|-2.00 | -.9463001 | -.9462990| 12 |

|-1.90 | -.9738476 | -.9738469| 12 |

|-1.80 | -.9916648 | -.9916807| 10 |

|-1.70 | -.9995736 | -.9995821| 10 |

|-1.60 | -.9974950 | -.9974994| 10 |

|-1.50 | -.9854497 | -.9854519| 10 |

|-1.40 | -.9635581 | -.9635592| 10 |

|-1.30 | -.9320390 | -.9320394| 10 |

|-1.20 | -.8912073 | -.8912075| 10 |

|-1.10 | -.8414709 | -.8414645| 8 |

|-1.00 | -.7833267 | -.7833239| 8 |

| -.90 | -.7173559 | -.7173549| 8 |

| -.80 | -.6442175 | -.6442171| 8 |

| -.70 | -.5646422 | -.5646421| 8 |

| -.60 | -.4794253 | -.4794309| 6 |

| -.50 | -.3894180 | -.3894196| 6 |

| -.40 | -.2955199 | -.2955202| 6 |

| -.30 | -.1986690 | -.1986691| 6 |

| -.20 | -.0998331 | -.0998304| 4 |

| -.10 | .0000003 | .0000004| 4 |

| .00 | .0998337 | .0998337| 1 |

| .10 | .1986696 | .1986696| 4 |

| .20 | .2955205 | .2955179| 4 |

| .30 | .3894186 | .3894187| 6 |

| .40 | .4794258 | .4794261| 6 |

| .50 | .5646427 | .5646443| 6 |

| .60 | .6442179 | .6442234| 6 |

| .70 | .7173563 | .7173563| 8 |

| .80 | .7833272 | .7833267| 8 |

| .90 | .8414712 | .8414702| 8 |

| 1.00 | .8912075 | .8912050| 8 |

| 1.10 | .9320392 | .9320329| 8 |

| 1.20 | .9635583 | .9635585| 10 |

| 1.30 | .9854498 | .9854503| 10 |

| 1.40 | .9974950 | .9974959| 10 |

| 1.50 | .9995736 | .9995757| 10 |

| 1.60 | .9916648 | .9916689| 10 |

| 1.70 | .9738475 | .9738558| 10 |

| 1.80 | .9462999 | .9463153| 10 |

| 1.90 | .9092972 | .9092967| 12 |

|______|____________|___________|___________|

Вывод рекуррентной формулы

Санкт-Петербургский Государственный Университет

Информационных технологий,

Механики и оптики

Отчет

К лабораторной работе по информатике:

«Вычисление функции с помощью разложения в степенной ряд»

Вариант № 9

Студент:

Преподаватели:

2005 г.