Matlab解多元二次方程组,在线等

2025-03-06 13:48:00
推荐回答(3个)
回答1:

改了一下可以运行,但是我运行了两分钟没有得到结果。但是估计很难得到解。
[k1,k2,k3,r11,r12,r13,r21,r22,r23,r31,r32,r33,tx,ty,tz]=solve('r11^2+r21^2+r31^2=1','r12^2+r22^2+r32^2=1','r13^2+r23^2+r33^2=1','r11*r12+r21*r22+r31*r32=0','r13*r12+r23*r22+r33*r32=0','r11*r13+r21*r23+r31*r33=0','r11-91*k2+r12*187*k2+r13*1577*k2+tx=-91','r11*128*k3+r12*171*k3+r13*1577*k3+tx=128','r21-177*k1+r22*195*k1+r23*1577*k1+ty=195', 'r21-91*k2+r22*187*k2+r23*1577*k2+ty=187', 'r21*128*k3+r22*171*k2+r23*1577*k2+ty=171', 'r31-177*k1+r32*195*k1+r33*1577*k1+tz=1577', 'r31-91*k2+r32*187*k2+r33*1577*k2+tz=1577', 'r31*128*k3+r32*171*k3+r33*1577*k3+tz=1577')

你搜索一下*-,你的式子里面有四五这样的错误。
这种多元多次方程,解析解是很难得到的。
可以的话,尽量降低未知数的个数之类的。
==========================================
我觉得并不是说不能解。
你试一下下面这三个未知数的非线性方程看一下:
[rr1,rr2,rr3]=solve('r11^2+r21^2+r31^2=1','r11^2-r21*r31=0','r11+r21*r31=1','r11','r21','r31')

======================================================
另外,你看一下,你有15个未知数,方程是14个啊。

回答2:

楼主修改后的程序是可以运行的。
我的电脑是双核3.4G的,运行了18分钟,得到的结果是:
Warning: Explicit solution could not be found.
就是说无法得到精确解。
这里确实是15个方程和15个未知数。
楼主的方程是否有问题?确定一定有解吗?

简单但很笨的降低未知数个数的办法:
把k1当未知数,其他当成常量解第一个方程,把解出的k1代入其他14个方程,就变成14个方程14个未知数,以此类推。

回答3:

这个问题嘛~~~简单