Как найти аргумент в матлабе

Main Content

Real and imaginary components, phase angles

In MATLAB®, i and j represent the basic imaginary
unit. You can use them to create complex numbers such as 2i+5. You can also
determine the real and imaginary parts of complex numbers and compute other common values such
as phase and angle.

Functions

abs Absolute value and complex magnitude
angle Phase angle
complex Create complex array
conj Complex conjugate
cplxpair Sort complex numbers into complex conjugate pairs
i Imaginary unit
imag Imaginary part of complex number
isreal Determine whether array uses complex storage
j Imaginary unit
real Real part of complex number
sign Sign function (signum function)
unwrap Shift phase angles

Topics

  • Plot Imaginary and Complex Data

    Plot the imaginary part versus the real part of a complex vector.

The_KKK

1 / 1 / 1

Регистрация: 04.09.2015

Сообщений: 130

1

Найти значение аргумента функции

05.05.2020, 20:04. Показов 961. Ответов 1

Метки нет (Все метки)


Студворк — интернет-сервис помощи студентам

Задача: ряд – функция зависящая от t. Известно, чему равна сумма ряда. Найти t.
Попробовал вот так:

Matlab M
1
2
3
4
5
6
7
8
9
alpha=0.01;
sum_Kt=0;
syms t;
for i=-100:100
    Kt=((-1)^i)*exp(-2*(i^2)*(t^2));
    sum_Kt=sum_Kt+Kt;
