this programme in matlab 2017b but icant run it

2 views (last 30 days)
syms x;
syms E;
syms a;
p(x) =(sqrt(2*(E-potential(x,a))))
q = integral(p(x),0,x)
function [v] = potential(a,x)
v= a.*x
end
  2 Comments
Rik
Rik on 13 Aug 2018
What is the error you are getting? You can run scripts that contain functions since R2016b, so that isn't the problem. I don't have the symbolic toolbox, so I can't check the code itself for you.

Sign in to comment.

Accepted Answer

Tiasa Ghosh
Tiasa Ghosh on 13 Aug 2018
For using Integral (), you must describe 'p' as a function handle with the '@' notation.Like this:
p = @(x) sqrt(2*(E-potential(x,a)));
This will work for Integral(). However, your second input to integral is 'x' which a symbolic variable. But Integral() accepts only scalar values as input. You need to change that.
  3 Comments
Walter Roberson
Walter Roberson on 14 Aug 2018
Your a is not constant, it is an unresolved symbolic variable.

Sign in to comment.

More Answers (1)

Walter Roberson
Walter Roberson on 13 Aug 2018
p is defined in terms of the symbolic variable a. integral() is for numeric integration and cannot be used with unresolved symbolic variables.
Please recheck the order of parameters for your function. You define the function with one order but you call it with a different order.

Community Treasure Hunt

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

Start Hunting!

Translated by