用matlab解方程组的问题,五个方程求解四个未知数.
方程: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
人气:252 ℃ 时间:2020-02-05 12:16:17
解答
方程数大于未知量个数,属于超定方程组,一般没有精确解,只能求最小二乘解.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
推荐
- 大侠帮忙,matlab解方程组 (5个方程,5个未知数)
- matlab解高次四个未知数方程组
- matlab解方程组能求借分母带未知数的方程吗?
- 如何用MATLAB求解18元一次方程组,即用18个方程来求解其中的18个未知数
- matlab求方程组的解里含有未知数
- 师异道,人异论,百家殊方,旨意不同...凡不在六艺之科,孔子之术者,皆绝其道,勿使并进...
- 怎样判断一条题目是证明还是求值?
- 已知,如图,在梯形ABCD中,AD//BC,EF是梯形的中位线(两腰中点的连线).求证:EF//AD,EF//BC,EF=0.5(AD+BC).
猜你喜欢