Решите набор уравнений с помощью MATLAB syms - PullRequest
0 голосов
/ 09 июля 2020

Изображение вопроса

Я написал код MATLAB, например,

syms x x1 x2 x3 y y1 y2 y3 t0 t1 t2 t3 v

[x,y]=solve((x-x1)^2+(y-y1)^2-(v*(t1-t0))^2==0,(x-x2)^2+(y-y2)^2-(v*(t2-t0))^2==0,(x-x3)^2+(y-y3)^2-(v*(t3-t0))^2==0)

, но ответ пуст, например

x =
 
Empty sym: 0-by-1
 
 
y =
 
Empty sym: 0-by-1

На самом деле, у набора уравнений есть решение, поэтому я хочу знать, как исправить код?

1 Ответ

0 голосов
/ 10 июля 2020

документы скажем

Если решение возвращает пустой объект, значит, решений не существует. 1009 *

Eq1 = (x-x1)^2+(y-y1)^2-(v*(t1-t0))^2==0;
Eq2 = (x-x2)^2+(y-y2)^2-(v*(t2-t0))^2==0;
Eq3 = (x-x3)^2+(y-y3)^2-(v*(t3-t0))^2==0;
EqSys = [Eq1,Eq2,Eq3]; % create a system of equations
solve(EqSys,x) % <= specify, for which variable the system of equations should be solved

заставило меня почувствовать, что вы хотите решать векторы, а не отдельные переменные, верно? Независимы ли записи? Или решение x действительно является скалярным значением? Если нет, решение одного уравнения

solve(Eq1,x)

вернет ответ

ans =
 
 x1 + (y - y1 + t0*v - t1*v)^(1/2)*(y1 - y + t0*v - t1*v)^(1/2)
 x1 - (y - y1 + t0*v - t1*v)^(1/2)*(y1 - y + t0*v - t1*v)^(1/2)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...