Calculating double integral of a single variable

I want to calculate the double integral int [E1,E2] ( f(x) * {int [E1,x] (g*dy)} * dx)
I am trying to solve this integral by breaking it into two ode's and then solving the ode's simultaneously using ode45 but I am not sure if this is the correct way to solve this integral.
Can anyone suggest me if I am doing it correctly or is there any other way to do it?
Thanks.

댓글 수: 2

No, I don't think that is valid. Solving a double integral with respect to two different variables x and y could be done by solving a particular kind of partial differential equation with boundary conditions corresponding to the integration limits, but that would not in general be an easier solution. It is better to solve double integrals using the tools that have been designed for that purpose.
I'll have to modify my previous statement. If the g integrand in your expression is a function only of y, then you could solve your double integral as the solution of an ordinary differential equation. If g also depends on x I think you're out of luck.

댓글을 달려면 로그인하십시오.

답변 (2개)

Mike Hosea
Mike Hosea 2013년 1월 28일

0 개 추천

Three ways:
integral2(@(x,y)f(x).*g(x,y),E1,E2,E1,@(x)x)
integral(@(x)f(x).*integral(@(y)g(x,y),E1,x),E1,E2,'ArrayValued',true)
integral(@(x)f(x).*arrayfun(@(x)integral(@(y)g(x,y),E1,x),x),E1,E2,'ArrayValued',true)
Things simplify just slightly if g is only a function of y.
Muhammad Danish
Muhammad Danish 2015년 2월 18일

0 개 추천

Hi Mike Hosea, I have been following your posts to find a solution to my problem but not yet able to solve it yet.
I want to integrate a pressure equation to get the hydrodynamic bearing forces. the way I am doing it is as follows: function [forceR,forceT]=forces(eps,epsd,dalfa,ombar)
c=0.0001; Rb=0.024; Rj=Rb-c; Lb=0.02; u=0.01;
del0=(atan(epsd/(eps*(ombar-dalfa)))); del1=del0+pi;
z0=0; z1=z0-(Lb/2); z2=z0+(Lb/2);
%Pr=(((6.*u.*c)./((c.*(1+eps.*cos(del0))).^3)).*((epsd.*cos(del0))+(eps.*(dalfa-ombar).*sin(del0))).*((z0.^2)-(0.25*(Lb^2))));
fun1 = @(del,z)((((6.*u.*c)./((c.*(1+eps.*cos(del))).^3)).*((epsd.*cos(del))+(eps.*(dalfa-ombar).*sin(del))).*((z.^2)-(0.25*(Lb^2)))).*cos(del)); fun2 = @(del,z)((((6.*u.*c)./((c.*(1+eps.*cos(del))).^3)).*((epsd.*cos(del))+(eps.*(dalfa-ombar).*sin(del))).*((z.^2)-(0.25*(Lb^2)))).*sin(del));
forceR=-integral2(fun1,del0,del1,z1,z2)*Rb; forceT=-integral2(fun2,del0,del1,z1,z2)*Rb;
end
fun1 and fun 2 are dependent on del and z and the upper and lower limits are from del0 to del1 and z1-z2.
this is an embedded function in a simulink model. (coder.extrinsic).
The program starts running then give me an error when the simulation reaches 2-3 percent.
I shall be really grateful if anyone of you could help me in this.
Regards Danish

카테고리

도움말 센터File Exchange에서 Programming에 대해 자세히 알아보기

질문:

2013년 1월 26일

댓글:

2015년 2월 18일

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by