Да, за ссылки спасибо. Посмотрю.
Вычисляю производные решения очень просто. Вот кусок кода
Код:
function restoreSolutionDiff(x,y:RealType;XorY: char;RestoreType:byte=0):RealType;
var i,j:integer;
ra,rb,rc,rd,re,rf:RealType;
begin
Result:=0;
for i:=0 to BlockUsed do
for j:=0 to High(Blocks[i].Dots) do
begin
GetBasisCoeffs(Blocks[i].dots[j],i,ra,rb,rc,rd,re,rf);
Result:=Result+fmatrix[2*Blocks[i].dots[j]+RestoreType][0]*
Iif(xory='x', PartXDiff(x,y,ra,rb,rc,rd,re,rf),PartYDiff(x,y,ra,rb,rc,rd,re,rf));
end;
end;
RestoreType может принимать только 0 или 1 - в зависимости от такого, какую переменную дифференцировать (решалась система УвЧ). PartXDiff, PartYDiff - непосредственно функции вычисления частных производных, там предельно все просто:
Код:
f
unction PartXDiff(x,y,a,b,c,d,e,f:realtype):RealType;
begin
Result:=b+d*y+2*e*x;
end;
function PartYDiff(x,y,a,b,c,d,e,f:realtype):RealType;
begin
Result:=(c+d*x+2*f*y);
end;
т.к. функция формы -
