Могу ли я вызвать функцию для решения различных переменных? - PullRequest
0 голосов
/ 15 апреля 2019

У меня есть функция, которую я хочу решить для многих переменных по отдельности. Должен ли я каждый раз записывать функцию в терминах другой переменной?

x,xG,xR

y = e.^tan(x.^2)+cos.^2(x);
yG = e.^tan(xG.^2)+cos.^2(xG);

1 Ответ

2 голосов
/ 16 апреля 2019

Сначала вы не можете написать выражение, как cos. ^ 2 (x).Если x - единственная переменная (то есть x = pi), вы можете написать либо cos (x) ^ 2, либо cos (x ^ 2).Если x является вектором (вектор столбца может быть x = [3; 4; pi], а вектор строки может быть x = [3,4, pi], тогда вы можете написать cos (x). ^ 2 или cos (x. ^ 2). Роль периода (.) в октаве объясняется здесь: https://octave.org/doc/v4.0.3/Arithmetic-Ops.html

Другая проблема связана с пониманием разницы между выражением: x = e ^ tanh (y); и функция. Позже это отдельный кусок кода, который может быть вызван из любой точки вашей программы.

Рассмотрим этот простой пример

1;

function y=myfunc(x)
  y=exp(tanh(x));
endfunction

## main program
xxx=pi/3;
yyy=myfunc(xxx);
printf('%7.3f %7.3f\n',xxx,yyy)
y=exp(tanh(pi/3))

комментарии: «1» вПервая строка сообщает Octave, что в сценарии есть нечто большее, чем просто следующая функция: основная программа также должна интерпретироваться. Строка функции указывает, что внутри функции вход будет называться x, а выход y, поэтому, когда мойфункция вызывается из main, входные данные - xxx (= pi / 2), а выходные - yyy. Последняя строка в этом крошечном скрипте - это выражение, которое делает то же самое, что и функция. Обратите внимание, что, поскольку я не включилточка с запятой в конце этой строки результат р

Я предлагаю вам поиграть с этим некоторое время, а затем, если у вас есть еще вопросы, задайте их в новом вопросе.

...