solve multiple algebric integral equations

1 vue (au cours des 30 derniers jours)
Meva
Meva le 31 Jan 2015
Modifié(e) : Matt J le 1 Fév 2015
Hi I have three equations and three unknowns I need to solve these.
Two of the equations are integral equations
Could Matlab do that ?
unknowns are a,b,c. equations:
0 = integral (c^2/(a-(x-1/2)*b-1/2*sin(pi*x))^2) dx , from x=0 to x=1.
0 = integral (x-1/2)*(1-c)^2/(1-a +(x-1/2)*b-1/2*sin(pi*x))^2 dx , from x=0 to x=1.
0 = c^2-2*c^2*a-a^2-a*b+b^2/4-2*a*b*c ..
I need to solve these three equations to find three unknowns a,b,c.
x is double variable from 0 to 1 with the increnment of 0.01. So we have 101 x values.
Could I find the answer numerically?
I have R2014b version.
  4 commentaires
Matt J
Matt J le 31 Jan 2015
I wonder if the equations are correct. The first equation only has a solution if c=0, since the integrand is non-negative everywhere. If c=0, then the 3rd equation implies one of 2 possible relationships between a and b
a = b*(sqrt(2)-1)/2
or
a = b*(-sqrt(2)-1)/2
Meva
Meva le 1 Fév 2015
Hi Mett,
The equations are not like that actually so complicated.
I just have simplified them in order to represent.

Connectez-vous pour commenter.

Réponse acceptée

Matt J
Matt J le 1 Fév 2015
Modifié(e) : Matt J le 1 Fév 2015
You can try FSOLVE, if you have the Optimization Toolbox and if the dependence of the equations on the unknown parameters is smooth.
Otherwise, if you have just a few unknowns, you can try FMINSEARCH, using it to minimize the violation of your equations. For example, to solve the equations
a+b=1,
a-b=-1,
you could do
violation=@(x) norm([sum(x)-1;-diff(x)+1]);
ab=fminsearch( violation, [1,1])
a=ab(1);
b=ab(2);
except you would use your actual equations, of course.
  2 commentaires
Meva
Meva le 1 Fév 2015
Thanks Matt,
I have optimisation toolbox.
Next step will be how to use this toolbox to solve my problem.
Matt J
Matt J le 1 Fév 2015
Modifié(e) : Matt J le 1 Fév 2015
Well, the documentation for fsolve should probably be all you need. It gives simple examples and everything. Basically, you need to write a function that creates a vector of all right hand side values of your equations.
function F=myobjective(parameters)
a=parameters(1);
b=parameters(2);
c=parameters(3);
eq1=@(x) @(x)c.^2./(a-(x-1./2).*b-1./2.*sin(pi.*x)).^2
eq2=@(x) (x-1./2).*(1-c).^2./(1-a+(x-1./2).*b-1./2.*sin(pi.*x)).^2
F(1) = integral(eq1, 0,1);
F(2) = integral(eq2,0,1);
F(3) = c^2-2*c^2*a-a^2-a*b+b^2/4-2*a*b*c
end
solution = fsolve(@myobjective, pInitial,...)

Connectez-vous pour commenter.

Plus de réponses (1)

Matt J
Matt J le 31 Jan 2015
I wonder if the equations are correct. The first equation only has a solution if c=0, since the integrand is non-negative everywhere. If c=0, then the 3rd equation implies one of 2 possible relationships between a and b
a = b*(sqrt(2)-1)/2
or
a = b*(-sqrt(2)-1)/2
This reduces the 2nd equation to an equation in 1 variable, and you can solve with fzero.

Catégories

En savoir plus sur Mathematics dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by