771 views (last 30 days)

I tried this code to calculate energy and power of the input function f(x). but I get error. how can I fix it?

syms x y z energy pow t;

f=input('enter function: ','s');

f = symfun(eval(f), x);

f=f*conj(f);

f = str2func(['@(x)' vectorize(f)]);

z(t)=integral(y,-t,t);

energy=limit(z(t),t=infinity);

pow=limit(z/t,t=infinity)

Walter Roberson
on 18 Mar 2018

I suggest that instead of using

f = str2func(['@(x)' vectorize(f)]);

that you use

f = matlabFunction(f);

However, you could just comment out all of your handling of f, as you never use f after you make it into a function handle.

You have

z(t)=integral(y,-t,t);

At this point your y is a symbolic variable. integral() cannot be applied to symbolic variables: you would need to use int(y, -t, t) -- which is a value you can easily predict will be 0, since the integral of y with respect to y over y = a to y = b is 1/2 b^2 - 1/2 a^2 and with a = -t and b = -t that is going to be 1/2 t^2 - 1/2 (-t)^2 which is going to be 0.

Mellamputi Sai geetha
on 14 Oct 2020

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

Start Hunting!
## 0 Comments

Sign in to comment.