Задача: Построить интерполяционный многочлен Ньютона по известным в узлах значениям функции f(x), вычислить значения этого многочлена в равномерной сетке точек на отрезке [a,b] с шагом h и сравнить их со значениями функции f(x) в этих точках. Использовать схему интерполирования вперёд. Функция: f(x)=sqrt(x)*sin(x) Значения функции: Х0=0,1 Х1=0,2 Х2=0,25 Х3=0,3 Х4=0,4 Х5=0,45 Отрезок: a=0,2 b=0,7 Шаг: h=0,01
есть программа но она работает неправильно (слишком большая погрешность) нужно ввести а и b
Code
program N; const h=0.01; a=0.2; b=0.7; function f(x:real):real; begin f:=sqrt(x)*sin(x); end; var mas,masX:array[1..6]of real; i,j:integer; P,delta,fun,pr,procdelta:real; begin mas[1]:=0.1; mas[2]:=0.2; mas[3]:=0.25; mas[4]:=0.3; mas[5]:=0.4; mas[6]:=0.45; for i:=1 to 6 do masX[i]:=f(mas[i]); for j:=1 to 5 do for i:=6 downto j+1 do masX[i]:=(masX[i]-masX[i-1])/(mas[i]-mas[i-j]); for i:=1 to 6 do writeln('RR(',i,')=',masX[i]:11:10); for i:=0 to 51 do begin pr:=h*i; P:=masX[1]; for j:=2 to 6 do P:=masX[j]+(pr-mas[j])*P; fun:=f(pr); delta:=abs(P-fun); procdelta:=(delta/fun)*100; writeln('x(',i,')=',(pr):3:2,' P(x)=',P:7:5,' F(x)=',fun:7:5,' delta=',delta:7:5,' delta(%)=',procdelta:5:2,'%'); end; readln; end.
Во всех? :D :D :D :D :D У меня аж слёзы на глазах))))) На какой именно строчке и какая именно ошибка?))))) Нужна помощь? Сюда: vkontakte.ru/berestovskiy