Программирование матричных операций 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Программирование матричных операций



При выполнении расчетно-графического задания необходимо разработать программу решения четырех взаимосвязанных задач. Рассмотрим конкретный пример.

 

В результате выполнения работы разрабатывается одна программа, состоящая из четырех частей. Необходимо составить одну общую блок-схему и привести листинг разработанной программы.

Часть 1

Блок-схема Листинг программы
  Cls n=6 dim a(n,n),x(n) rem Part 1 Raschet elementov matricy A for i=1 to n:for j=1 to n a(i,j)=(2*i*j+4*i)/j next j:next i? "Matrica A" for i=1 to n:for j=1 to n? using "###.###";a(i,j); next j? next i

Часть 2

 

 

Блок-схема Листинг программы
  rem Part 2 Raschet elementov vektora X for i=1 to n s=0 for j=1 to n s=s+a(i,j)*a(i,j) next j x(i)=sqr(s)/n next i? "Vector X" for i=1 to n? using "###.###";x(i); next i

Часть 3

 

 

Блок-схема Листинг программы
  rem Part 3 for i=1 to n-1 k=i for j=i+1 to n if a(j,2)>a(k,2) then k=j next j if i<>k then c=a(i,2) a(i,2)=a(k,2) a(k,2)=c end if next i?:? "Uporyadochennaya matritca A" for i=1 to n for j=1 to n? using "###.###";a(i,j); next j? next i

Часть 4

 

 

Блок-схема Листинг программы
  rem Part 4 Vychislenie Y y=1 for i=1 to n s=0 for k=1 to i s=s+x(k) next k if x(i)<>0 then y=y*x(i)*s next i? "Znachenie Funktcii Y"? Y end

Дополнение

По умолчанию во всех трех системах минимальным значением индекса считается 0. Для изменения этой границы используется оператор OPTION BASE:
OPTION BASE 0
OPTION BASE 1
Оператор OPTION BASE должен находиться среди первых операторов программы до объявления какого-либо массива. В системе GW BASIC отсчет индексов всегда ведется от нуля, т.е. действие оператора OPTION BASE игнорируется. Система Quick BASIC позволяет по умолчанию ограничить минимальное значение индекса либо нулем, либо единицей. Входной язык Turbo BASIC позволяет использовать в качестве минимальной границы любое число из диапазона [0, 32767]:
OPTION BASE 1990
В системах Quick и Turbo BASIC при об'явлении конкретного массива наряду с максимальным значением индекса можно указать и его минимальную границу. Оператор DIM, используемый для этой цели, имеет свой формат в каждой из систем:
GW: DIM V (I1max,I2max,...)
Turbo: DIM [ STATIC ] V ([I1min:]I1max,[I2min:]I2max,...) DIM [ DYNAMIC ] V ([I1min:]I1max,[I2min:]I2max,...)
Quick: DIM [ SHARED ] V ([I1min TO]I1max,[I2min TO]I2max,...) [ AS type ]
Значение минимального индекса в Quick-системе может быть и отрицательным. Атрибуты STATIC или DYNAMIC определяют способ выделения оперативной памяти под массив и вытекающие из этого возможности освобождения занимаемого участка или его использования для других целей. Статическим массивам память выделяется во время компиляции. Такой массив нельзя переопределить или уничтожить. По умолчанию массивы, границы которых заданы константными выражениями, в Turbo-системе считаются статическими. Выделение памяти для хранения динамических массивов осуществляется во время выполнения программы. Динамические массивы можно многократно переопределять и уничтожать. Если в операторе DIM граница массива задана значением переменной, то такой массив считается динамическим. Например:
INPUT "Введите размерность массива TOR"; N
DIM TOR(N)
К динамическим причисляются и все массивы, объявляемые локальными в подпрограммах (см. оператор LOCAL). Система Turbo BASIC дает пользователю возможность установить свое правило предпочтения для выбора динамического или статического способа распределения памяти под массивы. Для этой цели предназначены метаоператоры $STATIC и $DYNAMIC. Аналогичные команды, изменяющие режим работы компилятора, имеются и в системе Quick BASIC. Один из указанных метаоператоров помещается в начале программы и, тем самым, устанавливается соответствующее правило умолчания. Например:
$DYNAMIC
.........
DIM A(50)
Способ распределения памяти под массивы, являющиеся внутренними в подпрограммах или функциях, в Quick BASIC'е может задаваться с помощью атрибутов STATIC или DYNAMIC, записываемых в конце заголовка соответствующей процедуры (см. операторы SUB и FUNCTION).
Удаление динамического массива из памяти выполняет оператор ERASE:
ERASE CENA,TEXT$
Системы GW и Turbo BASIC позволяют многократно переопределять размеры динамического массива. Для этого старый массив должен быть предварительно удален (ERASE), после чего его имя можно снова использовать в операторе DIM.
Применение оператора ERASE к статическому массиву приводит к инициализации (сбросу) значений всех его элементов.
В Quick-системе переопределение динамических массивов осуществляется с помощью оператора REDIM даже без их предварительного уничтожения (ERASE):
REDIM [ SHARED ] V([I1min TO] I1max,...) [ AS type ],....
Атрибут SHARED в операторах DIM и REDIM используется в подпрограммах и внешних функциях для указания массивов общего пользования, доступных двум программным модулям.
Операторы DIM и REDIM позволяют в Quick-системе наряду с размерами массивов объявить и тип его элементов:
DIM ABC(-10 TO 20) AS SINGLE
Характеристика type может задаваться служебными словами INTEGER, LONG, SINGLE, DOUBLE, STRING, определяющими один из описанных ранее стандартных форматов. Наряду с этим в Quick BASIC'е элементами массива могут быть переменные типа "запись", структура которых описывается с помощью операторов TYPE - END TYPE.

