matlab三个自变量一个因变量拟合

fit_nonlinear_data.m

function [beta, r]=fit_nonlinear_data(X, Y, choose)
% Input: X 自变量数据(N, D), Y 因变量(N, 1),choose 1-regress, 2-nlinfit 3-lsqcurvefit
if choose==1
    X1=[ones(length(X(:, 1)), 1), X];
    [beta, bint, r, rint, states]=regress(Y, X1)
    % 多元线性回归
    % y=beta(1)+beta(2)*x1+beta(3)*x2+beta(4)*x3+...
    % beta—系数估计
    % bint—系数估计的上下置信界
    % r—残差
    % rint—诊断异常值的区间
    % states—模型统计信息
    rcoplot(r, rint)
    saveas(gcf,sprintf('线性曲线拟合_残差图.jpg'),'bmp');
elseif choose==2
    beta0=ones(7, 1);
    % 初始值的选取可能会导致结果具有较大的误差。
    [beta, r, J]=nlinfit(X, Y, @myfun, beta0)
    % 非线性回归
    % beta—系数估计
    % r—残差
    % J—雅可比矩阵
    [Ypred,delta]=nlpredci(@myfun, X, beta, r, 'Jacobian', J)
    % 非线性回归预测置信区间
    % Ypred—预测响应
    % delta—置信区间半角
    plot(X(:, 1), Y, 'k.', X(:, 1), Ypred, 'r');
    saveas(gcf,sprintf('非线性曲线拟合_1.jpg'),'bmp');
elseif choose==3
    beta0=ones(7, 1);
    % 初始值的选取可能会导致结果具有较大的误差。
    [beta,resnorm,r, ~, ~, ~, J]=lsqcurvefit(@myfun,beta0,X,Y)
    % 在最小二乘意义上解决非线性曲线拟合(数据拟合)问题
    % beta—系数估计
    % resnorm—残差的平方范数 sum((fun(x,xdata)-ydata).^2)
    % r—残差 r=fun(x,xdata)-ydata
    % J—雅可比矩阵
    [Ypred,delta]=nlpredci(@myfun, X, beta, r, 'Jacobian', J)
    plot(X(:, 1), Y, 'k.', X(:, 1), Ypred, 'r');
    saveas(gcf,sprintf('非线性曲线拟合_2.jpg'),'bmp');
end
end
 
 
function yy=myfun(beta,x) %自定义拟合函数
yy=beta(1)+beta(2)*x(:, 1)+beta(3)*x(:, 2)+beta(4)*x(:, 3)+beta(5)*(x(:, 1).^2)+beta(6)*(x(:, 2).^2)+beta(7)*(x(:, 3).^2);
end

demo.m

%x,y为离散点横纵坐标
clear
clc
X=[ 63.50 73.60 30.90 ;
    67.90 77.90 33.20;
    61.90 74.10 31.20;
    64.20 76.50 32.50;
    66.70 76.50 32.50];
Y=[64.00;73.80 ;65.60;70.30;69.50];
choose=1;
fit_nonlinear_data(X, Y, choose)

《matlab三个自变量一个因变量拟合》

拟合羊的体重

#重量估计,输入体高,体长,体宽,输出估计重量
#公式:y = beta(1) + beta(2) * x1 + beta(3) * x2 + beta(4) * x3
def sheep_weight_estimation(body_length,body_height,body_width):
    #matlab多项式拟合
    k1 =-288.7822
    k2 =  -0.4094
    k3 = 14.2552
    k4 = -21.6917
    sheep_weight=k1 + k2*body_height  + k3*body_length + k4*body_width

    return sheep_weight

参考:https://www.cnblogs.com/kailugaji/p/13086180.html

    原文作者:翟羽嚄
    原文地址: https://blog.csdn.net/mao_hui_fei/article/details/124480545
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