关于用matlab解方程组

来源:百度知道 编辑:UC知道 时间:2024/04/30 15:10:29
用matlab解方程组
(u2-u3)*u0+(v2-v3)*v0*t1-v1*(v2-v3)*t1-u1*(u2-u3)=0
(u1-u3)*u0+(v1-v3)*v0*t1-v2*(v1-v3)*t1-u2*(u1-u3)=0
(u5-u6)*u0+(v5-v6)*v0*t1-v4*(v5-v6)*t1-u4*(u5-u6)=0

编写成下面形式能不能解出啊!!是不是有的地方出错了???

syms u0 v0 t1 t2
u1=23861.18;v1=52622.63;u2=889.19;v2=-805.58;u3=-82.78;v3=177.53;
u4=50;v4=-1796.61;u5=0;v5=1352.26;u6=50;v6=244.95;
equ1=(u2-u3)*u0+(v2-v3)*v0*t1-v1*(v2-v3)*t1-u1*(u2-u3);
equ2=(u1-u3)*u0+(v1-v3)*v0*t1-v2*(v1-v3)*t1-u2*(u1-u3);
equ3=(u5-u6)*u0+(v5-v6)*v0*t1-v4*(v5-v6)*t1-u4*(u5-u6);
[u0,v0,t1]=solve(equ1,equ2,equ3,u0,v0,t1);
U0=vpa(u0,4);
V0=vpa(v0,4);
T1=vpa(t1,4);
equ4=(u1-U0)*(u2-U0)+T1*(v1-V0)*(v2-V0)+t2;
[t2]=solve(equ4,t2);
T2=vpa(t2,4);
ax=sqrt(T2);
ay=sqrt(T2)/sqrt(T1);
U0,V0,ax,ay
可以运算出结果!!但是结果和答案不对!!其中答案中U0和V0基本为1:1

问题出在[u0,v0,t1]=solve(equ1,equ2,equ3,u0,v0,t1);
有顺序的,按照英文字母顺序的,即t1,u0,v0

clc;clear
syms u0 v0 t1 t2
u1=23861.18;v1=52622.63;u2=889.19;v2=-805.58;u3=-82.78;v3=177.53;
u4=50;v4=-1796.61;u5=0;v5=1352.26;u6=50;v6=244.95;
equ1=(u2-u3)*u0+(v2-v3)*v0*t1-v1*(v2-v3)*t1-u1*(u2-u3);
equ2=(u1-u3)*u0+(v1-v3)*v0*t1-v2*(v1-v3)*t1-u2*(u1-u3);
equ3=(u5-u6)*u0+(v5-v6)*v0*t1-v4*(v5-v6)*t1-u4*(u5-u6);
[t1,u0,v0]=solve(equ1,equ2,equ3,t1,u0,v0)
S=solve(equ1,equ2,equ3)%,u0,v0,t1)
S.t1,S.u0,S.v0
U0=vpa(u0,4);
V0=vpa(v0,4);
T1=vpa(t1,4);
equ4=(u1-U0)*(u2-U0)+T1*(v1-V0)*(v2-V0)+t2;
[t2]=solve(equ4,t2);
T2=vpa(t2,4);
ax=sqrt(T2);
ay=sqrt(T2)/sqrt(T1);
U0,V0,ax,ay

结果:
t1 =

662899805540870228905686370166004666481705800505/1634907985093571203026337470639083256966023122931

u0 =

2639697666965318345270638554596360464137385605915136/163490798509357