How to resolve the error-Input arguments of type 'double'?.
이전 댓글 표시
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
Matt Fig
2012년 9월 26일
You know that it always help to show the actual code, so please do so.
Subhashree rajagopal
2012년 9월 28일
편집: Subhashree rajagopal
2012년 9월 28일
Walter Roberson
2012년 9월 28일
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
2012년 9월 28일
Walter Roberson
2012년 9월 28일
So the problem is not the double integration, it happens even on the first integration ?
Subhashree rajagopal
2012년 9월 29일
Walter Roberson
2012년 9월 29일
As I wrote before, "Use the debugger to stop at that line and examine the arguments."
Subhashree rajagopal
2012년 10월 4일
Walter Roberson
2012년 10월 4일
What did you determine the cause to be?
Subhashree rajagopal
2012년 10월 4일
Subhashree rajagopal
2012년 10월 4일
Walter Roberson
2012년 10월 4일
oooo... I missed seeing the square() call. Good hunting there.
답변 (1개)
Muruganandham Subramanian
2012년 9월 28일
편집: Walter Roberson
2012년 9월 28일
0 개 추천
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
Walter Roberson
2012년 9월 28일
Probably not. int() is symbolic integration, and if all the variables are floating point, there will not be anything useful to integrate.
카테고리
도움말 센터 및 File Exchange에서 Functional Programming에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!