繁体   English   中英

使用 MATLAB syms 求解方程组

[英]Solve equation set using MATLAB syms

问题图片

我已经写了 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)

但是ans是空的,像这样

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

其实方程组确实有解,所以想知道怎么改码?

文档

如果求解返回一个空的 object,则不存在解。

稍微清理一下你的问题,

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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM