PDA

View Full Version : Free Pascal - Tin học 11



lovelink117
07-08-2015, 10:00
Trong bài tập 3.35 sbt tin 11 có đoạn tìm max và min của hàm f(x)=x^3+2x^2-4x+1 và giải thì sách viết
clrscr;
write('a,b= ');readln(a,b);
n:=0;
while n<=0 do
begin
write('n= ');readln(n);
if n<=0 then writeln('n phai >0');
end;
h:=(b-a)/n;
max:=-maxint;
min:=maxint;
for i:=0 to n do
begin
x:=a+i*h;
fx:=((x+2)*x-4)*x+1;
if fx>max then max:=fx;
if fx<min then min:=fx;
end;
writeln('a) Max = ',max:7:3,' ; Min = ',min:7:3);
readln
end
Khi chạy nếu nhập a=5;b=9 và n=3 đúng ra kq max=856 còn min=156 nhưng khi ở lệnh gán
max:=-maxint;
min:=maxint;
for i:=0 to n do
begin
x:=a+i*h;
fx:=((x+2)*x-4)*x+1;
if fx>max then max:=fx;
if fx<min then min:=fx
Hình như mình thấy min=max=f(x) ???

ksc10
07-08-2015, 21:55
Lời giải sai rồi.
- N là input? Ở đâu nữa vậy?
- Rõ ràng cái này cũng chỉ là sample N điểm trên miền xác định thì sao tính đc min và max?

Vì vậy không cần bàn cãi gì thêm.

Đây mới là đúng: http://docs.scipy.org/doc/scipy/reference/optimize.html