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

Математический форум 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 ] 

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

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

Mouen

2

181

09 дек 2014, 19:29

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

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

Alvin

1

274

10 ноя 2011, 21:38

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

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

ImSilly

4

227

28 ноя 2011, 20:09

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

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

zzzina-z

12

475

06 дек 2013, 20:46

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

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

ImSilly

4

175

28 ноя 2011, 19:59

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

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

Margaret

1

336

08 дек 2013, 22:29

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

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

mxkrbk

1

215

27 ноя 2013, 12:33

Напишите подробное решение уравнения и объяснение

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

kagermaz

8

783

11 май 2011, 19:30

Три простых интеграла! Напишите полное решение...

в форуме Интегральное исчисление

mastakxxx

1

140

14 июн 2011, 11:11

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

в форуме Ряды

Andriotte73

0

49

27 ноя 2016, 20:43


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



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

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


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

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

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

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