Приветствую Вас, Гость
Главная » Файлы » Математика

ЧМ Лаба2
05.11.2008, 15:31
program Project;
{$APPTYPE CONSOLE}
uses
  SysUtils;
var
n,i,w:integer;
x,nach,kon,h,r,sp,sp1,sp2,opredx,opredy,e,e1:real; //h - шаг,
a,b,c,d,x1,y,a1,b1,c1,s,alpha,beta:array[0..100] of real;
begin
//Ввод данных
//ЕСЛИ НУЖЕН ВВОД С ЭКРАНА
write('Razbienije na n=');
readln(n);
write('Nuzhno opredelit znachenije v tochke x=');
readln(x);
nach:=1; //!!!начало интервала
kon:=4; //!!!конец интервала
h:=(kon-nach)/n;
x1[1]:=nach;
for i:=0 to n do begin
y[i]:=(x1[i]+4)/(x1[i]*x1[i]+1); //функция
x1[i+1]:=x1[i]+h;
end;
for i:=1 to n-1 do
begin
a1[i]:=1;
b1[i]:=4;
c1[i]:=1; //Получается трехдиагольная СЛАУ, где коэфф а и с равны 1,
//b равны 4
s[i]:=3*(y[i+1]-2*y[i]+y[i-1])/(h*h);// правая часть СЛАУ для iого
//компонента
end;
a1[0]:=0;
c1[n]:=0;//для объединения формул в одну при решении вводим эти
//значения искусственно
//Решение трехдиагональной СЛАУ
alpha[1]:=-c1[1]/b1[1];
beta[1]:=s[1]/b1[1];
for i:=2 to n-1 do
begin
r:=a1[1]*alpha[i-1]+b1[i]; //используем формулы для прямого
//хода метода прогонки
alpha[i]:=-c1[i]/r;
beta[i]:=(s[i]-a1[i])*beta[i-1]/r;
end;
c[n]:=beta[n]; // обратный ход метода прогонки
for i:=n-1 downto 1 do c[i]:=alpha[i]*c[i+1]+beta[i];
//Рассчет
for i:=0 to n-1 do
begin
a[i]:=y[i];
b[i]:=(y[i+1]-y[i])/h-h*(c[i+1]+2*c[i])/3;
d[i]:=(c[i+1]-c[i])/(3*h);
end;
//Вывод
writeln(' x f(x) s(x) e(x) ');
for i:=1 to n do
begin
opredx:=nach+(i-0.5)*h;
opredy:=(opredx*sin(opredx)*sin(opredx));
sp1:=a[i-1]+b[i-1]*(opredx-x1[i-1])+c[i-1]*(opredx-x1[i-1])*
(opredx-x1[i-1])+d[i-1]*(opredx-x1[i-1])*(opredx-x1[i-1])*(opredx-x1[i-1]);
e1:=abs(sp1-opredy);
writeln(opredx:8:4,' ',opredy:8:4,' ',sp1:8:4,' ',e1:8:4);
end;
for i:=0 to n-1 do if (x>i*h) and (x<(i+1)*h) then w:=i;
writeln('funkzia(',x:2:2,')=',((x+4)/(x*x+1)):2:4);  //!!!моя функция (x*sin(x)*sin(x))
sp2:=a[w]+b[w]*(x-x1[w])+c[w]*(x-x1[w])*(x-x1[w])+
d[w]*(x-x1[w])*(x-x1[w])*(x-x1[w]);
writeln('splain(',x:2:2,')=',sp2:2:4);
writeln('e#=',abs(sp2-sin(x)):2:4);
readln;
end.
Категория: Математика | Добавил: MT
Просмотров: 593 | Загрузок: 0 | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]