Сдам Сам

ПОЛЕЗНОЕ


КАТЕГОРИИ







Применение смешанной адресации клеток и имён





Введём в клетки листа Excel входные данные и дадим клеткам имена

выделив диапазон A3:B10 и нажав «Вставка» «Имя» «Создать»

Заполним также диапазоны E3:H3 и D4:D9 значениями t и b соответственно. вводя в клетки формулы, использующие имена, и копируя методом протаскивания.

 

 

 

Введём в клетку E4 формулу =$D4+V_*E$3+g_*E$3^2/2, где применена смешанная адресация, для переменной t расположенной в строке фиксируется (делается абсолютным) номер строки, а для переменной b фиксируется буква столбца.

Копируем формулу из клетки Е4 в другие клетки прямоугольного диапазона Е4:Н9

 

 

 

Решение с использованием функций VBA

Создадим в модуле
(«Вид» «Панели инструментов» «Visual Basic» «Редактор Visual Basic» «Insert» «Module») функцию следующего вида:

Public Function funH(v, t, b) As Single

Const g = 9.81

funH = b + v * t + g * t ^ 2 / 2

End Function

Введём в клетку E4 формулу «=funH(V_;E$3;$D4)», где также применена смешанная адресация и копируем формулу в остальные клетки диапазона.

 

 

Применение функций массивов

Наиболее просто и быстро решение выглядит при применении функций возвращающих массивы. Присвоим имена диапазонам изменения t (E3:H3) и b (D4:D9),
соответственно t_ и b_.

Выделив диапазон E4:H9 введём формулу «=b_+V_*t_+g_*t_^2/2» закончим ввод комбинацией клавиш «Ctrl+Shft+Enter»

 

 

 

Примечание. Для применения функций массивов необязательно давать имена. Формулу можно написать, используя адреса диапазонов и клеток. Например, так {=D4:D9+$B$9*E3:H3+$B$10*E3:H3^2/2}, но применение имён делает формулу намного понятней.

Решение в MathCAD

Зададим входные данные, присваивая переменным значения с единицами измерения

 

 

 

 

Определим функцию

Константу g задавать не надо, так как она является встроенной в MathCAD.

 

Определив ранжированные переменные

можно получить значения функции

 

 

Однако подобное решение вряд ли можно считать приемлемым. Непонятно, каким значениям аргументов, соответствуют значения функции. Результат по своему смыслу должен быть представлен в табличном виде. Для того чтобы избежать указанных недостатков можно поступить следующим образом:

 

Заполним вектор (одномерный массив) b значениями высоты

Число элементов m в векторе b можно вычислить по формуле

 

Введём ранжированную переменную

 

Для начала нумерации массива с единицы надо присвоить
переменной ORIGIN:=1

 

 


для i-того элемента вектора

тогда

 

 

Так как в MathCAD вектор это один столбец для вывода в строку используем операцию транспонирования.

 

 

 

 

Тогда элемент таблицы (матрицы) равен

 

 

Полностью решение в MathCAD выглядит так:

 


Программный элемент «Накопление»

Общая постановка задачи «Накопления» сводится к следующему: надо найти какую либо статистическою характеристику массива (сумму, произведение, среднее арифметическое и т. д.) среди элементов отвечающих некоторому условию (чётных, попадающих в заданный интервал, преобразованных каким либо образом).

Решение в Excel

Будем использовать функции массивов. Для отбора элементов массива применим логическую функцию

ЕСЛИ (лог_выражение; значение_если_истина; значение_если_ложь)

Функции возвращает одно значение, если заданное условие при вычислении дает значение ИСТИНА, и другое значение, если ЛОЖЬ.

При накоплении суммы, в случае невыполнения условия функция должна возвращать 0, для произведения 1.

 

Введём на листе Excel матрицу, строку над матрицей заполним номерами столбцов, столбец слева от матрицы номерами строк. Присвоим имена: диапазону матрицы дадим имя A_, диапазону номеров строк имя I_, диапазону номеров столбцов имя J_.

 

 

Таблица имён

A_ =Лист1!$D$3:$H$7
I_ =Лист1!$C$3:$C$7
J_ =Лист1!$D$2:$H$2

 

