Технический форум

Технический форум (http://www.tehnari.ru/)
-   Помощь студентам (http://www.tehnari.ru/f41/)
-   -   Посмотрите пожалуйста, как делать? (http://www.tehnari.ru/f41/t40547/)

Анел 03.10.2010 00:33

Посмотрите пожалуйста, как делать?
 
1. составить программу на языке паскаль для вычисления корней уравнения методом половинного деления
Точность вычислений 10 (в -3 степени)

3х-0,9*Cosx-1=0


2. составить программу на языке паскаль для вычисления определенного интеграла методом трапеций
Точность вычислений 10 (в -3 степени)

интеграл (от 0 до П/2) (Cosx+2) dx

KiD2 03.10.2010 09:53

Цитата:

1. составить программу на языке паскаль для вычисления корней уравнения методом половинного деления
Точность вычислений 10 (в -3 степени)

3х-0,9*Cosx-1=0
Вроде бы так... вычисляет функцию на интервале от a до b
Код:

program mdp;

function f(x: real): real;

begin

f:=3*x-0.9*cos(x)-1;

end;

var

a, b, e, c, x: real;

begin

a:=0;

b:=1;

e:=0.001;

c:=(a+b)/2;

while abs(b-a)>e do

begin

if f(a)*f(c)<0 then

b:=c

else

a:=c;

c:=(a+b)/2;

end;

x:=(a+b)/2;

writeln ('x=',x:3:3,' f(x)=',f(x):4:4);

readln;

end.


Vladimir_S 03.10.2010 10:08

Цитата:

Сообщение от Анел (Сообщение 399835)
2. составить программу на языке паскаль для вычисления определенного интеграла методом трапеций
Точность вычислений 10 (в -3 степени)

интеграл (от 0 до П/2) (Cosx+2) dx

Например, так:
Код:

CONST
 Xmin=0.0;
 Xmax=Pi/2;
 Eps=0.0001;
VAR
 h,Sbef,Saft,Rel:Real;

FUNCTION f(Xf:Real):Real;
 begin
  f:=Cos(Xf)+2;
 end;

FUNCTION SUM(Hs:Real):Real;
 Var
  Ns,i:Integer;
  SM:Real;
 begin
  Ns:=ROUND((Xmax-Xmin)/Hs);
  SM:=0;
  For i:=0 to Ns-1 do
  SM:=SM+Hs/2*(f(Xmin+Hs*i)+f(Xmin+Hs*(i+1)));
  SUM:=SM;
 end;

BEGIN
 h:=Xmax-Xmin;
 Sbef:=SUM(h);
 Repeat
  h:=h/2;
  Saft:=SUM(h);
  Rel:=ABS((Saft-Sbef)*2/(Saft+Sbef));
  Sbef:=Saft;
 Until Rel<Eps;
 WriteLn('        Result: ',Sbef:6:4);
 WriteLn('Accurate value: ',(1.0+Pi):6:4);
 ReadLn;
END.


KiD2 03.10.2010 10:22

Цитата:

2. составить программу на языке паскаль для вычисления определенного интеграла методом трапеций
Точность вычислений 10 (в -3 степени)

интеграл (от 0 до П/2) (Cosx+2) dx
Чуток не успел :) ну да ладно хоть ответ проверил
Код:

program Integral;
uses
Crt, Dos;
var
dx,x1,x2,e,i:real;
function Fx(x:real):real;
begin
Fx:=cos(x)+2;
end;

procedure CountViaTrap;
var
xx1,xx2,xx3:real;
c:longint;
begin
writeln('Iterations:',round(abs(x2-x1)/e));
i:=0;
for c:=1 to round(abs(x2-x1)/e) do begin
write('Iteration ',c,chr(13));
xx1:=Fx(x1+c*e);
xx2:=Fx(x1+c*e+e);
if xx2>xx1 then xx3:=xx1 else xx3:=xx2;
i:=i+abs(xx2-xx1)*e+abs(xx3)*e;
end;
writeln('integral = ',i);
end;

begin
writeln('x1= 0 '); x1:=0;
writeln('x2=pi/2 '); x2:=pi/2;
writeln('e=0.001 '); e:=0.001;
CountViaTrap;
ReadLn;
end.


Анел 03.10.2010 19:26

Огромное спасибо за быстрое решение!!! :)


Часовой пояс GMT +4, время: 15:23.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.