%此为脚本文件,输入自变量数据和因变量数据,运行即可。注意矩阵的维度一致
%自变量输入
x=[21 32 65;12 54 95;54 56 94;21 49 65;15 67 94];
%因变量输入
y=[55 66 44 88 44];
%待求参数初始值设定
beta999=[1 1 1 1];
%核心调用
%covB回归系数的协方差
%mse均方误差
%beta参数最优值
%r各点处的拟合残差
%J雅各比矩阵的数值
%ErrorModelInfo错误模型信息
[beta,r,j,CovB,MSE,ErrorModelInfo]=nlinfit(x,y,'myfun',beta999)
%此为函数文件,需和脚本文件放在同一搜索路径下
%beta为定义的所有参数即x1--x4
function y=myfun(beta,x)
x1=beta(1);
x2=beta(2);
x3=beta(3);
x4=beta(4);
%a,b,c即为已知的自变量
a=x(:,1)';
b=x(:,2)';
c=x(:,3)';
%自变量输入
x=[21 32 65;12 54 95;54 56 94;21 49 65;15 67 94];
%因变量输入
y=[55 66 44 88 44];
%待求参数初始值设定
beta999=[1 1 1 1];
%核心调用
%covB回归系数的协方差
%mse均方误差
%beta参数最优值
%r各点处的拟合残差
%J雅各比矩阵的数值
%ErrorModelInfo错误模型信息
[beta,r,j,CovB,MSE,ErrorModelInfo]=nlinfit(x,y,'myfun',beta999)
%此为函数文件,需和脚本文件放在同一搜索路径下
%beta为定义的所有参数即x1--x4
function y=myfun(beta,x)
x1=beta(1);
x2=beta(2);
x3=beta(3);
x4=beta(4);
%a,b,c即为已知的自变量
a=x(:,1)';
b=x(:,2)';
c=x(:,3)';
%此处a=x(:,1)' 的意思为x取自变量的第一列 最后的'为转置,此处无所谓
%若想取第一行,可用a=x(1,:)
%下方为两个函数,一个线性,一个非线性,亦可自定义
y=a.*x1^2+b.*x2^2+c.*x3^2+x4;
end