лекция 10. Введение в численные методы

10.1. Понятие о численных методах Компьютеризация всех сфер человеческой деятельности требует от специалистов разного профиля овладения навыками использования вычислительной техники, которая используется сейчас не только в инженерных и экономических науках, но и в таких традиционно нематематических специальностях, как медицина, лингвистика, психология и др. В связи с этим можно констатировать, что применение ЭВМ приобрело массовый характер. Возникла многочисленная категория специалистов - пользователей ЭВМ, для которых необходима литература по дисциплинам, непосредственно связанным с применением вычислительной техники. Наиболее эффективное применение вычислительная техника нашла при проведении трудоемких расчетов в научных исследованиях. Поскольку компьютер разговаривает на двоичном языке, он "не понимает" постановки задачи, даже в математической формулировке. Для её решения должен быть найден численный метод, позволяющий свести задачу к некоторому вычислительному алгоритму. Разработкой численных методов занимаются специалисты в области вычислительной математики. Вычислительная математика - специальный раздел прикладной математики, посвященный разработке, обоснованию и реализации методов приближенного решения разнообразных задач на уровне математических моделей. С помощью математического моделирования решение научно-технической задачи сводится к решению математической задачи, являющейся её моделью. Для решения математических задач используются различные методы: графические, аналитические и численные. Графические методы позволяют в ряде случаев оценить порядок искомой величины. Основная идея этих методов состоит в том, что решение находится путём геометрических построений. Например, для нахождения корней уравнения f(x)=0 строится график функции y=f(x), точки пересечения которого с осью абсцисс и будут искомыми корнями. При использовании аналитических методов решение задачи удаётся выразить с помощью формул. В частности, если математическая задача состоит в решении простейших алгебраических или трансцендентных уравнений, дифференциальных уравнений и т.п., то использование известных из курса математики сразу приводит к цели. К сожалению, на практике это слишком редкие случаи. Основным инструментом для решения сложных математических задач в настоящее время являются численные методы, позволяющие свести решение задачи к выполнению конечного числа арифметических действий над числами; при этом результаты получаются в виде числовых значений. Многие численные методы разработаны давно, однако при вычислениях вручную они могли использоваться лишь для решения не слишком трудоёмких задач. С появлением ЭВМ начался период бурного развития численных методов и их внедрения в практику. Только вычислительной машине под силу выполнить за сравнительно короткое время объём вычислений в миллионы, миллиарды и более операций, необходимых для решения многих современных задач. При счёте вручную человеку не хватило бы и жизни для решения одной такой задачи. Численный метод наряду с возможностью получения результата за приемлемое время должен обладать и ещё одним важным качеством - не вносить в вычислительный процесс значительных погрешностей. Кроме того, метод должен обладать сходимостью, т.е. приводить к цели за конечное число шагов. 10.2. Численное дифференцирование Производная функции есть предел отношения приращения функции к приращению независимой переменной при стремлении к нулю приращения независимой переменной При численном нахождении производной заменим отношение бесконечно малых приращений функций и аргумента dy/dx отношением конечных разностей. Очевидно, что чем меньше будет приращение аргумента, тем точнее численное значение производной. Первая производная. Двухточечные методы. Для двухточечных методов при вычислении производных используется значение функции в двух точках. Приращение аргумента задается тремя способами, откладывая?x = h вправо, влево и в обе стороны от исследуемой точки. Соответственно получается три двухточечных метода численного дифференцирования: Суть указанных методов проиллюстрирована на рисунке.
 
