求助:用什么命令可以解决方程个数比未知量多的情形
多谢! 超定方程,一般求最小二乘解不知道你说的命令是什么意思?
回复 #2 MVH 的帖子
solve命令可以解未知数和方程个数相等的方程组,但是若不相等,就会出现报错信息。所以我是想问一下有没有那样的命令,可以直接解这种情形。
用最小二乘法怎么做?谢谢你!
回复 #3 zcf20066 的帖子
请问对方程个数有限制吗?我看了论坛里以前介绍的最小二乘法,可是换成我的问题就不行了,我那个问题有13个方程,12个未知数,是不是因为太多了。
程序如下,望高手赐教:
function myfun(x)
h=zeros(1,14);
h(1)=0.003792658534;h(2)=-0.001481225915;h(3)=-0.017870431651;h(4)=0.043155452582;
h(6)=-0.070078291222;h(7)=0.024665659489;h(8)=0.758162601964;h(9)=1.085782709814;
h(5)=0.096014767936;h(10)=0.408183939725;h(11)=-0.198056706807;h(12)=-0.152463871896;
h(13)=0.005671342686;h(14)=0.014521394762;
g=zeros(1,14);a=zeros(1,13);
g=sqrt(2)/2*h;
for n=1:13
for i=1:14-n
a(n)=a(n)+2*g(i)*g(i+n);
end
end
F=[2*(x(2)+1/2*(a(1)*(x(1)+x(3))+a(3)*(x(5)-x(1))+a(5)*(x(7)-x(3))+a(7)*(x(9)-x(5))+a(9)*(x(11)-x(7))+a(11)*(-x(9))+a(13)*(-x(11))))-x(1);
2*(x(4)+1/2*(a(1)*(x(3)+x(5))+a(3)*(x(7)+x(1))+a(5)*(x(9)-x(1))+a(7)*(x(11)-x(3))+a(9)*(-x(5))+a(11)*(-x(7))+a(13)*(-x(9))))-x(2);
2*(x(6)+1/2*(a(1)*(x(7)+x(5))+a(3)*(x(9)+x(3))+a(7)*(x(11)+x(1))+a(9)*(-x(1))+a(11)*(-x(3))+a(13)*(-x(5))))-x(3);
2*(x(8)+1/2*(a(1)*(x(9)+x(7))+a(3)*(x(11)+x(5))+a(5)*(x(3))+a(9)*x(1)+a(11)*(-x(1))+a(13)*(-x(3))))-x(4);
2*(x(10)+1/2*(a(1)*(x(9)+x(11))+a(3)*x(7)+a(5)*x(5)+a(7)*x(3)+a(9)*x(1)+a(11)*(-x(1))+a(13)*(-x(3))))-x(5);
2*(x(12)+1/2*(a(1)*x(11)+a(3)*x(9)+a(5)*x(7)+a(7)*x(5)+a(7)*x(3)+a(9)*x(1)+a(11)*(-x(1))+a(13)*(-x(3))))-x(6);
a(3)*x(11)+a(5)*x(9)+a(7)*x(7)+a(9)*x(5)+a(11)*x(3)+a(13)*x(1)-x(7);
a(5)*x(11)+a(7)*x(9)+a(9)*x(7)+a(11)*x(5)+a(13)*x(3)-x(8);
a(7)*x(11)+a(9)*x(9)+a(11)*x(7)+a(13)*x(5)-x(9);
a(9)*x(11)+a(11)*x(9)+a(13)*x(7)-x(10);
a(11)*x(11)+a(13)*x(9)-x(11);
x(12)-a(13)*x(11);
x(1)+2*x(2)+3*x(3)+4*x(4)+5*x(5)+6*x(6)+7*x(7)+8*x(8)+9*x(9)+10*x(10)+11*x(11)+12*x(12)+1/2]; 可以用你的所有的方程建一个准则函数,如J(x)=f1(x)^2+f2(x)^2+...f3(x)^2,再用optimization工具箱解无约束的优化问题阿,方法很多的,可以用梯度,也可以用拟牛顿,工具箱里有直接求解的函数,很方便的 呵呵,方程有点难,做什么的? 原帖由 zcf20066 于 2007-2-9 15:42 发表
solve命令可以解未知数和方程个数相等的方程组,但是若不相等,就会出现报错信息。
所以我是想问一下有没有那样的命令,可以直接解这种情形。
用最小二乘法怎么做?谢谢你!
solve和fsolve只能解适定问题 超定非线性方程组可以用五楼提到的优化算法进行求解
也可以用牛顿类算法来求解,即将牛顿类迭代算法和最小二乘原理
页:
[1]