Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.03.2013, 15:39   #1
Вероника92
Пользователь
 
Регистрация: 28.05.2012
Сообщений: 35
По умолчанию полином лагранжа

c помощью интерполяционного полинома лагранжа 1-й степени вычислить углы наклона в касательных.помогите написать одну процедуру
Код:
procedure proizvod(x:Tmas;y:Tmas);
 var k:Tmas;
     i:integer;
 begin
   for i:=0 to n-1 do
   begin
   k[i]:=y[i]/(x[i]-x[i+1])+y[i+1]/(x[i+1]-x[i]);
   write((k[i]):3:2, ' ')
   end;
   k[n]:=y[n]/(x[n]-x[n-1])+y[n-1]/(x[n-1]-x[n])
 end;
вот то что получилось у меня,но считает неправильно
Вероника92 вне форума Ответить с цитированием
Старый 23.03.2013, 17:13   #2
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Почему Вы решили, что считает неправильно?
s-andriano вне форума Ответить с цитированием
Старый 23.03.2013, 17:32   #3
Вероника92
Пользователь
 
Регистрация: 28.05.2012
Сообщений: 35
По умолчанию

например для ряда х: 0,1,2,3 и функции 2*x^(2)+1 выдает неправильные производные в точках....в 0 выдает что производная равна 2
Вероника92 вне форума Ответить с цитированием
Старый 23.03.2013, 17:54   #4
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

А почему Вы решили, что это неправильно?
Вы ведь считаете "правые" производные, т.е. производные, смещенные на полинтервала. Интервал у Вас имеет длину 1. Аналитически вычисленные производные на концах 1 и 3 соответственно. 2 - как раз среднее значение по интервалу.
То есть работает правильно.
А если нужна именно правильная поизводная в точке, то Вам нужно символьное дифференцирование, а не численное.
Но это совсем другая задача.

В принципе, можете и численно попытаться итерационно просчитать производную как предел. Результат должен быть лучше, но сама программ - сложнее и работать будет дольше.
s-andriano вне форума Ответить с цитированием
Старый 23.03.2013, 18:38   #5
Вероника92
Пользователь
 
Регистрация: 28.05.2012
Сообщений: 35
По умолчанию

а когда последнее значение считает должно 12 получится?
Вероника92 вне форума Ответить с цитированием
Старый 23.03.2013, 18:46   #6
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Последнее значение у Вас должно быть равно предпоследнему, т.к. у Вас нет правой производной и вместо нее Вы берете левую.
Сейчас посчитаю...
У меня получается (2*3^2+1) - (2*2^2+1) = 19-9=10


Да, "последний" - это который? У Вас отсутствует описание N, поэтому непонятно, что считать последним, 3 или 4.
Для 4 - 14.

Последний раз редактировалось s-andriano; 23.03.2013 в 18:53.
s-andriano вне форума Ответить с цитированием
Старый 23.03.2013, 20:04   #7
Вероника92
Пользователь
 
Регистрация: 28.05.2012
Сообщений: 35
По умолчанию

спасибо)))теперь разобралась))
Вероника92 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Построение графика(Полином Лагранжа) SkreII4ik Общие вопросы Delphi 3 22.12.2013 22:15
полином n-ой степени dronchik2010 Помощь студентам 1 11.11.2011 12:14
канонический полином littlefella Помощь студентам 0 11.04.2011 19:17
Delphi полином NewEra Помощь студентам 4 19.05.2010 21:32
полином лагранжа milate Общие вопросы C/C++ 10 24.05.2009 13:44