Evaluating a function at complex values

I am new to MATLAB and I am trying to evaluate a sybomlically defined function at complex values, but I get an error saying 'Array indices must be positive integers or logical values'. What should I change so that this works and outputs a complex value?
syms x
F = x^5-5*x^4-8*x^3+40*x^2-9*x+45;
P0 = 0+1i;
F(P0)

 Réponse acceptée

Ameer Hamza
Ameer Hamza le 4 Nov 2020
F is a symbolic expression, not a symbolic function. You need to use subs()
syms x
F = x^5-5*x^4-8*x^3+40*x^2-9*x+45;
P0 = 0+1i;
subs(F, x, P0)
Following define F as symbolic function
syms x
F(x) = x^5-5*x^4-8*x^3+40*x^2-9*x+45;
P0 = 0+1i;
F(P0)

Plus de réponses (1)

Alan Stevens
Alan Stevens le 4 Nov 2020
Modifié(e) : Alan Stevens le 4 Nov 2020
You need to make sure F is a function. For your particular function you don't need it to be symbolic:
>> F =@(x) x^5-5*x^4-8*x^3+40*x^2-9*x+45;
>> P0 = 2+0.5*i;
>> F(P0)
ans =
87.3125 -11.4688i

Catégories

En savoir plus sur Symbolic Math Toolbox dans Centre d'aide et File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by