How to resolve the error-Input arguments of type 'double'?.
Show older comments
I tried to perform double integration using syms function in my program. Its generating the error- Input arguments of type 'double. What could be the possible mistake?
The expression is :
delF=((-h^2)/rad)*sigma*(rad^2)*(2*pi)*omega*square(abs((R2*exp((alpha/rad)*z))+(S2*exp((-alpha/rad)*z))))**
Here h is the harmonic order which assumes its value for every iteration (from an outer for loop).
omega and sigma are constants.
R2,S2 and alpha are parameters which are calculated during the iteration process
Its a 2D cylindrical coordinate system analysis with the given expression integrated over radius (rad) and z
The limits of integration for rad-inner radius (Rin) and outer radius (Rout)(Rin and Rout are taken as inputs) z-g to (g+e) (g and e are also taken as inputs)
my code is:
syms rad z
firstans=int(((-sigma*(h^2)/rad)*(2*pi)*omega*(rad^2))*(square(abs((((R2*exp((alpha*z/rad))+(((S2*exp((-alpha*z/rad))))))))))),rad,Rin,Rout);
answer=int(firstans,z,g,g+e);
[Merged information from duplicate question]
When I tried to perform double integration it is generating an error "input arguments should be of type double". I used syms command. How do I check if the parameters of my function are of type 'double'
12 Comments
Matt Fig
on 26 Sep 2012
You know that it always help to show the actual code, so please do so.
Subhashree rajagopal
on 28 Sep 2012
Edited: Subhashree rajagopal
on 28 Sep 2012
Walter Roberson
on 28 Sep 2012
Which line is the error being generated on? Please show the error trace.
Use the debugger to stop at that line and examine the arguments.
Subhashree rajagopal
on 28 Sep 2012
Walter Roberson
on 28 Sep 2012
So the problem is not the double integration, it happens even on the first integration ?
Subhashree rajagopal
on 29 Sep 2012
Walter Roberson
on 29 Sep 2012
As I wrote before, "Use the debugger to stop at that line and examine the arguments."
Subhashree rajagopal
on 4 Oct 2012
Walter Roberson
on 4 Oct 2012
What did you determine the cause to be?
Subhashree rajagopal
on 4 Oct 2012
Subhashree rajagopal
on 4 Oct 2012
Walter Roberson
on 4 Oct 2012
oooo... I missed seeing the square() call. Good hunting there.
Answers (1)
Muruganandham Subramanian
on 28 Sep 2012
Edited: Walter Roberson
on 28 Sep 2012
0 votes
Hi,
Before doing that integration using 'syms' command. better you convert all the variables by using double('var') or other commands like single(' '); , etc...Then try it.
1 Comment
Walter Roberson
on 28 Sep 2012
Probably not. int() is symbolic integration, and if all the variables are floating point, there will not be anything useful to integrate.
Categories
Find more on Functional Programming 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!