Дискуссионный математический форумМатематический форум
Математический форум Math Help Planet

Обсуждение и решение задач по математике, физике, химии, экономике

Теоретический раздел
Часовой пояс: UTC + 3 часа [ Летнее время ]
новый онлайн-сервис
число, сумма и дата прописью

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 2 ] 
Автор Сообщение
 Заголовок сообщения: Напишите функцию для конвертирования:
СообщениеДобавлено: 05 дек 2016, 23:54 
Не в сети
Начинающий
Зарегистрирован:
05 дек 2016, 21:58
Сообщений: 7
Откуда: Томск
Cпасибо сказано: 0
Спасибо получено:
0 раз в 0 сообщении
Очков репутации: 1

Добавить очки репутацииУменьшить очки репутации
Напишите функцию для конвертирования {[math]x_{1},x_{2},...,x_{k},x_{k+1}[/math]} в {[math]x_{1} \to x_{2},x_{2} \to x_{3},...,x_{k} \to x_{k+1}[/math]}. Используя функции RotateLeft,Rule,Inner или Most. Нужно это сделать в программе Wolfram Mathematica.

У меня не получается написать эту функцию, потому что я не могу объединить все в одно целое так сказать. Я постараюсь привести подробное описание каждой из функций, что бы было понятно, что они выполняют. Если кто то сможет написать эту функцию, то хотелось бы кратко увидеть еще некоторый комментарий по тому как она работает. Тем кто поможет заранее большое спасибо.

Описание используемых функций:
RotateLeft
RotateLeft [expr,n] - циклы элементов в выражении n позиции переносятся влево.
RotateLeft [expr] - циклы на одну позицию переносятся влево.
RotateLeft [expr,{h1,h2,...}] - циклы элементов на последующих уровнях hi, перемещаются на позицию влево.

Примеры выполнения данной функции в Wolfram Mathematica:
1) Функция сдвигает два элемент вправо:
In[2]:=RotateLeft[{a, b, c, d, e}, 2] 
Out[2]:={c, d, e, a, b}

2)Функция сдвигает один элемент вправо:
In[2]:=RotateLeft[{a,b,c,d,e}]
Out[2]:={b,c,d,e,a}

3) Функция переносит влево на одну позицию на первом уровне, а также вправо на втором уровне:
In[2]:=RotateLeft[{{a,b,c},{d,e,f},{g,h,i}},{1,-1}]
Out[2]:={{f,d,e},{i,g,h},{c,a,b}}

4)Поворот головы любой:
In[2]:=RotateLeft[f[x,y,z]]
Out[2]:=f[y,z,x]

5)
In[2]:=NestList[RotateLeft,{a,b,c,d,e},4]
Out[2]:={{a,b,c,d,e},{b,c,d,a,e},{c,d,e,a,b},{d,e,a,b,c},{e,a,b,c,d}}


Rule
lhs - > rhs or lhs [math]\to[/math] rhs
Представляет собой правило, которое трансформирует lhs в rhs.
Примеры выполнения данной функции в Wolfram Mathematica:
В коде используется символ -> это [math]\to[/math].
1) Используйте правило, которое заменяет x на 3:
In[2]:={x,x^2,a,b}/.x->3
Out[2]:={3,9,a,b}

2)Любое выражение или шаблон может появится в правиле:
In[2]:={x,x^2,x^3,a,b}/.x^2 -> y
Out[2]:={x,y,x^3,a,b}

In[2]:={x,x^2,x^3,a,b}/.x^n->f[n]
Out[2]:={x,f[2],f[3],a,b}

3) Так же можно использовать с функцией:
In[2]:={x,x,x,x}/.x-> RandomReal[]
Out[2]:={0.526621,0.526621,0.526621,0.526621}


Inner
Inner[f,list1,list2,g] - является обобщением Dot, в котором f играет роль умножения и сложения g.

Примеры выполнения данной функции в Wolfram Mathematica:
В коде используется символ -> это [math]\to[/math].
1)
Inner[f,{{a,b},{c,d}},{x,y},g] ->{g[f[a,x],f[b,y],g[f[c,x],f[d,y]]]

2) Подсчитать "внутренний F" из двух списков, c "операцией плюс" g:
In[2]:=Inner[f, {a, b}, {x, y}, g]
Out[2]:=g[f[a, x], f[b, y]]

