Условие:
Задана программа на паскале, в ней нужно изменить параметры что бы значение ff было минимальным
Program test01;
const n=10;
type vec= array[0..n] of real;
Var fout : text;
i : integer;
a1,a2,t,f1,f2,f, ff, df1, df2, alpha :real;
a10, a20 : real;
function Ls(t, a1, a2 :real):real;
Var a0, a3, x0,x1,x2,x3, r:real;
begin
a0:=0;
a3:=1;
x0:=0;
x1:=1/3;
x2:=2/3;
x3:=1;
if t <= x1 then r:= a1*(t-x0)/(x1-x0);
if (t > x1) and (t <= x2)then r:= a2(t-x1)/(x2-x1)+ a1(x2 - t)/(x2-x1);
if t > x2 then r:= a3(t-x2)/(x3-x2)+ a2(x3 - t)/(x3-x2);
Ls:=r;
end;
(* Закомментирован кубический сплайн:
function spl(t, a1, a2 :real):real;
Var a0, a3, x0,x1,x2,x3, r:real;
begin
spl:= a1 t(1-t)(1-t)+a2(-tt(1-t))+3tt-2tt*t;
end;
*)
Procedure Par;
Var u0,u1 : vec;
i,k : integer;
Begin
for i:=1 to n do
u0[i]:=0;
f1:=0;
f2:=0;
for k:=1 to 100 do
begin
t:=k/100;
u0[0]:= Ls(t, a1, a2); // Используем кусочно-линейную интерполяцию
for i:=1 to n-1 do
u1[i]:=0.5*(u0[i-1]+u0[i+1]);
u1[n]:=0.5*(u0[n-1]+u0[n]);
for i:=1 to n do
u0[i]:=u1[i];
f1:=f1 + (u0[0]-u0[1])*(u0[0]-u0[1]);
for i:=0 to n do
write(fout, u0[i]:6:3);
writeln(fout);
end; { k }
for i:=0 to n do
f2:=f2 + (1 - u0[i])(1 - u0[i])0.1;
ff:= sqrt(f1)+alpha*sqrt(f2);
writeln('ff ',ff:12:6);
end;
begin
assign(fout,'par2300.txt'); rewrite(fout);
alpha:=0.1;
a10:=1/3;
a1:=a10;
df1:= (1.025903 - 1.025864)/0.01;
a20:=2/3;
a2:=a20+0.01;
df2:= (0.003900 - 1.025864)/0.01;
t:=0.03;
a1:= a10 - df1*t;
a2:= a20 - df2*t;
a10:=a1;
a20:=a2;
writeln(a1:12:6,a2:12:6 );
a1:=a10;
df1:= (0.871786 - 0.872354)/0.01;
writeln('df1 ',df1:12:6);
a2:=a20+0.01;
df2:= (0.872366 - 0.872354)/0.01;
writeln('df2 ',df2:12:6);
t:=0.03;
a1:= a10 - df1*t;
a2:= a20 - df2*t;
par;
close(fout);
end.
![Задана программа на паскале, в ней нужно изменить параметры что бы значение ff было минимальным Program test01; const n=10; type vec= array[0..n] of real; Var fout : text; i : integer; a1,a2,t,f1,f2,f, ff, df1, df2, alpha :real; a10, a20 : real; function](/public/images/library/external/library-detail-hero-book.png)