Основы программирования в среде Turbo Pascal
Дипломная работа - Компьютеры, программирование
Другие дипломы по предмету Компьютеры, программирование
а), и производная не меняет знак, поэтому в интервале [3,6] корней нет. Проверим это с помощью программы. Блок-схема приведена на рис. 3.
Нет
Да
ДаДа
Нет
Рис.3
3.3 Описание программы
Irina4;crt;A,B,X,Fa,Fb,Fx,e:real;5,
,
,
;;
: write('Vvedite A: A= ');(A);
: write('Vvedite B: B= ');(B);('Vvedite e: e= ');(e);a<=0 then goto 5 elseb<=0 then goto 10 else:=5*ln(a)-a+1;
: X := (A + B)/2;:=5*ln(x)-x+1;(ABS(Fx) = e) then goto 15;;
: write('X= ',X:5:3);;
end.
.4 Результаты
3.4.1 Машинный iёт.
Машина iитает с точностью е = 0,001.
На отрезке [0,1;5] х = 1;
На отрезке [3;16] х = 14,302;
.4.2 Ручной iёт
На отрезке [0,1;5] х = 1;
На отрезке [3;16] х = 14,302;
.5. Вывод по работе
Относительная погрешность составляет 0%.
4. Численное интегрирование
.1 Постановка задачи
Составить алгоритм и программу для вычисления определённого интеграла. Число разбиений каждого интервала интегрирования принять равным 10.
, a =4, b =5, c =6, n =10.
.2 Метод решения
Для решения таких задач чаще всего применяют методы прямоугольников, трапеции и Симпсона. В нашей задаче мы применим метод прямоугольников. Блок-схема к программе на рис.1 и рис2.
Рис.1
Рис.2
4.3 Описание программы
Irina5;crt;i:integer;,x2,S1,S2,S,h1,h2:real;n=10;=0;=1;=2;Mych(x:real):real;:= (Exp(x/2)+Exp(-x/2))/2;;;:=a; S1:= 0;:=(b-a)/n;i:=1 to n do:= S1 + 1/(Mych(x1/2)*Mych(x1/2));:=x1+h1;:= S1*h1;;:=b; S2:= 0;:=(c-b)/n;i:=1 to n do:= S2 + 1/(1+cos(x2));:=x2*h2;:= S2*h2;;:= S1 + S2;('S= ',S:5:3);;.
.4 Результаты
Ручной iёт: Машинный iёт:
A=4, b=5, c=6, h=10, S=0.161; A=4, b=5, c=6, h=10, S=0.161;
4.5 Вывод по работе
Относительная погрешность составляет 0%.
5. Оптимизация функции
.1 Постановка задачи
Составить алгоритм и программу вычисления наибольшего и наименьшего значений функции на интервале [a,b]=[3,6].
.
.2 Метод решения
Решение проводим по методу перебора, при котором при нахождении наибольшего значения функции у перед циклом задают в качестве начального значения заведомо малую е, а внутри цикла находят текущее значение у при следующих условиях:
При нахождении минимальной величины функции за начальное значение принимают заведомо большую величину, с которой сравнивают текущее значение у с использованием следующих условий:
Составим блок - схему (см. стр.21):
Нет
Нет
Нет
Да
5.3 Описание программы
Program OptimFun;crt;x,h,Y,Ymax,Ymin:real;a=3;=6;;('Input h= ');(h);:=5*ln(3)-3+1;:=5*ln(6)-6+1;:=a;x=a do:=5*ln(x)-x+1;Y<Ymin then Ymin:=Y;:=x-h;;('Ymin= ',Ymin:4:2);; end;;.
.4 Результаты при h = 0.001
ручной iёт: ymax =4.05, ymin =3.49; машинный iёт: ymax =4.05, ymin =3.49.
.5 Вывод
Относительная погрешность составляет 0%.
6. Численное дифференцирование
.1 Постановка задачи
Составить алгоритм и программу решения дифференциального уравнения: .
.2 Метод решения
Решение проводим по методу Эйлера. Первообразную функцию в каждой точке определяем по формулам:
Составим блок - схему(см. рис.6).
Да
Рис.6
6.3 Описание программы
Program Difur;
Uses crt;25, 20;X,Y,X0,Y0,H,Xk:Real;;
: Write('Input X0= ');(X0);('Input Y0= ');(Y0);('Input H= ');(H);('Input Xk= ');(Xk);:=X0;:=Y0;(x*x*x-1)>0 then
: Y:=Y+H*(x/(x*x*x-1));('X= ', X:4:6,'Y= ',Y:4:6);:=X+H;X<=Xk Then goto 25; goto 20;
Readkey;
End.
.4 Результаты Машинный iёт:
X0= 2, X= 2.000, Y= 5.286,= 5, X= 3.000, Y= 5.401,= 1, X= 4.000; Y= 5.465.= 4;
Ручной iёт:
X= 2.000, Y= 5.286,
X= 3.000, Y= 5.401,
X= 4.000; Y= 5.465.
.5 Вывод
Относительная погрешность составляет 0%.
7. Аппроксимация функции
.1 Постановка задачи
Найти аппроксимирующую функцию.
Изменение функции у от аргумента х
Значения х
0.10.20.30.40.50.60.70.80.91.01.11.21.31.43,72,952,632,452,322,232,162,092,052,01,961,931,91,87
.2 Метод решения
Решать будем методом наименьших квадратов:
Составим блок - схему (см. стр. 26):
7.3 Описание программы
Aproks;crt;n=14;K1,K2,L1,L2,A0,A1:Real;,Y:Array[1..n] of real;:integer;;i:=1 to n do('Input X[',i,']= ');(X[i]);;
For i:=1 to n do
begin('Input Y[',i,']= ');(Y[i]);;:=0; K2:=0;:=0; L2:=0;i:=1 to n do:=K1+X[i];:=K2+X[i]*X[i];:=L1+Y[i];:=L2+X[i]*Y[i];;:=(L2*K1-L1*K2)/(K1*K1-n*K2);:=(K1*L1-n*L2)/(K1*K1-n*K2);('A0= ',A0:4:2, 'A1= ',A1:4:2);
Readkey;.
.4 Результаты
.4.1 Машинный iёт
Подставляем значения х и у из таблицы 7.1. (см. стр.25).
А0= 3,08; А