[已答复] 曲线拟合误差太大

[复制链接]
1445184308 发表于 2021-11-18 15:08:02
本帖最后由 1445184308 于 2021-11-18 15:09 编辑

根据网站上的帮助,找到一个曲线拟合的代码如下: y=[----]';x1=[----]';
x2=[----]';
x3=[----]';
X=[ones(size(y)) x1.^2 x2.^2 x3.^2 x1.*x2 x1.*x3 x3.*x2 x1 x2 x3];
[b,bint,r,rint,stats] = regress(y,X);
利用此代码做三个自变量,两个因变量的曲线拟合,各得出一个公式,但是其中y1误差非常大,y2误差小于0.5.请大神帮我做拟合,误差尽量小,生成两个公式,或者xy全部拟合在一起。


2 条回复


1445184308 发表于 2021-11-18 15:12:46
x1        x2        x3        y1        y2
199.899        361.231        0.099        0.039        0.163
202.952        354.762        0.06        0.103        0.157
193.141        361.998        0.176        0.006        0.187
200.846        367.542        0.166        0.017        0.184
196.326        363.961        0.121        0.044        0.164
197.259        362.505        0.086        0.085        0.161
199.543        359.222        0.208        0.003        0.209
207.052        359.681        0.226        -0.037        0.244
203.387        358.231        0.258        -0.115        0.301
195.707        363.721        0.027        0.19        0.15
204.226        355.794        0.151        -0.017        0.177
200.258        352.346        0.127        0.012        0.166
198.226        360.298        0.029        0.183        0.15
202.328        358.86        0.201        -0.003        0.205
201.447        365.326        0.074        0.102        0.159

wjb986555360 发表于 7 天前
解答
clear all
clc
data=[199.899        361.231        0.099        0.039        0.163
202.952        354.762        0.06        0.103        0.157
193.141        361.998        0.176        0.006        0.187
200.846        367.542        0.166        0.017        0.184
196.326        363.961        0.121        0.044        0.164
197.259        362.505        0.086        0.085        0.161
199.543        359.222        0.208        0.003        0.209
207.052        359.681        0.226        -0.037        0.244
203.387        358.231        0.258        -0.115        0.301
195.707        363.721        0.027        0.19        0.15
204.226        355.794        0.151        -0.017        0.177
200.258        352.346        0.127        0.012        0.166
198.226        360.298        0.029        0.183        0.15
202.328        358.86        0.201        -0.003        0.205
201.447        365.326        0.074        0.102        0.159];
x1=data(:,1);
x2=data(:,2);
x3=data(:,3);
y1=data(:,4);
y2=data(:,5);
X=[ones(size(y1)) x1.^2 x2.^2 x3.^2 x1.*x2 x1.*x3 x3.*x2 x1 x2 x3];
[b,bint,r,rint,stats] = regress(y1,X);
b=b';
[m,n]=size(X);
for i=1:m
yfit(i)=sum(b.*X(i,:));
end
figure
plot(1:length(y1),y1,'r')
hold on
plot(1:length(y1),yfit,'b')

figure
[b,bint,r,rint,stats] = regress(y2,X);
b=b';
[m,n]=size(X);
for i=1:m
yfit(i)=sum(b.*X(i,:));
end
plot(1:length(y2),y2,'r')
hold on
plot(1:length(y1),yfit,'b')
您需要登录后才可以回帖 登录 | 注册

本版积分规则

相关帖子
相关文章
热门教程
站长推荐
快速回复 返回顶部 返回列表