早教吧 育儿知识 作业答案 考试题库 百科 知识分享

MATLAB中已知数据(x,y,z的值) 如何求公式 (线性关系)?已知公式的关系为线性,假设a*x + b*y +c*z = t已知x,y,z,t的数据 (数据量大),比如x=[29 30 35 34 28 24 14 21 0 255 114 123 117 119 12229 30 31 28 20 16 14

题目详情
MATLAB中已知数据(x,y,z的值) 如何求公式 (线性关系)?
已知公式的关系为线性,假设a*x + b*y +c*z = t
已知x,y,z,t的数据 (数据量大),比如
x=[29 30 35 34 28 24 14 21 0 255 114 123 117 119 122
29 30 31 28 20 16 14 21 0 255 110 119 114 117 120
30 30 31 28 19 14 14 21 0 255 110 118 113 116 118]
y=[31 33 36 35 27 23 15 22 0 255 110 117 111 114 116
31 35 39 37 30 25 17 24 0 255 110 117 110 113 113
32 34 36 33 23 18 18 24 0 255 109 115 108 110 110
]
z=[32 34 35 31 19 12 15 21 0 255 102 108 100 102 105
32 35 36 34 24 18 16 19 0 255 95 104 103 103 102
30 33 35 33 25 20 20 23 0 255 95 100 99 99 99
]
t=[32.4000 32.4000 32.4000 32.6000 32.6000 32.4000 32.3000
32.4000 32.5000 32.5000 32.5000 32.4000 32.4000 32.5000
32.4000 32.4000 32.4000 32.3000 32.4000 32.4000 32.4000
32.4000 32.4000 32.4000 32.3000 32.4000 32.3000 32.4000
32.3000 32.5000 32.5000 32.5000 32.4000 32.4000 32.4000
32.4000 32.6000 32.4000 32.4000 32.4000 32.4000 32.4000
]
如何求常数 a,b,c
求高手赐教,感激不尽!
可以给出具体代码吗?不好意思我刚开始用MATLAB
▼优质解答
答案和解析
这个属于多元回归问题
Matlab中提供了直接的regress函数,调用格式如下[b,bint] = regress(y,X)
举个例子吧,由于你的数据有问题 我就使用自己的数据了
我们使用Matlab自带的carsmall数据,使用其中的x=weight,y=horsepower,z=MpG
拟合z=a+bx+cy+dxy,的参数 abcd
%by dynamic
%see also http://www.matlabsky.com
%2009.2.15
%
load carsmall
x= Weight;
y = Horsepower; % Contains NaN data
z = MPG;
XX = [ones(size(x)) ,x, y, x.*y];
b = regress(z,XX)
b =
60.7104
-0.0102
-0.1882