• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

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

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Нахождение конечной суммы ряда

  • Автор темы Автор темы Su-34
  • Дата начала Дата начала

Su-34

Новые
Регистрация
10 Ноя 2011
Сообщения
65
Реакции
0
Баллы
0
Нахождение конечной суммы ряда

Ребята помогите пожалуйста, нужна помощь. Дана формула ряда:
формула.webp
Надо составить программу на Фортране.
У меня есть пример выполнения:
Дается формула S=a1+a2+...+an+...
Путем преобразований (которые я не до конца понимаю) получили:
a(n+1)=-(an*4*x^2)/(2*n+1)*(2n+2)
a1=-(2*x)^2/2=2*x^2

И вот программа:
program lab3
eps=0.0001
print*,'x=?';read*,x
a=2*x**2;n=1
S=a
do
a=-(4*x**2)/(2*n+1)/(2*n+2)*a
if(abs(a)<eps) exit
S=S+a
n=n+1
end do
print*,'S=',S
end

Но как на моём примере получить эти два данных? :tehnari_ru_325:
 
Но как на моём примере получить эти два данных?
Да очень просто. Что касается второго, то а1=1. А для первого нужно сосчитать отношение текущего слагаемого к предыдущему, каковое есть
xxx.webp
 
program lab3
eps=0.0001
print*,'x=?';read*,x
a=1;n=1
S=a
do
a=(2*n+1)*x**2/(2*n-1)*n
if(abs(a)<eps) exit
S=S+a
n=n-1
end do
print*,'S=',S
end
:tehnari_ru_203:
Что касается а[1]=1, почему единица?
 
Что касается а[1]=1, почему единица?
Потому что первое слагаемое суммы - единица. Кроме того, в программе ошибка, даже две. У Вас:
a=(2*n+1)*x**2/(2*n-1)*n
а надо
a=(2*n+1)*x**2/((2*n-1)*n)*a
Ох, только что увидел: разумеется, не
n=n-1, а n=n+1
 
Значение икс принимает только в интервале -1<x<1, причем значение суммы всегда равняется 1,000000. Это нормально? :tehnari_ru_325:
 
Тек собственно и всё:

program lab3
eps=0.0001
print*,'x=?';read*,x
a=1;n=1
S=a
do
a=(2*n+1)*x**2/((2*n-1)*n)*a
if(abs(a)<eps) exit
S=S+a
n=n-1
end do
print*,'S=',S
end
 
Всё получилось, спасибо за помощь и терпение :tehnari_ru_889:
 
Назад
Сверху