Solving a simple integral with input equation from user
1 view (last 30 days)
Show older comments
jarly añasco
on 3 Aug 2020
Commented: Walter Roberson
on 3 Aug 2020
I am using this code to enter an equation and solve a simple integral
str = input('Enter an equation in x: ','s') ;
f = function_handle.empty;
f = eval(['@()', str]);
x = f();
xmin= input('Lower limit of x: ')
xmax= input('Upper limit of x: ')
int(x, xmin, xmax)
But I get this error
Undefined function 'int' for input arguments of type 'double'.
Error in Untitled5 (line 7)
int(x,xmin, xmax)
0 Comments
Accepted Answer
Rafael Hernandez-Walls
on 3 Aug 2020
syms x
str = input('Enter an equation in x: ','s') ;
f = function_handle.empty;
f = eval(['@(x)', str]);
%x = f();
xmin= input('Lower limit of x: ')
xmax= input('Upper limit of x: ')
int(f,x, xmin, xmax)
1 Comment
Walter Roberson
on 3 Aug 2020
Using eval() is not recommended, and is not necessary. If you were going to generate an anonymous function from a character vector, then use str2func() . But considering that that symbolic integration int() is being used, it does not make sense to convert to an anonymous function: it makes more sense to convert to a symbolic expression or possibly symbolic function.
More Answers (1)
Walter Roberson
on 3 Aug 2020
syms x
str = input('Enter an equation in x: ','s') ;
f = str2sym(str) ;
xmin= input('Lower limit of x: ')
xmax= input('Upper limit of x: ')
int(f,x, xmin, xmax)
0 Comments
See Also
Categories
Find more on Numbers and Precision in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!