Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Delphi, Kylix and Pascal


Ответ
 
Опции темы Опции просмотра
Старый 20.04.2011, 14:03   #1 (permalink)
DimX
Новичок
 
Регистрация: 20.04.2011
Сообщений: 5
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
Unhappy Интерполяция функции

Доброго времени суток!
Помогите пожалуйста составить программу интерполяции табличной заданной функции по методу Лангранжа при произвольном расположении узлов. Необходимо выполнить интерполяцию функции, заданной значениями X[i],Y[i], согласно таблице:

i x[i] y[i]
0 1.500 0.8862268255
1 1.510 0.8865716850
2 1.525 0.8872930231
3 1.540 0.8881746586
4 1.545 0.8896391990
5 1.580 0.8924282141

Расчитать у(1,55).
Заранее благодарен.
DimX вне форума   Ответить с цитированием

Старый 20.04.2011, 14:03
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Возможно такое, что на форуме такую проблему уже решили

Функции на Паскале
График функции

Старый 20.04.2011, 14:14   #2 (permalink)
DimX
Новичок
 
Регистрация: 20.04.2011
Сообщений: 5
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Язык-Паскаль
DimX вне форума   Ответить с цитированием
Старый 20.04.2011, 18:12   #3 (permalink)
DimX
Новичок
 
Регистрация: 20.04.2011
Сообщений: 5
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

можно пожалуйста хоть какие идеи?...
DimX вне форума   Ответить с цитированием
Старый 21.04.2011, 10:37   #4 (permalink)
DimX
Новичок
 
Регистрация: 20.04.2011
Сообщений: 5
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

upupup
DimX вне форума   Ответить с цитированием
Старый 23.04.2011, 23:44   #5 (permalink)
DimX
Новичок
 
Регистрация: 20.04.2011
Сообщений: 5
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Если кому нужно:
program Interp;
{Вычисление значения многочлена Лагранжа для функции,
определенной таблично}
uses Crt;
const
m=9;
type
Vector=array [0..m] of real;

var
X,Y: vector; {узлы интерполяции}
i,j,N: integer;
p,L,Xe,h: real;


function step: real;
{определение оптимального шага интерполяции}
var
i: integer;
min: real;
begin
min:=Abs(X[1]-X[0]);
for i:=1 to N-1 do
begin
if Abs(X[i+1]-X[i])<min then min:= Abs(X[i+1]-X[i])
end;
step:=min;
end;

{основное тело программы}
begin
TextBackground(7);
TextColor(0);
ClrScr; {очистка экрана};
Writeln(' ************************************************** *****');
Writeln(' * Программа интерполяции функции многочленом Лагранжа *');
Writeln(' ************************************************** *****');
Write('Введите порядок многочлена Лагранжа N (>0): '); Read(N);
WriteLn('Введите пары значений Xi,Yi (i=0,...,N): ');
for i:=0 to N do
begin
Write('X[',i,']= '); Read(X[i]);
Write('Y[',i,']= '); Read(Y[i]);
end;
h:=step/2; {Вычисление шага интерполяции}
WriteLn('Шаг интерполяции h=', h:0:7);
WriteLn('Нажмите любую клавишу для вывода интерполяционной таблицы...');
readkey;
ClrScr;
WriteLn(' Данные интерполяции:');
WriteLn(' X Y ');
WriteLn(' ---------------------------');
Xe:=X[0];
while Xe<=(X[N]+h) do
begin
L:=0;
for i:=0 to N do
begin
p:=1;
for j:=0 to N do if j<>i then p:=p*(Xe-X[j])/(X[i]-X[j]);
L:=L+y[i]*p;
end;
WriteLn(' ':10,Xe:0:3,' ':4,L:12:10);
Xe:=Xe+h;
end;
WriteLn(' Шаг интерполяции h=', h:0:7);
WriteLn;
WriteLn('Нажмите любую клавишу для выхода из программы...');
readkey;
end.
DimX вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 06:56.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.