用matlab解方程组的问题,五个方程求解四个未知数。

方程:x+10496.108*y+10496.108^2*z+10496.108^3*t=-3043766.03x+10500.275*y+10500.275^2*z+1... 方程:x+10496.108*y+10496.108^2*z+10496.108^3*t=-3043766.03
x+10500.275*y+10500.275^2*z+10500.275^3*t=-3042809.53
x+10504.442*y+10504.442^2*z+10504.442^3*t=-3041787.84
x+10508.609*y+10508.609^2*z+10508.609^3*t=-3040701.05
x+10512.776*y+10512.776^2*z+10512.776^3*t=-3039549.25
展开
 我来答
k打酱油k
2013-04-13 · TA获得超过1396个赞
知道小有建树答主
回答量:266
采纳率:66%
帮助的人:332万
展开全部
方程数大于未知量个数,属于超定方程组,一般没有精确解,只能求最小二乘解。matlab中可以利用左除或伪逆法求解。
clear
c1=10496.108; c2=10500.275; c3=10504.442; c4=10508.609; c5=10512.776;
A=[1,c1,c1^2,c1^3; 1,c2,c2^2,c2^3; 1,c3,c3^2,c3^3; 1,c4,c4^2,c4^3; 1,c5,c5^2,c5^3;];
B=[-3043766.03 ;-3042809.53;-3041787.84;-3040701.05;-3039549.25];
xyzt=pinv(A)*B %伪逆法求解
%xyzt=A\B %左除法

xyzt =
1.0e+004 *
0.0005
1.8316
-0.0004
0.0000
追问
可是我把xyzt的数值带进去返算的结果不对啊???
追答
结果是对的,我既然放出答案,当然自己有验证过。
我估计你是直接吧上面的结果带进去?上面是MTALAB默认的显示格式,只显示5位有效数字的。
你再试试:
xyzt =

5.231005119
18316.49731
-3.59416421
0.0001735367694
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
baorina521
2013-04-15
知道答主
回答量:10
采纳率:0%
帮助的人:8.4万
展开全部
把系数写成矩阵,然后直接用等号右边的矩阵除以系数矩阵,或者直接用solve函数,看看帮助,里面写的很详细
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
liuliangsxd
2013-04-13 · TA获得超过1423个赞
知道小有建树答主
回答量:1174
采纳率:100%
帮助的人:663万
展开全部
超定方程

可以用fsolve函数求解

有时间的话就帮你做了
追问
急需啊~~~
追答
clear
clc
format long
c1=10496.108; c2=10500.275; c3=10504.442; c4=10508.609; c5=10512.776;
A=[1,c1,c1^2,c1^3; 1,c2,c2^2,c2^3; 1,c3,c3^2,c3^3; 1,c4,c4^2,c4^3; 1,c5,c5^2,c5^3;];
B=[-3043766.03 ;-3042809.53;-3041787.84;-3040701.05;-3039549.25];
A\B

一楼是正解,左除即可
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式