matlab 最小二乘法
M=K*x*x*y知道xyM的一组值,用MATLAB能求出K来吗?若能的话,求程序。。。谢谢啦!...
M=K*x*x*y
知道x y M的一组值,用MATLAB能求出K来吗?若能的话,求程序。。。谢谢啦! 展开
知道x y M的一组值,用MATLAB能求出K来吗?若能的话,求程序。。。谢谢啦! 展开
2个回答
展开全部
假设已知 x(i),y(i)为1*n的数组 此时M(i)为n*n的数组
首先最小二乘法的方法是 求使观测值减去拟合后的值的平方和最小
这里只有K这一个参数 直接求一次对K的倒数等于0 就出来了K值
平方和可以写成 (M(i)-m(i))^2=(M(i)-K*x*x*y)对i 求和
上式对K求导
-2(M(i)-K*x*x*y)对i求和=0 这是个一元一次方程 可以直接求解
这里边可以继续化简 把系数合到一起
下边写一下程序 x(i) y(i) M(i)你自己输入
a=0;
b=0;
for i=1:n
for j=1:n
a= (x(i)^2)*y(j)+a
end
end
for i=1:n*n
b=M(i)+b;
end
K=roots([2*a -2*b ]);
这样就结束了
首先最小二乘法的方法是 求使观测值减去拟合后的值的平方和最小
这里只有K这一个参数 直接求一次对K的倒数等于0 就出来了K值
平方和可以写成 (M(i)-m(i))^2=(M(i)-K*x*x*y)对i 求和
上式对K求导
-2(M(i)-K*x*x*y)对i求和=0 这是个一元一次方程 可以直接求解
这里边可以继续化简 把系数合到一起
下边写一下程序 x(i) y(i) M(i)你自己输入
a=0;
b=0;
for i=1:n
for j=1:n
a= (x(i)^2)*y(j)+a
end
end
for i=1:n*n
b=M(i)+b;
end
K=roots([2*a -2*b ]);
这样就结束了
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询