空间平面方程matlab求解,在Python中求解平面方程(如在Matlab中)

我有一个数据集,我试图从中得到一架飞机的等式。

即:a x + b y + c = z

在我的情况下,dT = x,dTa = y,Constant = c,dV = z。

我可以在Matlab中很容易地做到这一点,代码:

dT = [8.5; 3.5; .4; 12.9]

dT =

8.5000

3.5000

0.4000

12.9000

dTa = [8.5; 18; 22; 34.9]

dTa =

8.5000

18.0000

22.0000

34.9000

dV = [3; 1; .5; 3]

dV =

3.0000

1.0000

0.5000

3.0000

Constant = ones(size(dT))

Constant =

1

1

1

1

coefficients = [dT dTa Constant]\dV

coefficients =

0.2535

-0.0392

1.0895所以,在这里,系数=(a,b,c)。

有没有在Python中做到这一点的等效方法?

我一直在尝试使用numpy模块(numpy.linalg),但是它的效果并不好。

首先,矩阵必须是方形的,即使如此,它也不会给出非常好的答案。例如:

错误:

>>> dT

[8.5, 3.5, 0.4, 12.9]

>>> dTa

[8.5, 18, 22, 34.9]

>>> dV

[3, 1, 0.5, 3]

>>> Constant

array([ 1., 1., 1., 1.])

>>> numpy.linalg.solve([dT, dTa, Constant], dV)

Traceback (most recent call last):

File "", line 1, in

numpy.linalg.solve([dT, dTa, Constant], dV)

File "C:\Python27\lib\site-packages\numpy\linalg\linalg.py", line 312, in solve

_assertSquareness(a)

File "C:\Python27\lib\site-packages\numpy\linalg\linalg.py", line 160, in _assertSquareness

raise LinAlgError, 'Array must be square'

LinAlgError: Array must be squareWokrking矩形矩阵:

>>> dT

array([ 8.5, 3.5, 12.9])

>>> dTa

array([ 8.5, 18. , 34.9])

>>> dV

array([3, 1, 3])

>>> Constant

array([ 1., 1., 1.])

>>> numpy.linalg.solve([dT, dTa, Constant], dV)

array([ 2.1372267 , 2.79746835, -1.93469505])这些甚至不是我之前得到的价值观!

任何想法家伙?任何意见赞赏。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值