Рис. 10.1. Методы численного дифференцирования (двухточечные оценки)


Численное значение тангенса угла α образованного касательной к графику y(x) и осью абсцисс, показывает точное значение производной (геометрический смысл производной). Тангенсы углов α1, α2, α3 соответствуют приближенным значениям производных, определенных методами 1,2,3 соответственно (подумайте почему?).
Аналогичным образом могут быть введены производные более высоких порядков. Вторая производная может быть вычислена как производная от первой производной, третья производная - как производная от второй производной и т.д.
Численное дифференцирование применяется тогда, когда функцию трудно продифференцировать аналитически (например, при табличном ее задании). Кроме того, формулы численного дифференцирования широко применяются при разработке вычислительных методов решения многих задач (решение дифференциальных уравнений, поиск решений нелинейных уравнений, поиск точек экстремума функции и др.)

Численное интегрирование

Определение

Определенным интегралом функции F(x), взятом в интервале от a до b, называется предел, к которому стремится интегральная сумма при стремлении всех промежутков Δxi к нулю:

При приближенном вычислении определенного интеграла шаг интегрирования h=Δx выбирается конечным

где Ii - элемент интегральной суммы. Заменяя подынтегральную функцию на каждом шаге отрезками линий нулевого, первого и второго порядков, получаем приближенные формулы для вычисления интеграла методами прямоугольников, трапеций и Симпсона соответственно.

10.3.2. Правило прямоугольников (n=0)

Заменяем график функции F(x) горизонтальной линией (линией нулевого порядка) и вычисляем значение элемента интегральной суммы как площадь прямоугольника

   


где h - шаг интегрирования, у0 - значение функции в точке х=х0.
Заменяя подынтегральную функцию на каждом шаге отрезками линий нулевого порядка, получаем приближенную формулу для вычисления интеграла методом прямоугольников

   

Возможен другой вариант вычисления значения элемента интегральной суммы как площадь следующего прямоугольника

   

Приведенную выше формулу для прибилженного вычисления определенного интеграла называют формулой левых прямоуголников, в отличие от формулы правых прямоугольников, которая вводится следующим образом

10.3.3 Формула трапеций (n=1)

Заменяем график функции F(x) прямой, проходящей через две точки (х00) и (х0+h1), и вычисляем значение элемента интегральной суммы как площадь трапеции
   

Тогда приближенная формула для вычисления значения определенного интеграла методом трапеций принимает вид

10.3.4 Формула Симпсона (n=2)

Этот метод базируется на замене подынтегральной функции квадратичной параболой, которая строится не по двум (как прямая в методе трапеций), а по трем точкам на каждом участке. По этим трем точкам (крайние точки участка и средняя точка) строится интерполяционная функция - полином второго порядка, который аналитически интегрируется. Заменяем график функции F(x) квадратичной параболой, проходящей через три точки с координатами (х00), (х0+hy,у1), (х0+2h,у2) Тогда можно показать, что

Метод средних

В методе прямоугольников применяются две формулы: правых и левых прямоугольников. Однако существует и другой способ замены заданной функции F(x) линией нулевого порядка, при котором прямая проводится через середину отрезка [a,b] - точку x0=(a+b)/2. В этом случае
   

Если разбить отрезок [a,b] на N одинаковых интервалов длины h=(b-a)/N, то применение формулы средних для i-того интервала приводит к выражению

и, соответственно

где x0=a, xN=b.

Метод Эйлера

Формула трапеций может быть уточнена следующим образом где F´a, F´b - значения первой производной подынтегральной функции F(x) на краях интервала интегрирования. Это выражение принято называть формулой Эйлера.

Метод Монте-Карло

Одним из методов приближенного вычисления значений определенных интегралов, при котором погрешность оценивается не гарантированно, является метод Монте-Карло. Основная идея метода состоит в следующем. В методе средних значение подынтегральной функции берется в середине i-того интервала. Но если его заменить величиной подынтегральной функции в некоторой случайно-выбранной точке заданного интервала ci, то получим где ci - равномерно распределена на отрезке [a,b], h=(b-a)/N.


Примеры программ, реализующих описанные выше методы на языке BASIC, приведены в Домашнее задание по теме №1



Поделиться:


Читайте также:




Последнее изменение этой страницы: 2021-04-13; просмотров: 97; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.217.220.114 (0.011 с.)