intergration of function failed to calculate
Show older comments
yApprox = a0 + a1.*(X1) + a2.*(X1).^2 + a3.*(X1).^3+ a4.*(X1).^4 + a5.*(X1).^5 + a6.*(X1).^6;
y1Approx= diff(yApprox,X1)
y2Approx=@(X1)diff(y1Approx,X1)
ISE = (EI/2).*(integral((y2Approx).^2,0,L))
where L=6
% I am getting this error.............." Operator '.^' is not supported for operands of type 'function_handle'.''
Accepted Answer
More Answers (1)
Hi Inzamam,
I understand that you are getting the error "Operator '.^' is not supported for operands of type 'function_handle'." This occurs because you're trying to use the element-wise power operator '.^' on a function handle ('y2Approx') instead of numeric arrays within the 'integral' function. The 'integral' function expects a function handle that can operate on numeric inputs directly, but the operations inside that function handle must be defined correctly to handle numeric operations.
To tackle this error, you need to ensure that the function handle you're passing to 'integral' is correctly set up to perform numeric calculations. This often involves converting any symbolic expressions to numeric function handles if you're working with symbolic differentiation. Here's how you can do it:
% Initialize constants
a0 = 1; a1 = 1; a2 = 1; a3 = 1; a4 = 1; a5 = 1; a6 = 1; % Example coefficients
EI = 1; % Example EI value
L = 6; % Length
% Define symbolic variable
syms X1
% Define yApprox as a symbolic expression
yApprox = a0 + a1.*X1 + a2.*X1.^2 + a3.*X1.^3 + a4.*X1.^4 + a5.*X1.^5 + a6.*X1.^6;
% First derivative of yApprox with respect to X1
y1Approx = diff(yApprox, X1);
% Second derivative of yApprox with respect to X1
y2Approx = diff(y1Approx, X1);
% Convert the symbolic expression of the second derivative to a function handle for numerical integration
y2ApproxNumeric = matlabFunction(y2Approx);
% Calculate ISE using the integral of y2Approx squared from 0 to L
ISE = (EI/2) * integral(@(X1) y2ApproxNumeric(X1).^2, 0, L);
% Display the result
disp('ISE = ');
disp(ISE);
This code first defines the polynomial expression and its derivatives symbolically, then converts the second derivative into a numeric function handle suitable for integration. This approach ensures that all operations within the function passed to `integral` are numeric and compatible with the '.^' operator and other numeric operations.
To read more about Integration with Symbolic expressions, refer to the below MATLAB documentation:
I hope it helps!
1 Comment
inzamam shoukat
on 21 Mar 2024
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!


