In this problem a=0.5 b=0.1 funa*x.^2 + b*y.^2 0<x<5 0<y<2xk and q=125. I try fo find that What is the value of the k? now I don't know a value but I know q. How can I estimate a value and use random command for a value.
b = 0.1;
fun = @(x,y) a*x.^2 + b*y.^2;
q = integral2(fun,0,5,0,ymax)==125 % real value 125
Basic calc? I hope this is not homework. But at least you made some effort.
You have formulated the problem as
q = int( int( a*x^2 + b*y^2,0,2*x*k), 0,5)
Where a, b, q are all known. The problem is, you want to solve for k, where k is part of that upper limit on y. We can do this on paper, at last most of it, but easy enough to do entirely in MATLAB too.
syms x y k
q = 125;
a = 0.5;
b = 0.1;
The symbolic toolbox is smart enough to recognize the decimal values 0.5 and 0.1 as their true fractional equivalents.
We can do the inner integral on y easily enough.
int(a*x^2 + b*y^2,y,0,2*x*k)
(k*x^3*(4*k^2 + 15))/15
So we should see the double integral is simple too.
Now, could I have done that on paper? Yes, except for the last part, where I'd probably have thrown the cubic polynomial into roots to solve.
(125*k^3)/3 + (625*k)/4
>> roots([125/3 0 625/4 -125])
-0.353057590126266 + 2.03075084287495i
-0.353057590126266 - 2.03075084287495i
0.706115180252531 + 0i
Could you have done it without using the symbolic toolbox? Yes. It is a bit easier to do the integration symbolically, and I am a bit lazy. I'd certainly have done the integrations on paper as calc 101.
k = 0.706115180252531;
ulimy = @(x) 2*x*k;
integral2(@(x,y) a*x.^2 + b*y.^2,0,5,0,ulimy)
Ok. Could I have solved it using fzero and integral2? Do I really need to? Sigh.
k = fzero(@(k) integral2(@(x,y) a*x.^2 + b*y.^2,0,5,0,@(x) 2*x*k) - 125,[0.1,5])
It seems to have worked this way too. I suppose if the integrand were more complicated, you would have had no choice in the matter.