end
solution1=solve('sum_Kt=1-alpha');
disp(['1 решение уравнения ',num2str(solution1(1)]);

Получил:

Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Warning: Support of character vectors will be removed in a future release. Character vectors can be used
only for variable names and numbers. Instead, to create symbolic expressions first create symbolic variables
using 'syms'. To evaluate character vectors and strings representing symbolic expressions, use 'str2sym'. 
> In sym>convertExpression (line 1581)
  In sym>convertChar (line 1486)
  In sym>tomupad (line 1236)
  In sym (line 215)
  In solve>getEqns (line 406)
  In solve (line 226)
  In Untitled (line 94) 
Warning: Do not specify equations and variables as character vectors. Instead, create symbolic variables
with syms. 
> In solve>getEqns (line 446)
  In solve (line 226)
  In Untitled (line 94) 
Error using num2str (line 45)
Input to num2str must be numeric.
 
Error in Untitled (line 95)
disp(['1 решение уравнения ',num2str(solution1)]);
 
>>

Line 95 здесь строка 9
Как сделать так, чтобы уравнение решилось?



0



Programming

Эксперт

94731 / 64177 / 26122

Регистрация: 12.04.2006

Сообщений: 116,782

05.05.2020, 20:04

1

Сергей Тетьора

117 / 83 / 39

Регистрация: 06.01.2013

Сообщений: 274

06.05.2020, 10:12

2

2 последние строки замените на

Matlab M
1
2
solution1=vpasolve(sum_Kt==1-alpha,t);
fprintf('1 решение уравнения %f n',double(solution1(1)));



1



For example, if I define the following in Matlab,

f(x) = x^2 + 3x - 2

How do I find what value the function evaluates to when x = 3?

tvanfosson's user avatar

tvanfosson

522k99 gold badges697 silver badges794 bronze badges

asked Mar 4, 2011 at 0:12

Eng.Fouad's user avatar

Eng.FouadEng.Fouad

114k70 gold badges312 silver badges416 bronze badges

Create a file called f.m that contains:

function y = f(x)
y = x^2 + 3x - 2

then in the command window, type f(3) and you should get back ans=16

See documentation on creating functions in MATLAB: http://www.mathworks.com/help/techdoc/ref/function.html

You can also use polyval(p,x) where p = [1 3 -2] in your example (the coeffients of your polynomial in descending order) and you will get the value of the polynomial at that point x (in your case, you would pass in 3).

answered Mar 4, 2011 at 0:27

zxt's user avatar

1

При
наборе комплексных чисел в командной
строке MatLab
можно использовать либо i,
либо j,
а сами числа при умножении, делении и
возведении в степень
необходимо заключать в круглые скобки:

»(2.1+3.2i)*2+(4.2+1.7i)^2

ans
=

18.9500
+20.6800i

Если не использовать
скобки, то умножаться или возводиться
в степень будет только мнимая часть и
получится неверный результат:

»
2.1+3.2i*2+4.2+1.7i^2

ans
=

3.4100
+ 6.4000i

Для
вычисления комплексно-сопряженного
числа применяется апостроф, который
следует набирать сразу за числом, без
пробела:

»
23i’

ans
=

2.0000
+ 3.0000i

Если необходимо
найти комплексно-сопряженное выражение,
то исходное выражение должно быть
заключено в круглые скобки:

»((3.2+1.5i)*2+4.2+7.9i)’

ans
=

10.6000
10.9000i

MatLab позволяет
использовать комплексные числа в
качестве аргументов встроенных
элементарных функций:

»
sin(2+3i)

ans
=

9.1545

4.1689i

Конструирование
комплексного числа по его действительной
и мнимой части выполняется с помощью
функции complex:

»
complex(2.3,
5.8)

ans
=
2.3000
+ 5.8000i

Как
узнать, какие встроенные элементарные
функции можно использовать и
как их вызывать? Наберите в командной
строке команду help
eifun,
при этом
в командное окно выводится список всех
встроенных элементарных функций
с их кратким описанием.

3. Простейшие вычисления в пакете MatLab с использованием переменных и векторов

3.1. Использование переменных в пакете MatLab

Как
и во всех языках программирования, в
MatLab
предусмотрена возможность работы с
переменными. Причем пользователь не
должен заботиться о том,
какие значения будет принимать переменная
(комплексные, вещественные
или только целые). Для того чтобы
присвоить, например, переменной
z
значение 1.45, достаточно написать в
командной строке z
= 1.45, при этом
MatLab
сразу же выведет значение z:

»
z
= 1.45

z
=

1.4500

Здесь
знак равенства используется в качестве
оператора
присваивания.
Часто
не
очень удобно после каждого присваивания
получать еще и результат. Поэтому в
MatLab
предусмотрена возможность завершать
оператор присваивания
точкой с запятой для подавления вывода
результата в командное окно. Именем
переменной может быть любая
последовательность букв и цифр без
пробела,
начинающаяся с буквы. Строчные и прописные
буквы различаются,
например MZ
и mz
являются двумя разными переменными.
Количество воспринимаемых
MatLab
символов в имени переменной составляет
31.

В
качестве упражнения на использование
переменных найдите значение следующего
выражения:

Наберите
последовательность команд, приведенную
ниже (обратите внимание
на точку с запятой в первых двух операторах
присваивания для подавления вывода
промежуточных значений на экран):

»
х
= sin(1.3*pi)/log(3.4);

»
у
= sqrt(tan(2.75)/tanh(2.75));

»
z
=
(х+у)/(х-у)

Z
=

0.0243
– 0.9997i

Последний
оператор присваивания не завершается
точкой с запятой для того,
чтобы сразу получить значение исходного
выражения. Конечно, можно
было бы ввести сразу всю формулу и
получить тот же результат:

»(sin(1.3*pi)/log(3.4)+sqrt(tan(2.75)/tanh(2.75)))/…

(sin(1.3*pi)/log(3.4)-sqrt(tan(2.75)/tanh(2.75)))
ans
=

0.0243
– 0.9997i

Обратите
внимание, насколько первая запись
компактнее и яснее второй! Во
втором варианте формула не помещалась
в командном окне на одной строке, и
пришлось записать ее в две строки, для
чего в конце первой строки
поставлены три точки.

Замечание
1

Для
ввода длинных формул или команд в
командную строку следует поставить три
точки (подряд, без пробелов), нажать
клавишу <Enter>
и продолжить набор формулы на следующей
строке. Так можно разместить выражение
на нескольких строках. MatLab
вычислит все выражение или выполнит
команду после нажатия
на <Enter>
в последней строке (в которой нет трех
идущих подряд точек).

MatLab
запоминает значения всех переменных,
определенных во время сеанса
работы. Если после ввода примера,
приведенного выше, были проделаны
еще какие-либо вычисления, и возникла
необходимость вывести значение х,
то следует просто набрать
х

в командной строке и нажать <Enter>:

»
x

-0.6611

Переменные,
определенные выше, можно использовать
и в других формулах.
Например, если теперь необходимо
вычислить выражение

,

то достаточно
ввести следующую команду:

»
(x-y)^(3/2)

ans
=

-0.8139
+ 0.3547i

Вызов
функций в MatLab
обладает достаточной гибкостью. Например,
вычислить е3.5
можно, вызвав функцию ехр из командной
строки:

»
ехр(3.5)

ans
=

33.1155

Другой способ
состоит в использовании оператора
присваивания:

»
t
= ехр(3.5)

t
=

33.1155

Предположим,
что часть вычислений с переменными
выполнена, а остальные
придется доделать во время следующего
сеанса работы с MatLab.
В этом случае
понадобится сохранить переменные,
определенные в рабочей среде.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]

  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #

Main Content

Accept a variable number of inputs or outputs, check for valid
values

Since MATLAB® is an untyped language, most functions do not require argument
declarations or validation. However, if your function has wide usage and you
need to verify the type, size, or other aspects of inputs to ensure that
your code works as expected, you can define an arguments block (since R2019b). For details, see Function Argument Validation.

Additionally, you can check how many inputs or outputs your function
receives, the names of input variables, and more.

Functions

expand all

Declare and Validate Arguments

Arguments Block

arguments Declare function argument validation

Numeric Value Validation

Comparisons

Data Types

Size

Range and Set Membership

Names

Name-Value Arguments Structure

namedargs2cell Convert structure containing name-value pairs to cell array

Variable-Length Argument Lists

Inputs

varargin Variable-length input argument list
nargin Number of function input arguments
narginchk Validate number of input arguments

Outputs

varargout Variable-length output argument list
nargout Number of function output arguments
nargoutchk Validate number of output arguments

Additional Checks

Topics

Argument Validation

  • Function Argument Validation

    Declare argument class and size, and enforce restrictions on argument values.

    • Validate Required and Optional Positional Arguments
    • Validate Repeating Arguments
    • Validate Name-Value Arguments
  • Argument Validation Functions

    Validate specific requirements of arguments using validation functions. Write your own
    functions to check for specific argument requirements.

    • Use Validation Functions to Avoid Unwanted Class and Size Conversions
    • Use nargin Functions During Argument Validation
  • Check Function Inputs with validateattributes
    This example shows how to verify that the inputs to
    your function conform to a set of requirements using the validateattributes function.
  • Parse Function Inputs

    Define required and optional inputs, assign defaults
    to optional inputs, and validate all inputs to a custom function using
    the Input Parser.

    • Input Parser Validation Functions

Number of Arguments

  • Support Variable Number of Inputs
    Define a function that accepts a variable number of
    input arguments using varargin. The varargin argument
    is a cell array that contains the function inputs, where each input
    is in its own cell.
  • Support Variable Number of Outputs
    Define a function that returns a variable number of
    output arguments using varargout. Output varargout is
    a cell array that contains the function outputs, where each output
    is in its own cell.
  • Find Number of Function Arguments

    Use nargin and nargout to
    determine how many input or output arguments your function receives.

    • Validate Number of Function Arguments
    • Checking Number of Arguments in Nested Functions

Pass-Through Inputs

  • Ignore Inputs in Function Definitions
    If your function accepts a predefined set of inputs, but does not use all the
    inputs, use the tilde (~) operator to ignore them in your
    function definition.

Добавить комментарий