![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Добрый вечер всем.
Прошу помощи у знающих людей. По предмету вычислительная математика дали задание, которое никак не получается. Конец сессии нужно срочно сдать. суть вот в чем: Нужно провести интерполяцию функции F=x*x+4*x+3, используя интерполяционную формулу Ньютона(метод разделенных разностей) на интервале [-10..10] взяв количество узлов интерполяции равных 3. Построить графики исходной функции и интерполирующей функции, а так же график погрешности интерполяции. Сделать нужно, используя вот эти формулы: ![]() В моем случае уравнение получается вида: Pn(x)=f(x[0])+f(x[i],x[i+1])*(x-x[0])+f(x[i],x[i+1],x[i+2])*(x-x[0])*(x-x[1]). Написал функцию, но работать она не хочет: Код:
Математический я все понимаю как делать и на листике оно то получается, а программно никак. Помогите пожалуйста с кодом функции. Последний раз редактировалось hatabi4, 23.06.2011 в 00:09. |
#2
|
||||
|
||||
![]() На вскидку, можно указать два замечания:
1. Проверить правильность всех применяемых переменных (имееются ошибки). 2. Присмотреться к предупреждениям в которые тыкает носом компилятор, устранить причины и постараться в будущем не игнорировать такие предупреждения. |
#3
|
|||
|
|||
![]() Компилятор никуда не ругается вообще, а если и ругается бывает то на доступ к адресу в памяти.
Код немного немного, но все равно чушь полная получается. Код:
Вот что строит прога: ![]() Точки это исходный график, прямая - искомый полином |
#4
|
||||
|
||||
![]() Ну, если запретить компилятору выдавать предупреждения, то и более грубые ошибки пропустишь. Для начала вот тебе одна: переменаая y1 типа array of real в функции Newton. Где и каким образом она инициализируется, что ты так смело потом обращаешься к не созданному массиву?
Хм, а ты хитрец. Первоначально выложенный код не совпадает с текущим. Последний раз редактировалось angvelem, 23.06.2011 в 22:06. |
#5
|
|||
|
|||
![]() я там опечатался, я его переделал немного))
сделал вот так, теперь деление на 0 во втором цикле по I, причем сразу. что я делаю не так с ним?? Код:
|
#6
|
||||
|
||||
![]() Вот твой код, несколько причёсанный:
Код:
1. Про предупреждения от компилятора я тебе говорил, но ты не внял моим словам, а жаль. 2. Опять используешь не иницилизированные переменные и ждёшь нормальной работы программы. 3. использование переменных после for. |
#7
|
||||
|
||||
![]() Ну что ты мучаешься, пройдись отладчиком и посмотри где, что не так. У тебя проблемы в выходе за пределы диапазона в массивах.
Код:
Последний раз редактировалось angvelem, 24.06.2011 в 01:24. |