Hi!! What is wrong in my code?
Afficher commentaires plus anciens
syms x y t
0<=t & t<=1;
eqns = [x^2 + y^2 -1 == 0, x - t*cos(0)==0, y - t*sin(0)==0];
vars = [x y];
[solv, solu] = solve(eqns, vars)
This is what I get:
solv =
Empty sym: 0-by-1
solu =
Empty sym: 0-by-1
With that code, I want to know the point of intersection between the circumference and the segment line. I hope someone can help me.
3 commentaires
John Medina
le 7 Août 2018
Rik
le 7 Août 2018
Then you should indeed use assume(0 >=t&t<=1).
Réponses (2)
Star Strider
le 7 Août 2018
First, MATLAB parses matrices differently than you would expect it to, so your original ‘eqns’ system is (as MATLAB reads it) is:
eqns =
[ x^2 + y^2, 0, x - t == 0, y == 0]
Second, you need to be a bit less restrictive with respect to what you request of solve:
syms x y t
assume(0<=t & t<=1)
eqns = [x^2+y^2-1==0, x-t*cos(0)==0, y-t*sin(0)==0];
s = solve(eqns)
ts = s.t
xs = s.x
ys = s.y
ts =
1
xs =
1
ys =
0
It cannot solve for both ‘x’ and ‘y’ simultaneously in the system you posted.
Walter Roberson
le 7 Août 2018
syms x y t
assume(0<=t & t<=1);
eqns = [x^2 + y^2 - 1 == 0, x - t*cos(0)==0, y - t*sin(0)==0]; %notice spacing change
vars = [x y];
sol = solve(eqns);
sol2 = subs(vars, sol);
solv = sol2(:,1);
solu = sol2(:,2);
1 commentaire
John Medina
le 7 Août 2018
Catégories
En savoir plus sur Mathematics dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!