Главная » Файлы » Математика |
ЧМ Лаба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. | |
Просмотров: 593 | Загрузок: 0 | Рейтинг: 0.0/0 |
Всего комментариев: 0 | |