26.06.2010, 10:21
общий
это ответ
Здравствуйте, Vilgelm.
Уф, не было у меня еще таких 2 месяцев: студент слабеет, чиновничий маразм крепчает .....
Но вот в приложении решение. Возможно, уже и не нужное, но простое
Приложение:
CONST
count = 11;
TYPE
TheY = function(yk, k, h: double; var xk: double): double;
TheArray = array[1..count] of double;
function func(yk, k, h: double; var xk: double): double; far;
begin
func := yk + h*(cos(k*xk + yk) + 7*(xk + yk));
xk := xk + h
end;
procedure Solution(var ar: array of double; TheFunc: TheY; x0, y0, h: Double);
var x, y: Double;
i: Integer;
begin
ar[0] := y0;
x := x0;
for i:=1 to High(ar) do
ar[i] := TheFunc(ar[i-1], 6, h, x);
end;
function Heat(ar: array of double; h: Double) : double;
var i : Integer;
sum : Double;
begin
sum := (ar[0]*ar[0] + ar[High(ar)]*ar[High(ar)])/2;
for i:= 2 to High(ar)-1 do
sum := sum + ar[i]*ar[i];
Heat := sum * h
end;
CONST
xStep = 0.1;
VAR
ArrY: TheArray;
i: Integer;
BEGIN
Solution(ArrY, func, 0, 0, xStep);
for i:= 1 to count do
Write(ArrY[i]:8:5,' ');
WriteLn;
WriteLn(Heat(ArrY, xStep):12:6);
END.