注册 登录
编程论坛 Matlab

[求助]求解非线性方程组!

ding633 发布于 2007-03-23 17:31, 1358 次点击
我是Matlab菜鸟,现急需用Matlab求解一组复杂的非线性方程组,各位大侠帮我看看怎么写程序么?
方程组如下:
r=P1(x,y,z)/P2(x,y,z);
c=P3(x,y,z)/P4(x,y,z);

其中P一般多项式,展开到三阶一共20项,20各系数
P1=a0+a1*x+a2*y+a3*z+a4*x*y+a5*x*z+a6*y*z+......+a19*z*z*z
P2=b0+b1*x+b2*y+b3*z+b4*x*y+b5*x*z+b6*y*z+......+b19*z*z*z
P3=c0+c1*x+c2*y+c3*z+c4*x*y+c5*x*z+c6*y*z+......+c19*z*z*z
P4=d0+d1*x+d2*y+d3*z+d4*x*y+d5*x*z+d6*y*z+......+d19*z*z*z

要求解系数a(i),b(i),c(i),d(i)一共80各系数,一个点可以列两个方程,要用到至少40各点的坐标(r,c)和(x,y,z),多余40各点就会有多余方程,要求用最小二乘求解

怎样写方程啊?
各位请指教一下,谢谢

2 回复
#2
abingchem2007-03-24 19:44
你这个情况比较特殊,如果进行变形后,可以为
a0-ri*b0+a1*xi-ri*b1*xi...=0
这个方程如果进行最小二乘法,因为右端为零,最后优化后的结果为所有的系数都为零

欢迎大家讨论:)
#3
ding6332007-03-26 20:58

会这样么?因为是观测方程所以用泰勒级数展开有个误差项,应该不会为零
我想先把1阶的编出来试试,3阶的也就不难了
主要是现在下手比较困难
还请各位高手指点,非常感谢!

1