Скаляр и вектор в Mathcad

Форум пользователей пакета Mathcad

Модератор: Admin

VFO
Сообщения: 4227
Зарегистрирован: Ср фев 27, 2002 8:03 pm

Скаляр и вектор в Mathcad

Сообщение VFO » Сб янв 21, 2012 8:10 pm

Буду рад услышать мнение форумчан по статье "Скаляр и вектор в компьютерных вычислениях" - см. http://twt.mpei.ac.ru/ochkov/Mathcad-15 ... Vector.pdf

Korobov V I
Сообщения: 1609
Зарегистрирован: Вт янв 21, 2003 5:12 pm

Сообщение Korobov V I » Пн янв 23, 2012 11:08 am

Что-то я совсем запутался в векторах, матрицах и массивах. Начнем по порядку.
1. Есть переменная i:=0..2. Ясно, что это не вектор, ибо не было когда-то дискуссии вокруг перевода Range Variable в вектор. Но i - это массив или нет?
2. x[i:=i. Теперь x - вектор. Понятно, что и массив. Но если я определяю переменную s (см. рис.), то Mathcad говорит, что s не является массивом.
Просветите. Чем же range variable отличается от массива?
Изображение

Vladimir__
Сообщения: 1660
Зарегистрирован: Вс дек 21, 2003 8:52 am

Сообщение Vladimir__ » Вт янв 24, 2012 10:19 am

Замеченные ошибки в статье:

1. Страница 1.

Изображение


2. Страница 2. Наверное, должно быть "В расчете показанном на рис. 1, ...":


Изображение


3. Страница 3.

Изображение


4. Страница 5.

Изображение

VFO
Сообщения: 4227
Зарегистрирован: Ср фев 27, 2002 8:03 pm

Сообщение VFO » Чт янв 26, 2012 10:39 pm

Korobov V I писал(а):Что-то я совсем запутался в векторах, матрицах и массивах. Начнем по порядку.
1. Есть переменная i:=0..2. Ясно, что это не вектор, ибо не было когда-то дискуссии вокруг перевода Range Variable в вектор. Но i - это массив или нет?
2. x[i:=i. Теперь x - вектор. Понятно, что и массив. Но если я определяю переменную s (см. рис.), то Mathcad говорит, что s не является массивом.
Просветите. Чем же range variable отличается от массива?
Изображение

После вводв в Mathcad программирования (6-я версия, если не ошибаюсь) Range Variable стала, в принципе, лишней. Без нее можно спокойно обойтись, задействуя в расчетах цикл for. Range Variable используют по старой привычке.

VFO
Сообщения: 4227
Зарегистрирован: Ср фев 27, 2002 8:03 pm

Сообщение VFO » Чт янв 26, 2012 10:41 pm

Vladimir__ писал(а):Замеченные ошибки в статье:

1. Страница 1.

Изображение


2. Страница 2. Наверное, должно быть "В расчете показанном на рис. 1, ...":


Изображение


3. Страница 3.

Изображение


4. Страница 5.

Изображение

Спасибо, исправлюсь!
А что по сути поставленной проблемы Вы можете сказать?

Chernykh_IL
Сообщения: 60
Зарегистрирован: Чт фев 02, 2006 11:55 am

Сообщение Chernykh_IL » Пт янв 27, 2012 7:22 pm

Не знаю, стоит ли уделять столь пристальное внимание тому, что понятие вектор имеет различный смысл в математике(программировании) и физике (хотя, может быть я не вполне правильно понял, на что же именно уважаемый автор обращает наше внимание). Очевидно, что в технике есть масса примеров когда одним и тем же термином обозначаются совершенно разные понятия. И не только в технике. Возьмем,к примеру, термин функция:
1.Функция (программирование) — вид подпрограммы в информатике
2. Функция (философия) — обязанность, круг деятельности.
Рискну предположить, что студент-философ, решившийся написать программу, будет, ммм..., слегка дезориентирован. :)

В задаче о движении тела в пространстве (Mathcad 15) нет необходимости изменять значение переменной ORIGIN. Достаточно сделать присвоения x:=0 , y:=1 , z:=2 . (Я обычно говорю студентам: решите с 0 или 1 начинается индексация массивов "у Вас в голове" и придерживайтесь этого всю жизнь.)

Что касается феномена потери интереса к программированию. С "во-первых" и "во-вторых", вряд-ли кто-то не согласится. Третья, причина так-же в тексте статьи присутствует, но я бы точнее ее сформулировал: появились такие программные средства (системы имитационного моделирования, конечно-элементные пакеты и т.п.), имея которые, для решения конкретной технической задачи не требуется написать даже одной строчки программного кода. Более того, не требуется даже записывать исходные системы уравнений (и это печально). Студенты это отлично поняли. Но, столь мощные инструменты создают иллюзию "не нужности знания" фундаментальных законов (возможно, я не очень удачно это сформулировал). Это приводит, в частности, к неспособности студента оценить правильность полученного результата.
С другой стороны, сам процесс обучения получает совершенно новые возможности.Можно сосредоточится не на обучении технологии расчета (то бишь написании программы), а на физике процессов и явлений, проводить их исследования.
Я пошел этим путем. С 90-х годов я прекратил обучение студентов (будущих инженеров-электриков) программированию, а стал использовать при обучении программы схемотехнического моделирования, имитационного моделирования и "полевые" пакеты и т.п. MATHCAD, конечно же, входит сюда. Программированию студентов конечно же учат в курсе информатики и в других курсах, связанных, например, с разработкой систем управления (хотя и здесь уже можно обойтись без программирования).

Не могу согласится с тем, что Range Variable стала лишней. На мой взгляд, это одна из самых удачных (и понятных) конструкций, которая позволяет выполнять повторяющиеся вычисления не прибегая к программированию (его ведь еще изучать нужно...).

Таково мое мнение.

Chernykh_IL
Сообщения: 60
Зарегистрирован: Чт фев 02, 2006 11:55 am

Сообщение Chernykh_IL » Пт янв 27, 2012 7:41 pm

Чем же range variable отличается от массива?

Тем, что к отдельному элементу массива можно обратиться (использовать его), а к отдельному элементу Range Variable обратиться нельзя.

VFO
Сообщения: 4227
Зарегистрирован: Ср фев 27, 2002 8:03 pm

Сообщение VFO » Сб янв 28, 2012 9:19 am

Chernykh_IL писал(а):
Чем же range variable отличается от массива?

Тем, что к отдельному элементу массива можно обратиться (использовать его), а к отдельному элементу Range Variable обратиться нельзя.


Range variable можно преобразовать в вектор, а у этого вектора обратиться к элементу.
Range variable, конечно, использовать удобно. Но нужно понимать, что он(а) был введен в Mathcad как вспомогательное средство для ввода векторов и матриц. Сейчас без Range variable, повторяю, в принципе можно обойтись.

VFO
Сообщения: 4227
Зарегистрирован: Ср фев 27, 2002 8:03 pm

Сообщение VFO » Сб янв 28, 2012 9:35 am

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

Таково мое мнение.

Спасибо за развернутый комментарий.
К нему я бы хотел добавить следующее.
Да, современные средства позволяют решать довольно сложные задачи без привлечения классического программирования. Но без программирвания не обойтись. Это знают все, кто серьезно работал с Mathcad, например, или с другими матпакетами.
Беда нашей средней и высшей школы в том, что там изучают сначала программирование, а потом и далеко не всегда "современные программы решения задач". Мне мои студенты говорят, что они целый год изучали, как на Паскале найти максимальный элемент матрицы, а потом то место, где он находится. Т.е. программировали маткадовские встроенные функции max и match. А можно было бы на информатике решать современыми средствами задачи по математике, физике, химии... Или какие-то другие интересные а не рутинные задачи. См. например http://twt.mpei.ac.ru/ochkov/Mathcad-15/SolveImage.pdf
Статью про вектор и матрицу я послал в журнал "Информатика в школе" чтобы еще раз заострить внимание на этой проблеме - проблеме отвращения школьников к информатике. Они говорят так: "Компьютер хорош для игр, а все остальное - полный отстой!".
Учителя информатике в школах и вузах преподают не то, что нужно, а то, что сами изучали 20-30 лет назад. Или то, что сейчас им на курсах переподготовки дали преподаватели со знаниями 20-30 летней давности...

Chernykh_IL
Сообщения: 60
Зарегистрирован: Чт фев 02, 2006 11:55 am

Сообщение Chernykh_IL » Сб янв 28, 2012 10:15 am

Но без программирвания не обойтись. Это знают все, кто серьезно работал с Mathcad, например, или с другими матпакетами.

Да. Но инженер-эксплуатационник или проектировщик не работает с такими программами серьезно.
Программированию необходимо, на мой взгляд учить, в магистратуре, или даже в аспирантуре, но никак не на 1-2 курсах ВУЗа (я, естественно, не имею в виду специальности компьютерно-информационной направленности). Т.е. тогда, когда студент выходит на практическое применение знания программирования - разработка программ исследовательской направленности, управляющих программ и т.п.
Мне мои студенты говорят, что они целый год изучали, как на Паскале найти максимальный элемент матрицы, а потом то место, где он находится.

Аналогично. А потом они учат С и Ассемблер в микропроцессорном курсе...

VFO
Сообщения: 4227
Зарегистрирован: Ср фев 27, 2002 8:03 pm

Сообщение VFO » Сб янв 28, 2012 10:24 am

Мне мои студенты говорят, что они целый год изучали, как на Паскале найти максимальный элемент матрицы, а потом то место, где он находится.

Аналогично. А потом они учат С и ассемблер в микропроцессорном курсе...

... и на всю оставшуюся жизнь получают отвращение к этому предмету, если еще не понимают, зачем это нужно...

Korobov V I
Сообщения: 1609
Зарегистрирован: Вт янв 21, 2003 5:12 pm

Сообщение Korobov V I » Сб янв 28, 2012 10:25 am

Chernykh_IL писал(а):
Чем же range variable отличается от массива?

Тем, что к отдельному элементу массива можно обратиться (использовать его), а к отдельному элементу Range Variable обратиться нельзя.


Изображение

VFO
Сообщения: 4227
Зарегистрирован: Ср фев 27, 2002 8:03 pm

Сообщение VFO » Сб янв 28, 2012 1:14 pm

Korobov V I писал(а):
Chernykh_IL писал(а):
Чем же range variable отличается от массива?

Тем, что к отдельному элементу массива можно обратиться (использовать его), а к отдельному элементу Range Variable обратиться нельзя.


Изображение

Не Vector, а Victor :wink: