solve multiple algebric integral equations
3 views (last 30 days)
Show older comments
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 Comments
Matt J
on 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
Accepted Answer
Matt J
on 1 Feb 2015
Edited: Matt J
on 1 Feb 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 Comments
Matt J
on 1 Feb 2015
Edited: Matt J
on 1 Feb 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,...)
More Answers (1)
Matt J
on 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.
0 Comments
See Also
Categories
Find more on Mathematics and Optimization 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!