【问题标题】:Solve equation set using MATLAB syms使用 MATLAB syms 求解方程组
【发布时间】:2020-10-29 19:02:37
【问题描述】:

The question image

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

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

【问题讨论】:

  • 查看文档,solve的正确用法是solve(equation,variable)而不是solve(equation, equation, equation),您可以使用括号将多个方程组合在一起。当x = x1,x2,x3y = y1,y2,y3v=0 时,您的问题也有一个简单的解决方案。

标签: matlab equation


【解决方案1】:

docs

如果solve返回一个空对象,则不存在解决方案。

稍微清理一下你的问题,

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)

【讨论】:

    猜你喜欢
    • 2012-11-09
    • 1970-01-01
    • 2020-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多