Итерационные вычисления

Итерационные вычисления - Итерационные вычисления - Сообщения

#1 Опубликовано: 27.10.2012 08:30:57
grinnik

grinnik

0 сообщений из 5 понравились пользователям.

Группа: User

Почему-то простые вещи даются труднее всего


Откуда взялось 14. Я ведь не просил суммировать.
Можно ли по аналогии с MathCAD получить массив квадратов без программирования.
Если нет, то как сделать "поизящнее". Может я где-то в примерах не заметил?

В одной из веток встретил такое

Но повторить не получилось.

Спасибо
#2 Опубликовано: 27.10.2012 08:57:37
Mikka

Mikka

36 сообщений из 206 понравились пользователям.

Группа: User

Вот пример..
Лист1.sm (4 КиБ) скачан 78 раз(а).
Не официальный справочник http://sites.google.com/site/mikkhalichlab/ jabber конференция smath@conference.jabber.ru
#3 Опубликовано: 27.10.2012 10:27:49
grinnik

grinnik

0 сообщений из 5 понравились пользователям.

Группа: User

Спасибо большое. Все понятно, но я пытаюсь подготовить несколько лабораторных работ для студентов.
А для них это пока сложно.
Я все-таки смог повторить пример с картинки выше.


Насколько это корректно?
Просто не пойму, чем этот пример отличается от того, что я приводил выше?

Извините.
#4 Опубликовано: 27.10.2012 12:40:28
Martin Kraska

Martin Kraska

1222 сообщений из 2150 понравились пользователям.

Группа: Moderator

Wrote

Почему-то простые вещи даются труднее всего


Откуда взялось 14.


это векторная операция (скалярное произведение), то же самое как [MATH]transpose(i)*i[/MATH] или [MATH]i*i[/MATH]. Если требуется по-элементная операция, тогда обычно необходимы функции for и range. Неявные итерации как в mathcad в SMath к сожалению не существуют. Умножение вектора на скаляр и сложение векторов наверно единственные прямые по-элементные операции.

МК

Martin Kraska Pre-configured portable distribution of SMath Studio: https://en.smath.info/wiki/SMath%20with%20Plugins.ashx
#5 Опубликовано: 27.10.2012 12:43:43
Mikka

Mikka

36 сообщений из 206 понравились пользователям.

Группа: User

Пробовал простые действия: + - * /
Работает...
А вот со степенью и различными функциями не выходит...
Не официальный справочник http://sites.google.com/site/mikkhalichlab/ jabber конференция smath@conference.jabber.ru
#6 Опубликовано: 27.10.2012 14:15:55
grinnik

grinnik

0 сообщений из 5 понравились пользователям.

Группа: User

Кажется разобрался более-менее. Спасибо за помощь. Единственное, терзают "смутные сомнения".
Если есть возможность определить множество, например i:=1..10
или как в документации "переменная, изменяющаяся в диапазоне"
То какой практический смысл этого определения? Не встречал в примерах.
#7 Опубликовано: 27.10.2012 19:36:29
Martin Kraska

Martin Kraska

1222 сообщений из 2150 понравились пользователям.

Группа: Moderator

Диапазон просто даёт вектор, которого можно использовать как вектор или в при строении итератора в петлях.
Для расчёта с множеством значении существует тип "система", которыи создаёется только через петли (программированием, так сказать).

[MATH]v:sys(0;1;1)[/MATH]

[MATH]for(i;range(1;10);el(v;i):i)[/MATH]


[MATH lang=ENG]v=sys(1,2,3,4,5,6,7,8,9,10,10,1)[/MATH]

[MATH lang=ENG]v^2=sys(1,4,9,16,25,36,49,64,81,100,10,1)[/MATH]


[MATH lang=ENG]sin(v)=sys(0.84,0.91,0.14,-0.76,-0.96,-0.28,0.66,0.99,0.41,-0.54,10,1)[/MATH]

Мимоходом, вот как получается список квадратов без программирования, зато гораздо смутнее:

[MATH lang=ENG]v:range(1,10)[/MATH]

[MATH lang=ENG]diag(v)*v=mat(1,4,9,16,25,36,49,64,81,100,10,1)[/MATH]

