Інтерполяція функції в прямокутнику, Детальна інформація
Інтерполяція функції в прямокутнику
End;
Function Polinom(xx,yy:Real):Real;
Var p,q,s,s1,p1,q1:Real; i,j,k:Integer;
Begin
s:=0;
For i:=0 To Nx Do
For j:=0 To Ny Do
Begin
p:=1; q:=1;
For k:=0 To Nx Do If k<>i Then p:=p*(xx-X[k])/(X[i]-X[k]);
For k:=0 To Ny Do If k<>j Then q:=q*(yy-Y[k])/(Y[j]-Y[k]);
s1:=p*q*Func(X[i],Y[j]);
s:=s+s1;
End;
Polinom:=s;
End;
Procedure GetMaxError;
Var i,j:Integer; dx,dy,MaxErr1,p1,p2,p3,VidnErr1,MaxErr2,VidnErr2:Real; F:Text;
Begin
MaxErr1:=0; VidnErr1:=0; MaxErr2:=0; VidnErr2:=0;
dx:=(Xb-Xa)/Cx; dy:=(Yb-Ya)/Cy;
For i:=0 To Cx Do
For j:=0 To Cy Do
Begin
p1:=Func(Xa+i*dx,Ya+j*dy);
p2:=Drib(Xa+i*dx,Ya+j*dy);
p3:=Polinom(Xa+i*dx,Ya+j*dy);
If Abs(p1-p3)>MaxErr1 Then
Begin
MaxErr1:=Abs(p1-p3); VidnErr1:=Abs((p1-p3)/p1);
Function Polinom(xx,yy:Real):Real;
Var p,q,s,s1,p1,q1:Real; i,j,k:Integer;
Begin
s:=0;
For i:=0 To Nx Do
For j:=0 To Ny Do
Begin
p:=1; q:=1;
For k:=0 To Nx Do If k<>i Then p:=p*(xx-X[k])/(X[i]-X[k]);
For k:=0 To Ny Do If k<>j Then q:=q*(yy-Y[k])/(Y[j]-Y[k]);
s1:=p*q*Func(X[i],Y[j]);
s:=s+s1;
End;
Polinom:=s;
End;
Procedure GetMaxError;
Var i,j:Integer; dx,dy,MaxErr1,p1,p2,p3,VidnErr1,MaxErr2,VidnErr2:Real; F:Text;
Begin
MaxErr1:=0; VidnErr1:=0; MaxErr2:=0; VidnErr2:=0;
dx:=(Xb-Xa)/Cx; dy:=(Yb-Ya)/Cy;
For i:=0 To Cx Do
For j:=0 To Cy Do
Begin
p1:=Func(Xa+i*dx,Ya+j*dy);
p2:=Drib(Xa+i*dx,Ya+j*dy);
p3:=Polinom(Xa+i*dx,Ya+j*dy);
If Abs(p1-p3)>MaxErr1 Then
Begin
MaxErr1:=Abs(p1-p3); VidnErr1:=Abs((p1-p3)/p1);
The online video editor trusted by teams to make professional video in
minutes
© Referats, Inc · All rights reserved 2021