Форум программистов, компьютерный форум, киберфорум
Matlab
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.79/19: Рейтинг темы: голосов - 19, средняя оценка - 4.79
11 / 11 / 2
Регистрация: 01.05.2013
Сообщений: 96
1

Как превратить символьное выражение в функцию от n-ного количества переменных в функцию f=@ (x, y,. . . . )

12.02.2014, 01:55. Показов 3646. Ответов 9
Метки нет (Все метки)

Добрый день. Вопрос такой

Как превратить символьное выражение в функцию от n-ного количества переменных в функцию f=@(x,y,....) *** ?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.02.2014, 01:55
Ответы с готовыми решениями:

Как превратить эту функцию в процедуру?
Задание: Дано целочисленную прямоугольную матрицу. Создать функцию а затем процедуру определения...

Написть рекурсивную функцию для нахождения n-ного члена прогрессии
даны первый член геометрической прогрессии и знаменатель. написть рекурсивную функцию для...

Clojure Используя функцию Defun, определить функцию f(a x), где а-S- выражение, а х-список, состоящий из 2-3 элементов, которая заменяет на а все атомы списка
1)Используя функцию Defun, определить функцию f(a x), где а-S- выражение, а х-список, состоящий из...

Превратить в функцию
Помогите нужно превратить это в функцию заранее ссибо

__________________
9
5142 / 3480 / 356
Регистрация: 02.04.2012
Сообщений: 6,387
Записей в блоге: 16
12.02.2014, 10:16 2
Подать на вход массив
Пример напиши.
0
11 / 11 / 2
Регистрация: 01.05.2013
Сообщений: 96
12.02.2014, 16:40  [ТС] 3
Из функции f=(sin(x)+2*x*y-z^3/cos(u))/sqrt(t+1) , к примеру, сделать функцию g=@(x,y,z,u,t) (sin(x)+2*x.*y-z.^3./cos(u))/.sqrt(t+1), чтобы затем управлять её значением подставляя вместо переменных числа
0
5142 / 3480 / 356
Регистрация: 02.04.2012
Сообщений: 6,387
Записей в блоге: 16
12.02.2014, 16:52 4
не помню, с тобой мы эту тему обсуждали или нет, но я делаю так:
Matlab M
1
2
3
4
5
6
7
8
9
clear, clc
 
f = sym('(sin(x)+2*x*y-z^3/cos(u))/sqrt(t+1)')
v = symvar(f) % получаем список переменых
g = @(X) double( subs(f,v,X)); % создаем функцию
 
x = ones(size(v)); % вектор единичек
 
g(x) % значение функции от вектора
и получаю:
Код
f =
 
(sin(x)+2*x*y-z^3/cos(u))/sqrt(t+1)
 
 
v =
 
[ t, u, x, y, z]
 

ans =

   0.700499057203652
1
11 / 11 / 2
Регистрация: 01.05.2013
Сообщений: 96
12.02.2014, 21:49  [ТС] 5
ещё вопрос по символьным вычислениям: как "управлять" решением системы уравнений? Я имею в виду это:
есть у меня система уравнени
Matlab M
1
2
3
4
syms x y z
у1=
у2=
у3=
задаю вектор для решений
Matlab M
1
[sx sy sz]=solve(y1,y2,y3)
Предположил, что раскидывать по векторам он должен именно в порядке x y z, может быть потому что у меня именно в таком порядке заданы в команде
Matlab M
1
syms x y z
Однако, это не так, порядок не такой. Как задать специально порядок векторов-решенийв таком случае?
0
5142 / 3480 / 356
Регистрация: 02.04.2012
Сообщений: 6,387
Записей в блоге: 16
12.02.2014, 23:23 6
матлаб расставляет их в алфавитном порядке боюсь, что специально задать произвольный порядок решений не получится.
0
11 / 11 / 2
Регистрация: 01.05.2013
Сообщений: 96
13.02.2014, 01:00  [ТС] 7
значит и здесь он будет по алфавиту сортировать переменные?
Matlab M
1
v = symvar(f) % получаем список переменых
0
5142 / 3480 / 356
Регистрация: 02.04.2012
Сообщений: 6,387
Записей в блоге: 16
13.02.2014, 11:07 8
конечно
0
11 / 11 / 2
Регистрация: 01.05.2013
Сообщений: 96
13.02.2014, 13:52  [ТС] 9
Ещё вопрос по символьному программированию

Решил систему уравнений, решение корректное, в главном окне он высветил векторы решения, как числа, но если выбрать переменную справа из списка, то вместо значений там написано 1x1 sym и аналогично же когда пытаюсь использовать значения из вектора-решения, хотя в главном окне он покажет вектор, как обычный. Как с этим справиться?
0
5142 / 3480 / 356
Регистрация: 02.04.2012
Сообщений: 6,387
Записей в блоге: 16
13.02.2014, 14:20 10
симовльное число s можно перевести в обычное с помощью double(s)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.02.2014, 14:20

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Написать функцию, которая возвращает шестнадцатеричное символьное представление числа L
Разработать динамическую библиотеку, реализующую функции в соответствии с заданным вариантом, и...

Превратить функцию в процедуру
Превратить функцию в процедуру function KolDel(n:integer):integer; var i,k:integer; begin k:=0;...

Превратить функцию в процедуру
Превратить функцию в процедуру function Armstrong(n:longint):boolean; var t,m,p,s,i,j:integer; ...

Превратить функцию в процедуру
Превратить функцию в процедуру var n:integer; function chisla(n:integer):integer; var...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.