Так как в этом типе задач производится обработка элементов массива и вначале неявным образом возвращается массив то, хотя результат получается в одной клетке надо завершать ввод формулы комбинацией клавиш «Ctrl+Shft+Enter».

 

 

Примеры:

 

Рассмотрим подробнее следующий пример:

Найти среднее арифметическое элементов матрицы попадающих в диапазон [x,y].

Подсчёт количества элементов попадающих в диапазон производится по формуле

{=СУММ(ЕСЛИ(A_>=x_;ЕСЛИ(A_<=y_;1;0);0))}

 

Сумма рассчитывается по формуле

{=СУММ (ЕСЛИ(A_>=x_;ЕСЛИ(A_<=y_;A_;0);0))}

 

Для вывода преобразованной матрицы выделим диапазон клеток такой же, как исходная матрица, прономеруем строки и столбцы, дадим им имена и введём формулу
{=ЕСЛИ(I_=2;ЕСЛИ(J_=3;SRA_;A_);A_)}

ввод формулы завершим комбинацией клавиш «Ctrl+Shft+Enter».

 

 

Примечание. Логическую функцию И() в данной задаче применить нельзя, так как при первом значении ЛОЖЬ, она вернёт ЛОЖЬ для всего диапазона. Поэтому приходится применять двойное ЕСЛИ().


Решение в MathCAD

 

В MathCAD индексация массива по молчанию начинается с нуля. Изменить начало массива можно присвоив переменной ORIGIN требуемое значение.

 

ORIGIN:=1 устанавливаем начало массива с единицы.

 

Функция rows (имя массива) возвращает число строк в массиве.

Функция cols (имя массива) возвращает число столбцов в массиве.

Для суммирования применяется символ, произведения

 

 

Например, для получения суммы элементов вектора

 

 

Произведение всех элементов матрицы

 

 

При решении задачи накопления элементов отвечающих некоторому условию надо использовать функцию if().

 

Примеры:

Определить среднее арифметическое элементов на главной

диаго­нали матрицы.

 

Устанавливаем начало нумерации массива с единицы

 

 

Создаём функцию суммы элементов матрицы отвечающих условию, в данном случае условию нахождения на главной диагонали, индекс строки равен индексу столбца

 

 

Функция количества диагональных элементов

 

 

В условных выражениях знак равенства надо вводить как булевское (логическое) равно (Ctrl + =) или с панели

 

 

Имя матрицы Маt – это имя формального аргумента функции, при вызове функции формальный аргумент заменяется фактическим.

 

Функция среднего арифметического диагональных элементов

 

 

 

Протестируем полученную функцию на конкретной матрице

 

 

 


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

 

 

 

Рассмотрим пример с двойным условием.

Найти среднее геометрическое элементов матрицы попадающих в диапазон [x,y] и находящихся в четных столбцах. Полученное значение присвоить элементу матрицы, распо­ложенному во второй строке последнего столбца.

Здесь в логическом выражении надо использовать логическое И

 

 

При отсутствии на панели символов логических операций (в версии MathCAD 6.0) в качестве логического And надо использовать символ умножения (*).

Для логических операндов, операция умножения тождественна операции логического And, операция сложения (+), тождественна операции логического Or (Или).

Для отбора нечетных столбцов применена функция деления по модулю,
которая возвращает остаток деления числа а на число b.

Функция имеет три аргумента: имя матрицы(Mat), нижняя граница(x) диапазона, верхняя граница диапазона(y).

 

 







Что делать, если нет взаимности? А теперь спустимся с небес на землю. Приземлились? Продолжаем разговор...

Что будет с Землей, если ось ее сместится на 6666 км? Что будет с Землей? - задался я вопросом...

ЧТО ТАКОЕ УВЕРЕННОЕ ПОВЕДЕНИЕ В МЕЖЛИЧНОСТНЫХ ОТНОШЕНИЯХ? Исторически существует три основных модели различий, существующих между...

Живите по правилу: МАЛО ЛИ ЧТО НА СВЕТЕ СУЩЕСТВУЕТ? Я неслучайно подчеркиваю, что место в голове ограничено, а информации вокруг много, и что ваше право...





Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:


©2015- 2024 zdamsam.ru Размещенные материалы защищены законодательством РФ.