this programme in matlab 2017b but icant run it

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

Today I formatted your code. Next time, you can do it yourself by selecting your code and pushing the {}Code button.
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

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

Maybe OP meant to use the int function. I can't find in the doc if it supports multiple variables, so maybe you'll have to nest two calls to int.
p =(sqrt(2*(E-potential(x,a))))
q = int(p,E,0,x)
Thanks for your attention .. but my integral is with respect to x.. and other sympoles are constant
Your a is not constant, it is an unresolved symbolic variable.

Sign in to comment.

More Answers (1)

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!