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

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

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

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

Задачка

  • Автор темы Автор темы SGE
  • Дата начала Дата начала

SGE

Новые
Регистрация
4 Июн 2009
Сообщения
75
Реакции
1
Баллы
0
Задачка

Приветствую вас, уважаемые программисты. Долго и упорно сидел, думая над выполнением задачи в паскале. Итак:
Необходимо найти корень третьей степени из a (или a в степени 1/3, что тоже самое) как предел последовательности x0,x1,x2,...,где x0=a/3, а каждое следующее x с нижним индексом n-1 получается из предыдущего по формуле:
xn-1 = 2/3*(xn + a/2*sqr(xn)),n = 0,1,2...
К вам просьба следующего характера: попытаться как-то разъяснить мне суть этой задачи (естественно в текстовом варианте). Но программу не составляйте, хотелось бы сделать её самому.
 
Прежде всего, что-то не то с условием. Я взял для проверки а=8, и получил, что последовательность, вместо того, чтобы стремиться к 2, очень медленно сходится к 0.
Проверьте формулировку. И потом, не совсем ясно вот что. Вы пишете "каждое следующее x с нижним индексом n-1 получается из предыдущего..." но в формуле всё наоборот - каждое ПРЕДЫДУЩЕЕ выражено через ПОСЛЕДУЮЩЕЕ. Здесь нет лажи с индексами?
 
Я думаю, что такой вопрос лучше следует задать автору книги "Изучаем Turbo Pascal" (т.е. С. Немнюгину). Задачку я взял именно оттуда. Но, всё равно спасибо.
 
И еще. Правильно ли я понимаю, что a/2*sqr(xn) означает, что а нужно поделить на 2 и результат умножить на хn в квадрате, а не, скажем, а поделить на произведение 2 и квадрат хn?
 
Да, здесь моя ошибка. Действительно необходимо a разделить на произведение 2-х и sqr(xn)
 
Да, здесь моя ошибка. Действительно необходимо a разделить на произведение 2-х и sqr(xn)

Опаньки! Но тогда уравнение относительно Хn получается кубичным - и что же, его по Кардано решать прикажете? Впрочем, надо еще подумать: вдруг озарит!
 
Так, кое в чем разобрался. В условии таки лажа с индексами. Вместо
xn-1 = 2/3*(xn + a/2*sqr(xn)),n = 0,1,2...
должно быть
xn = 2/3*(xn-1 + a/(2*sqr(xn-1))),n = 1,2...
Тогда всё получается. Проверил. Но вот как получить самО разложение кубического корня... Не представляю. Никогда с таким не встречался. Интересно.
 
Ага, в принципе доехало. За основу взято тождество
х = 2/3*(x + x³/(2x²)).
Это, вероятно, какой-нибудь итерационный метод Лагранжа или что-то в этом роде. Не силён, извините.
 
Назад
Сверху