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

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

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

Теоретический раздел
Часовой пояс: UTC + 4 часа [ Летнее время ]
MathHelpPlanet.com RSS-лента Математического форума

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




Начать новую тему Ответить на тему  [ Сообщений: 2 ] 
Автор Сообщение
 Заголовок сообщения: Напишите функцию для конвертирования:
СообщениеДобавлено: 06 дек 2016, 00:54 
Не в сети
Начинающий
Зарегистрирован:
05 дек 2016, 22: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, 23:03 
Не в сети
Начинающий
Зарегистрирован:
14 апр 2017, 21: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пасибо сказано 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 2 ] 

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

в форуме Тригонометрия

zzzina-z

12

495

06 дек 2013, 20:46

Напишите уравнение прямой

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

ImSilly

4

248

28 ноя 2011, 20:09

напишите уравнение касательной

в форуме Начала анализа и Другие разделы школьной математики

Alvin

1

286

10 ноя 2011, 21:38

Напишите уравнение касательной

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

Mouen

2

192

09 дек 2014, 19:29

Напишите общее уравнение прямой

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

ImSilly

4

187

28 ноя 2011, 19:59

Напишите каноническое уравнение параболы

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

Margaret

1

350

08 дек 2013, 22:29

Напишите формулу для производной функции

в форуме Дифференциальное исчисление

mxkrbk

1

219

27 ноя 2013, 12:33

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

в форуме Ряды

Andriotte73

0

63

27 ноя 2016, 20:43

Напишите все тригонометрические формулы,чтобы выразить sin,

в форуме Тригонометрия

Yuliayulia

1

223

12 мар 2014, 16:25

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

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

Mozgovaya_anastasia

2

195

29 дек 2014, 22:58


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



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

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


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

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

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

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