MK
Martin Kraska Pre-configured portable distribution of SMath Studio: https://en.smath.info/wiki/SMath%20with%20Plugins.ashx
3 пользователям понравился этот пост
Mikka 28.10.2012 02:39:00, Mike Kaganski 28.10.2012 04:52:00, Медведев Виктор 30.10.2012 06:08:00
#8 Опубликовано: 30.10.2012 06:19:04
Медведев Виктор

Медведев Виктор

13 сообщений из 157 понравились пользователям.

Группа: User

Wrote

Диапазон просто даёт вектор, которого можно использовать как вектор или в при строении итератора в петлях.
Для расчёта с множеством значении существует тип "система", которыи создаёется только через петли (программированием, так сказать).

МК

Мимоходом, вот как получается список квадратов без программирования, зато гораздо смутнее:

[MATH lang=ENG]v:range(1,10)[/MATH]

[MATH lang=ENG]diag(v)*v=mat(1,4,9,16,25,36,49,64,81,100,10,1)[/MATH]



[MATH]v:sys(0;1;1)[/MATH]

[MATH]for(i;range(1;10);el(v;i):i)[/MATH]


[MATH lang=ENG]v=sys(1,2,3,4,5,6,7,8,9,10,10,1)[/MATH]

[MATH lang=ENG]v^2=sys(1,4,9,16,25,36,49,64,81,100,10,1)[/MATH]


[MATH lang=ENG]sin(v)=sys(0.84,0.91,0.14,-0.76,-0.96,-0.28,0.66,0.99,0.41,-0.54,10,1)[/MATH]



По поводу списка квадратов без программирования с использованием оператора for - улыбнуло...:d
Но все равно спасибо!
#9 Опубликовано: 30.10.2012 08:43:53
Медведев Виктор

Медведев Виктор

13 сообщений из 157 понравились пользователям.

Группа: User

Wrote

Почему-то простые вещи даются труднее всего




Кстати, интересную тему подняли... Я пошел чуть дальше и попытался возвести вектор i в 3,4,5... степени. Если степень четная - получается одно число, если нечетное - получается вектор, у которого элементы равны номинальному значению, удвоенному и утроенному значению числа, получаемого при возведении вектора в ту четную степень, которая предшествует нечетной. Вопрос Андрею - можно объяснить механизм, по которому происходят данные расчеты (возведение вектора в степень)?
#10 Опубликовано: 30.10.2012 18:19:50
Martin Kraska

Martin Kraska

1222 сообщений из 2150 понравились пользователям.

Группа: Moderator

Wrote

Wrote


Кстати, интересную тему подняли... Я пошел чуть дальше и попытался возвести вектор i в 3,4,5... степени. Если степень четная - получается одно число, если нечетное - получается вектор, у которого элементы равны номинальному значению, удвоенному и утроенному значению числа, получаемого при возведении вектора в ту четную степень, которая предшествует нечетной. Вопрос Андрею - можно объяснить механизм, по которому происходят данные расчеты (возведение вектора в степень)?



возведение в степень - это просто повторное умножение. Умножение совершается в зависимости от типа множителей:
- вектор на число или число на вектор дает по-элементное произведение вектора на число, т.е. вектор
- вектор на вектор дает скалярное произведение, т.е. число
вектор во второй степени: вектор на вектор есть число
вектор в третьей степени: (вектор на вектор) на вектор есть вектор
и.т.д.

МК


Martin Kraska Pre-configured portable distribution of SMath Studio: https://en.smath.info/wiki/SMath%20with%20Plugins.ashx
#11 Опубликовано: 31.10.2012 02:42:23
Медведев Виктор

Медведев Виктор

13 сообщений из 157 понравились пользователям.

Группа: User

Wrote


возведение в степень - это просто повторное умножение. Умножение совершается в зависимости от типа множителей:
- вектор на число или число на вектор дает по-элементное произведение вектора на число, т.е. вектор
- вектор на вектор дает скалярное произведение, т.е. число
вектор во второй степени: вектор на вектор есть число
вектор в третьей степени: (вектор на вектор) на вектор есть вектор
и.т.д.

МК




Спасибо за ответ, честно говоря, я и сам потом до этого додумался.
Но автор, который начинал тему, думал получить вектор с возведенными в квадрат элементами исходного. А это, похоже, только ручками...
  • Новые сообщения Новые сообщения
  • Нет новых сообщений Нет новых сообщений