this programme in matlab 2017b but icant run it

1 view (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
Today I formatted your code. Next time, you can do it yourself by selecting your code and pushing the {}Code button.
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
Aalaa Abu alrob
Aalaa Abu alrob on 14 Aug 2018
Thanks for your attention .. but my integral is with respect to x.. and other sympoles are constant
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.

Categories

Find more on Symbolic Math Toolbox in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!