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

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

#1 Posted: 10/27/2012 8:30:57 AM
grinnik

grinnik

0 likes in 5 posts.

Group: User

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


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

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

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

Спасибо
#2 Posted: 10/27/2012 8:57:37 AM
Mikka

Mikka

36 likes in 206 posts.

Group: User

Вот пример..
Лист1.sm (4 KiB) downloaded 78 time(s).
Не официальный справочник http://sites.google.com/site/mikkhalichlab/ jabber конференция smath@conference.jabber.ru
#3 Posted: 10/27/2012 10:27:49 AM
grinnik

grinnik

0 likes in 5 posts.

Group: User

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


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

Извините.
#4 Posted: 10/27/2012 12:40:28 PM
Martin Kraska

Martin Kraska

1222 likes in 2150 posts.

Group: 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 Posted: 10/27/2012 12:43:43 PM
Mikka

Mikka

36 likes in 206 posts.

Group: User

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

grinnik

0 likes in 5 posts.

Group: User

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

Martin Kraska

1222 likes in 2150 posts.

Group: 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 users liked this post
Mikka 10/28/2012 2:39:00 AM, Mike Kaganski 10/28/2012 4:52:00 AM, Медведев Виктор 10/30/2012 6:08:00 AM
#8 Posted: 10/30/2012 6:19:04 AM
Медведев Виктор

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

13 likes in 157 posts.

Group: 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 Posted: 10/30/2012 8:43:53 AM
Медведев Виктор

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

13 likes in 157 posts.

Group: User

Wrote

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




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

Martin Kraska

1222 likes in 2150 posts.

Group: 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 Posted: 10/31/2012 2:42:23 AM
Медведев Виктор

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

13 likes in 157 posts.

Group: User

Wrote


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

МК




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