3) Вычислить обобщенное скалярное произведение матрицы и вектора:
In[2]:=Inner[f, {{a, b}, {c, d}}, {x, y}, g]
Out[2]:={g[f[a, x], f[b, y]], g[f[c, x], f[d, y]]}

4) Привычные операции:
In[2]:=Inner[Times,{a,b},{x,y},Plus]
Out[2]:=ax+by

In[2]:=Inner [Power,{a,b,c},{x,y,z},Times]
Out[2]:=a^xb^yc^z


Most
Most[expr] - удаляет в выражении последний элемент.
Примеры выполнения данной функции в Wolfram Mathematica:
1)
In[2]:=Most[{a,b,c,d}]
Out[2]:={a,b,c}

2)Голова не должна быть списком:
In[2]:=Most[a+b+c+d]
Out[2]:=a+b+c

3)
In[2]:=Most[f[a,b,c,d]]
Out[2]:=f[a,b,c]

4) Гнездо операции нахождения большинства списка:
In[2]:=NestList[Most, {a, b, c, d, e}, 3]
Out[2]:={{a, b, c, d, e}, {a, b, c, d}, {a, b, c}, {a, b}}

Вернуться к началу
 Профиль  
Cпасибо сказано 
 Заголовок сообщения: Re: Напишите функцию для конвертирования:
СообщениеДобавлено: 14 апр 2017, 22:03 
Не в сети
Начинающий
Зарегистрирован:
14 апр 2017, 20:06
Сообщений: 1
Cпасибо сказано: 0
Спасибо получено:
0 раз в 0 сообщении
Очков репутации: 1

Добавить очки репутацииУменьшить очки репутации
Если кратко, функция может иметь такой вид:

F[x_] := Inner[Rule, Most[x], Most[RotateLeft[x]], List]


Пример выполнения:
In: X={x1,x2,x3};
In: F[X]
Out: {x1 -> x2, x2->x3}


В этом примере
Most[X] = {x1,x2}
Most[RotateLeft[X]] = {x2, x3}

Внешняя функция просто собирает из этих списков нужный результат.

Вернуться к началу
 Профиль  
Cпасибо сказано 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему      Страница 1 из 1 [ Сообщений: 2 ]

 Похожие темы   Автор   Ответы   Просмотры   Последнее сообщение 
Напишите уравнение касательной

в форуме Пределы числовых последовательностей и функций, Исследования функций

Mouen

2

431

09 дек 2014, 18:29

Напишите уравнение геометрического места точек

в форуме Аналитическая геометрия и Векторная алгебра

Mozgovaya_anastasia

2

598

29 дек 2014, 21:58

Напишите мне программку (китайская теорема об остатках)

в форуме Объявления участников Форума

Nataly-Mak

46

1142

12 июн 2022, 10:00

Напишите в развернутом виде и исследуйте на сходимость ряд

в форуме Ряды

Andriotte73

0

493

27 ноя 2016, 19:43

Напишите без кода словесный алгоритм что требуется сделать

в форуме Информатика и Компьютерные науки

top234

0

255

06 ноя 2020, 14:59

Напишите уравнение диаметра d, проходящего через точку К

в форуме Аналитическая геометрия и Векторная алгебра

tanyhaftv

1

426

15 фев 2018, 16:16

Исследовать функцию Исследуйте функцию

в форуме Пределы числовых последовательностей и функций, Исследования функций

BaHTyC

1

364

19 май 2015, 17:28

про функцию у=[х]

в форуме Алгебра

victorymirosya

2

133

06 авг 2023, 16:32

Описать функцию

в форуме Математическая статистика и Эконометрика

kolberlin

1

519

07 мар 2015, 23:04

Разложить функцию y=f(x)

в форуме Ряды Фурье и Интегральные преобразования

Kater1na97

1

378

27 окт 2016, 03:17


Часовой пояс: UTC + 3 часа [ Летнее время ]



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Яндекс.Метрика

Copyright © 2010-2023 MathHelpPlanet.com. All rights reserved