суббота, 19 марта 2011 г.

Перемножение массивов чисел в маткаде.

При выполнении расчётов может возникнуть необходимость в перемножении большого количества чисел что при расчёте вручную может занять много времени. Использованием программы MathCAD можно упростить данную процедуру. Если например в виде таблицы задана зависимость тока от напряжения для какого либо прибора и необходимо найти зависимость  сопротивления этого прибора от тока то сделать это можно используя, рассмотренные ниже, способы.

1. Первый способ.

пример с выделением главной диагонали


Токи и напряжения задаются в виде транспонированных матриц-строк. Транспонирование матрицы - это замена её сторок её столбцами или наоборот. При транспонировании матрицы-строки она становится матрицей-столбцом. В примере транспонирование матриц с заданными значениями сделано для экономии места. Далее единица делится на матрицу I и это умножается на транспонированную матрицу U (обязательно умножается в таком порядке как в примере). Потом какой либо переменной присваивается диапазон значений от 0 до числа элементов матриы I или U (число их элементов должно быть равно). Для вывода результата используется переменная в нижнем индексе которой, через запятую, прописаны идентификаторы переменной которой присваивался диапазон. После этой переменной ставится знак равно и (если установлен автоматический расчёт) автоматически выводится таблица отношений заданных напряжений к заданным токам в том пордке в котором они прописаны в матрицах U и I.


матрица R

 В примере R - это матрица - произведение матрицы - столбца 1/I на матрицу строку U. На главной диагонали матрицы R располагаются произведения соответствующих элементов матриц 1/I и U например 1/I0*U0=R0,0=100  или 1/I1*U1=R1,1=57.143 (нумерация элементов матриц в маткаде начинается с нуля).

2. Второй способ.

пример с программированием в маткаде

Этот способ годится для версий маткада имеющих встроенный язык программирования. В маткаде есть функция last() она возвращает номер последнего элемента матрицы иденитфикатор которой вписан в скобки стоящие после идентификатора этой функции. Для программирования пишется какая либо переменная после неё ставится знак присвоения потом на панели программирования выбирается Add Line (добавить линию)(в данном случае выбирается 3 раза). Потом какой либо переменнной (например i) присваивается начальное значение 0 (в программе присвоение обозначается стрелочкой). На панели программирования выбирается цикл while и условие цикла прописывается как в примере (выполнение пока i меньше или равно (не больше) номера последнего элемента заданной матрицы) в теле цикла создаётся ещё одна линия и в ней прописыавется присвоение i-ому элементу матрицы r значения отнощения i-го элемента матрицы U к i-му элементу матрицы I. В следующей строке тела цикла прописывается команда увеличения переменной i на единицу (инкремент i). Под циклом записывается r, таким образом массив r из программы запишется в R2.
ВАХ и зависимость статического сопротивления от тока
 Псле рассчётов можно построить зависимости в виде графиков. Второй способ целесообразно исползовать когда требуется автоматизировать остальной расчёт, первый способ для простого получения значений без остального расчёта прописанного в маткаде или без связи с ним. Во втором примере в цикле можно прописать и более сложное выражение. Язык программирования в маткаде достаточно прост и лёгок в освоении использоване этого языка может ускорить решение определённых задач на которые у неопытного программиста может уйти много времени при использовании других языков. Возможность построения графиков в маткаде избавляет от необходимости использования GDI или других средств вывода графики. Но средствами маткада не заменить возможности GDI поэтому при решении более сложных задач придётся перейти на более сложный язык.


1 комментарий: