Автор: Пользователь скрыл имя, 05 Декабря 2011 в 12:27, реферат
Оперативная память (RAM, Random Access Memory, память произвольного доступа) - это энергозависимая среда, в которую загружаются и в которой находятся прикладные программы и данные в момент, пока вы с ними работаете. Когда вы заканчиваете работу, информация удаляется из оперативной памяти. Если необходимо обновление соответствующих дисковых данных, они перезаписываются. Это может происходить автоматически, но часто требует команды от пользователя.
c[3]=5 d[3]=1
c[4]=4 d[4]=2
c[5]=3 d[5]=3
c[6]=5 d[6]=1
c[7]=3
d[3]=3
1.2.
Построение графика
функции в алфавитно-цифровом
или графическом
режиме
Пусть нужно вывести на алфавитно-цифровой экран монитора график функции y= f(x) в заданном диапазоне изменения аргумента х от а до b с числом точек графика n (n£25). Перед выводом графика нужно напечатать вычисленные значения yi в виде таблицы, также напечатать наибольшее и наименьшее значения функции f(x).
Рассмотрим решение этой задачи на конкретном примере:
. Число точек графика равно 20.
Примем
ширину поля графика w, равной 61 позиции.
Отступим от левого края экрана на
m= 10 позиций. Для вывода строки графика
выделим символьный массив С, состоящий
из (w+m) элементов, т.е. 71 элемента. Масштаб
по оси х примем равным шагу h при перемещении
на одну строку. Масштаб по оси y выберем
таким, чтобы максимально использовать
поле графика w. Для это необходимо вычислить
ymax = max {yi} и ymin = min{yi}
i i
Определим масштаб my по формуле:
где ] [ - целая часть выражения; 0.5 добавлено для округления до ближайшего целого.
Масштаб my означает, что при каждом изменении значения функции на величину my символ, изображающий точку на графике, смещается в очередную позицию по строке.
По вычисленным значениям ymin и my определим номер позиции k, в которой изображается ось 0x :
Для определения номера l позиции в строке, в которой надо изобразить значение yi, воспользуемся формулой
.
Для вывода собственно графика в цикле в очередной строке, соответствующей значениям аргумента xi и функции yi, выведем символ ‘I’ в позиции с номером k и символ ‘*’ в позиции с номером l ( при l= k в данной позиции следует выводить символ ‘*’).
Схема алгоритма
решения задачи имеет вид:
Начало
11
1 a, b, n
w, m 12
2 Заполнение
массива С 13 Заголовок
пробелами
3 h =
ymax=-105 15
ymin =+105
x = a
4 i = 1, n 17 печать
5 yi = f(x)
6 yi> ymax нет 18 Cl = ` `
да 8 yi< ymin нет
7 ymax=yi да нет 19 k = l
9 ymin= yi да
10 x = x + h конец
Пояснения. В блоке 2 символьный массив С заполняется пробелами. Блоки 3-10 организуют вычисление текущего значения функции yi = f(xi), запоминание вычисленных значений yi в массиве y, состоящем из n элементов, вычисления наибольшего и наименьшего значений функции на заданном интервале изменения – аргумента x. В блоках 11-12 вычисляется масштаб my графика по оси y, номер k позиции в строке графика, соответствующий оси 0х, и осуществляется присваивание k-тому элементу массива c символа I.
Вычисление номера l в строке, соответствующей точке графика, занесение в l-й элемент массива c символа ‘*’ и печать символьного массива c реализуется блоками 15-17; восстановление символьного массива c в исходное состояние – блоками 18-20.
Программа, реализующая схему алгоритма, имеет вид:
PROGRAM GRAFIK;
CONST W = 61; M = 10;
VAR
Y: ARRAY [1..25] OF REAL;
C: ARRAY [1..71] OF CHAR;
K, L, N, I, J: INTEGER;
A, B, H, Y MAX, Y MIN, X, MY: REAL;
BEGIN
WRITELN (¢ ВВЕДИТЕ A, B, N¢);
READ (A, B , N);
Y MAX = -1E4; YMIN:=+1E4;
H: = (B-A)/N;
FOR I:=1 TO 71 DO C [ I ]: = ¢ ¢;
X: = A;
FOR I: = 1 TO N DO
BEGIN
Y[ I ]: = SIN(X)/X ;
IF Y [I ] > Y MAX THEN Y MAX: = Y [I ];
IF Y [I ] < Y MIN THEN Y MIN: = Y [I ];
X: = X+H;
END;
MY:=ROUND((YMAX-YMIN)/W+
K:=ROUND (ABS(YMIN)/MY+0.5)+M;
C[K]:= ¢I ¢ ;
WRITELN (¢ГРАФИК ФУНКЦИИ Y=SIN(X)/X ¢);
WRITELN (¢ …………………………………¢);
FOR I:=1 TO N DO
BEGIN
L:=ROUND ((Y[ I ]- YMIN)/MY+0.5)+M;
C[ L]: = ¢ *¢;
FOR J: = 1 TO 71 DO
WRITE (C[J]);
WRITELN (¢ ¢);
C[ L]: = ¢ ¢;
IF K =L THEN C [ L ]:= ¢I¢;
END;
END.
ввод:
a=0.1
b=2.5
n=40
2. Численные методы
решения задач
2.1.
Решение алгебраических
и трансцендентных уравнений
К линейным уравнениям относятся алгебраические и трансцендентные уравнения. Уравнение называется алгебраическим, если функция f(x) представляет собой многочлен, какой-либо степени.
f(x)=a0xm+a1xm-1+…+am-1x
m 3
Если же в функцию f(x) входят одновременно разные элементарные функции, то такое уравнение называется трансцендентным.
f(x)=sinx+lnx=0
Такие уравнения решаются приближенными методами. Решение разбивается на 2 этапа:
1).
Отделение корней, т.е. нахождение
достаточно малой области,
2).
Уточнение корня заданной
Здесь известны следующие методы итераций, ньютона, хорды касательной половинного деления и т.д.
Отделение корней.
Пусть решается уравнение f(x)=sinx+lnx=0. Отделение корней можно сделать 2-мя способами:
графическим и алгебраическим.
В
графическом методе на координатной
плоскости строится график функции
и находится область
sinx=-lnx
f1(x)=sinx
f2(x)=-lnx
x*Î
[0;1]
В алгебраическом методе отделения корней с некоторым шагом h просматривают достаточно большую область существования корня уравнений.
xi+1=xi+h
Из
математики известно, что непрерывная
функция на небольшом отрезке
содержит корень уравнения, если на концах
отрезках функция f(x) имеет разные знаки.
Уточнение
корня по методу половинного
деления.
Пусть решается уравнение f(x)=0 и функция f(x) непрерывна на отрезке [a,b] =[x1,x2].
Отрезок [a,b] содержит корень, т.е. f(a)*f(b)<0.
Делим
отрезок [a,b] пополам, т.е. выбираем начальное
уравнение корня x=
, если f(x)=0, то х является корнем уравнения,
если f(x) не равно нулю, то выбираем тот
из отрезков [a,x] или [x,b], на концах которого
функция f(x) имеет противоположные знаки.
Выбранный отрезок снова делим пополам
и проводим те же рассуждения. Процесс
деления отрезков пополам продолжается
до тех пор, пока длина отрезка на концах
которого функция имеет разные знаки не
станет < e
[b-a]< e =10-5 .
Схема
реализации алгоритма имеет вид:
[a,b]=[x1,x2] e=10-5
Уточнение
корня по методу Хорд
По методу Хорд выбирается произвольное начальное значение корня из отрезка [a,b] на котором корень существует xÎ[a,b]=[x1,x2].
Информация о работе Современное состояние вычислительной техники