Вопрос № 45047: Здравствуйте, Уважаемые Эксперты.
Задача (см. приложение) метод Ньютона для нулей функций.
Подробнее можно глянуть здесь [http://en.wikipedia.org/wiki/Newton's_method] , если не знакомы ещё. На русском не нашёл, но принцип можно без язык...Вопрос № 45085: Прошу помоч по курсовому проекту. У меня задание:
Хранение текста в двоичном файле (начальный балл 5.0)
Двоичный файл содержит записи – текстовые строки в формате записей переменной длины. Реализовать набор операций над записями без загр...
Вопрос № 45.047
Здравствуйте, Уважаемые Эксперты.
Задача (см. приложение) метод Ньютона для нулей функций.
Подробнее можно глянуть здесь [http://en.wikipedia.org/wiki/Newton's_method] , если не знакомы ещё. На русском не нашёл, но принцип можно без языка понять.
Рассчитываю нули для функций.
На пример: f(x)=x*x-2. Можно и другие f(x), не в том суть.
А вопросы такие:
1.Как описать производную?
2.Можно ли как-нибудь сделать, чтобы не в программе описывалась
бы f(x),а задавалась пользователем? Знаю, что Си не предусмотрен
для таких запросов, но поделитесь соображениями.
Можно. Задайте к примеру такой шаблон функции
f(x, A, B, C, D, E) = A*x^4+B*x^3+C*x^2+D*x + E
т.е. пользователь вводит например x^2 - 2, отсюда имеем
A=0, B=0, C=1, D=0, E=-2
Если не знаете как или не хотите строку анализировать, то пусть пользователь сразу же эти коэффициенты вводит для простоты.
Ну а производная тоже лягко считается
F(x, A, B, C, D) = 4*A*x^3+3*B*x^2+2*C*x+D
--------- Успех неизбежен
Ответ отправил: Zitz (статус: Студент)
Ответ отправлен: 03.06.2006, 11:07 Оценка за ответ: 5
Отвечает: Boriss
Здравствуйте, Евсеев В. Н.!
Можно производную и не описывать, а считать ее приближенно (тогда получается, что рассчитываем не касательную, а секущую):
dxk = xk - f(xk)/((f(x(k)) - f(x(k-1)))/(x(k) - x(k-1)) )
Метод немного медленнее, называется "метод секущих"
--------- Вывод - то место в тексте, где вы устали думать
Ответ отправил: Boriss (статус: Профессор) Россия, Саранск Организация: факультет Электронной техники, Мордовский госуниверситет Адрес: г. Саранск WWW:Программирование на Паскале ---- Ответ отправлен: 03.06.2006, 13:57 Оценка за ответ: 5
Отвечает: Vest
Здравствуйте, Евсеев В. Н.!
Насчёт производной - есть методы выч. математики (если нужно, могу прислать необходимые функции): метод половинного деления, касательных (был в ответе), хорд и совместный хорд и касательных (точнее приближённый результат).
Если хочешь чтобы функция задавалась пользователем, то могу посоветовать, либо создать необходимые шаблоны функций с параметрами (a, b, c, d...), либо посложнее - это написать интерпритатор символьных выражений (или иногда называется что-то вроде анализатора выражений, или какой-то калькулятор - не могу вспомнить точное название). Ранее в ответах этот механизм описывался, да и информация есть по этому поводу в инете.
Да, вот ещё - ты находишь нули, "отталкиваясь" от некоторого начала, есть идея попытаться вывести больше "нолей" за раз - после того, как ты находишь ноль (с некоторой точностью), вывести его, и далее выбрать следующую на некотором от него расстоянии точку, и просчитать следующий ответ, главное вовремя остановится, чтобы программа "вечно" не работала...
--------- Халявы не бывает
Ответ отправил: Vest (статус: 2-ой класс)
Ответ отправлен: 03.06.2006, 19:34 Оценка за ответ: 5
Вопрос № 45.085
Прошу помоч по курсовому проекту. У меня задание:
Хранение текста в двоичном файле (начальный балл 5.0)
Двоичный файл содержит записи – текстовые строки в формате записей переменной длины. Реализовать набор операций над записями без загрузки одновременно всей таблицы в память (поэлементная загрузка СД): добавление строки таблицы, извлечение, удаление, вставка по логическому номеру и редактирование (обновление) строки, вставка с сохранением порядка, сортировка (возможно, через внешний текстовый файл), экспорт строк из текстового файла, постраничный просмотр. Структура данных: Двусвязный список, элемент списка
содержит строку.
Не могли бы вы дать наиболлее понятную формулировку задания? Я студент 1-го курса. Язык программирования Си. Спасибо.
Отвечает: gitter
Здравствуйте, Басёнов Е.С.!
Очень интересная задача как для первого курса.
Более понятную формулировку, конечно же, должен был дать преподаватель.
Я приведу пример работы с двунаправленным списком: добавление, редактирование, вставка, удаление, сортировка элементов списка, с тестовыми процедурами проверки этих функций.
А как всё это связать с двочным файлом - додумывай сам, переспроси у преподавателя алгоритм (покажи ему что ты уже что-то сделал, а вот с этим-то возникли трудности).
PS Отправил исходники письмом, т.к. здесь ограничение на ответ 6000-8000 символов
Ответ отправил: gitter (статус: 3-ий класс)
Ответ отправлен: 06.06.2006, 12:40