02.11.2009, 16:13 | #1 (permalink) |
Member
Регистрация: 04.06.2009
Сообщений: 75
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 37
|
Задачка
Необходимо найти корень третьей степени из 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... К вам просьба следующего характера: попытаться как-то разъяснить мне суть этой задачи (естественно в текстовом варианте). Но программу не составляйте, хотелось бы сделать её самому. |
02.11.2009, 16:13 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Я уверен, что в этих обсуждениях вы найдете решение Задачка на ассемблере Задачка. Задачка по Паскалю Задачка (Paskal) |
02.11.2009, 21:25 | #2 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Прежде всего, что-то не то с условием. Я взял для проверки а=8, и получил, что последовательность, вместо того, чтобы стремиться к 2, очень медленно сходится к 0.
Проверьте формулировку. И потом, не совсем ясно вот что. Вы пишете "каждое следующее x с нижним индексом n-1 получается из предыдущего..." но в формуле всё наоборот - каждое ПРЕДЫДУЩЕЕ выражено через ПОСЛЕДУЮЩЕЕ. Здесь нет лажи с индексами? |
02.11.2009, 22:05 | #3 (permalink) |
Member
Регистрация: 04.06.2009
Сообщений: 75
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 37
|
Я думаю, что такой вопрос лучше следует задать автору книги "Изучаем Turbo Pascal" (т.е. С. Немнюгину). Задачку я взял именно оттуда. Но, всё равно спасибо.
|
02.11.2009, 22:12 | #4 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
И еще. Правильно ли я понимаю, что a/2*sqr(xn) означает, что а нужно поделить на 2 и результат умножить на хn в квадрате, а не, скажем, а поделить на произведение 2 и квадрат хn?
|
02.11.2009, 22:23 | #5 (permalink) |
Member
Регистрация: 04.06.2009
Сообщений: 75
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 37
|
Да, здесь моя ошибка. Действительно необходимо a разделить на произведение 2-х и sqr(xn)
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
02.11.2009, 22:42 | #7 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Так, кое в чем разобрался. В условии таки лажа с индексами. Вместо
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... Тогда всё получается. Проверил. Но вот как получить самО разложение кубического корня... Не представляю. Никогда с таким не встречался. Интересно. |
02.11.2009, 22:57 | #8 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Ага, в принципе доехало. За основу взято тождество
х = 2/3*(x + x³/(2x²)). Это, вероятно, какой-нибудь итерационный метод Лагранжа или что-то в этом роде. Не силён, извините. |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|