24小时热门版块排行榜    

查看: 1179  |  回复: 10

关月阑珊

木虫 (小有名气)

[求助] 大家能给看看这个方程属于什么类型,应该怎么求解?

求各位大神指点,我是工科的,这个方程是我模型之后推导出来的,需要解出x1,x2,x3,x4。但是有x1*x2和x1*x3的交叉项,这种应该怎么解决啊?

a11*x1 + a12*x2 + a13*x3 + a14*x4 + a15*x1*x2 + a16*x1*x3 = b1
a21*x1 + a22*x2 + a23*x3 + a24*x4 + a25*x1*x2 + a26*x1*x3 = b2
a31*x1 + a32*x2 + a33*x3 + a34*x4 + a35*x1*x2 + a36*x1*x3 = b3
a41*x1 + a42*x2 + a43*x3 + a44*x4 + a45*x1*x2 + a46*x1*x3 = b4

其中,x1,x2,x3,x4为未知数,其他参数已知
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
回帖支持 ( 显示支持度最高的前 50 名 )

pippi6

铁杆木虫 (著名写手)

工程和科学数值计算咨询

【答案】应助回帖

★ ★ ★ ★
感谢参与,应助指数 +1
关月阑珊: 金币+4, ★★★★★最佳答案, 确实这样能做出来。过两天我可以把计算过程也放上来。先谢谢pipi6大神了 2013-07-04 20:50:48
试试newton法吧,很简单。令
f1=a11*x1 + a12*x2 + a13*x3 + a14*x4 + a15*x1*x2 + a16*x1*x3 - b1
f2=a21*x1 + a22*x2 + a23*x3 + a24*x4 + a25*x1*x2 + a26*x1*x3 - b2
f3=a31*x1 + a32*x2 + a33*x3 + a34*x4 + a35*x1*x2 + a36*x1*x3 - b3
f4=a41*x1 + a42*x2 + a43*x3 + a44*x4 + a45*x1*x2 + a46*x1*x3 - b4
A 是一个四阶矩阵
A=∂(f1,f2,f3,f4)/∂(x1,x2,x3,x4)=
[A11,A12,A13,A14]
[A21,A22,A23,A24]
[A31,A32,A33,A34]
[A41,A42,A43,A44]
给两个例子
A11=a11 + a15*x2 + a16*x3
A23=a23*x3 + a26*x1

然后求解线性方程组
A11*δx1 + A12*δx2 + A13*δx3 + A14*δx4 =-f1
A21*δx1 + A22*δx2 + A23*δx3 + A24*δx4 =-f2
A31*δx1 + A32*δx2 + A33*δx3 + A34*δx4 =-f3
A41*δx1 + A42*δx2 + A43*δx3 + A44*δx4 =-f4
然后迭代修正
x1=x1+δx1
x2=x2+δx2
x3=x3+δx3
x4=x4+δx4
记住,矩阵A在每次更新后要重新算
先给迭代初值 (0,0,0,0)试试。
你做完后会有成就感的
2楼2013-07-03 10:43:17
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

aaron1988

木虫 (正式写手)

【答案】应助回帖

★ ★
感谢参与,应助指数 +1
关月阑珊: 金币+2, ★★★很有帮助, 关于矩阵分解的这种方法我还没有往下深入,因为需要判断是否是非奇异矩阵。先谢谢先 2013-07-04 20:52:27
有解析解的。
令 x = [x1 x2 x3 x4]', b =[b1 b2 b3 b4]'; 那么只要 C = 方形矩阵 [a11 到 a44], A= 矩阵包涵[a15 到 a46]
你的上面方程就能写成x’ A x + 2Cx = b
这可以看成一个矩阵形式的一元2次方程(如果x是一维的话,上面就是ax^2+2cx=b)
接着用完全平方方式法:
x' A^(1/2)' A^(1/2)x +2Cx = b
=>  x' A^(1/2)' A^(1/2)x +2Cx + (A^(-1/2)C)'(A^(-1/2)C) = b+ (A^(-1/2)C)'(A^(-1/2)C) = b+C'A^(-1)C
(A必须是full rank,不然无解)
=> (A^(1/2)x+ A(-1/2)C)'(A^(1/2)x+A(-1/2)C)= b+C'A^(-1)C
令 y = (A^(1/2)x+A(-1/2)C) ;
那么 y'y = b+C'A^(-1)C
y = +/- (b+C'*A^(-1)*C)^1/2
x = A^(-1/2)*(-A^(-1/2)C +/- (b+C'*A^(-1)*C)^1/2)
(基本上是x=-b+/- sqrt(delta)/2a)

麻烦楼主自己推一下。
6楼2013-07-03 11:14:08
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通回帖

关月阑珊

木虫 (小有名气)

其实更重要的是想知道这个方程是属于那种类型,这种类型的方程的一般处理方法是什么。因为这个是想往论文里面放的。。。

自己给自己先沙发一个。。
3楼2013-07-03 10:45:12
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

关月阑珊

木虫 (小有名气)

引用回帖:
2楼: Originally posted by pippi6 at 2013-07-03 10:43:17
试试newton法吧,很简单。令
f1=a11*x1 + a12*x2 + a13*x3 + a14*x4 + a15*x1*x2 + a16*x1*x3 - b1
f2=a21*x1 + a22*x2 + a23*x3 + a24*x4 + a25*x1*x2 + a26*x1*x3 - b2
f3=a31*x1 + a32*x2 + a33*x3 + a34*x4  ...

我先看看,就找 《数值分析》看就可以了吧,我现在手里有一本 李庆阳的数值分析,第5版。
4楼2013-07-03 11:03:44
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

关月阑珊

木虫 (小有名气)

引用回帖:
2楼: Originally posted by pippi6 at 2013-07-03 10:43:17
试试newton法吧,很简单。令
f1=a11*x1 + a12*x2 + a13*x3 + a14*x4 + a15*x1*x2 + a16*x1*x3 - b1
f2=a21*x1 + a22*x2 + a23*x3 + a24*x4 + a25*x1*x2 + a26*x1*x3 - b2
f3=a31*x1 + a32*x2 + a33*x3 + a34*x4  ...

那么这类方程属于什么类型啊?
用 “非线性方程组的牛顿迭代法” 。用这个方法就能解决吧?。谢谢
5楼2013-07-03 11:06:07
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

关月阑珊

木虫 (小有名气)

引用回帖:
6楼: Originally posted by aaron1988 at 2013-07-03 11:14:08
有解析解的。
令 x = ', b ='; 那么只要 C = 方形矩阵 , A= 矩阵包涵
你的上面方程就能写成x’ A x + 2Cx = b
这可以看成一个矩阵形式的一元2次方程(如果x是一维的话,上面就是ax^2+2cx=b)
接着用完全平方方式 ...

那个x’ A x写不出来的。
a11*x1+a12*x2 + a13*x3 + a14*x4 + a15*x1*x2 + a16*x1*x3=b1
a21*x1+a22*x2 + a23*x3 + a24*x4 + a25*x1*x2 + a26*x1*x3=b2
a31*x1+a32*x2 + a33*x3 + a34*x4 + a35*x1*x2 + a36*x1*x3=b3
a41*x1+a42*x2 + a43*x3 + a44*x4 + a45*x1*x2 + a46*x1*x3=b4

x = [x1 x2 x3 x4]', b = [b1 b2 b3 b4]'
C = [a11 a12 a13 a14;        |  A = [a15 a16;
    a21 a22 a23 a24;         |           a25 a26;
    a31 a32 a33 a34;          |      a35 a36;
    a41 a42 a43 a44;]        |           a45 a46;]
则x’ A x + 2Cx = b
对于2Cx那个部分可以写出来,但是对于x’ A x这部分就写不出来的,
因为 x’Ax 是(1x4) * (4x2) * (4x1)  = (1x2) * (4x1) 这里不符合矩阵运算的

对于含有交叉项的那部分,如果想要写成 x’ A x 的形式,结果为(4x1)形式,
那么只能是:(4xm)*(mxn)*(n*1) = (4x1); 那么m=1,n=4,就是X*(1x4)*X的形式了,这就会出现很多平方项。。。
7楼2013-07-03 13:57:31
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

aaron1988

木虫 (正式写手)

A = 方形矩阵 [a11 到 a44], C= 矩阵包涵[a15 到 a46]
我写反了。A是4*4的。
8楼2013-07-03 14:07:45
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

aaron1988

木虫 (正式写手)

A = [a11 a12 a13 a14;        |  C = [ a15 a16;
      a21 a22 a23 a24;         |           a25 a26;
     a31 a32 a33 a34;          |           a35 a36;
      a41 a42 a43 a44;]        |           a45 a46;]

应该是这样
9楼2013-07-03 14:08:44
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

aaron1988

木虫 (正式写手)

混了!!
A = 方形矩阵 [a11 到 a44] \in R^(4*4), C= 矩阵包涵[a15 到 a46]
C = [a11 a12 a13 a14;        |  A = [ a15 a16 0 0;
      a21 a22 a23 a24;         |           a25 a26 0 0;
      a31 a32 a33 a34;         |           a35  0 a36 0;
     a41 a42 a43 a44;]         |            a45  0 a46  0;]
10楼2013-07-03 14:12:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 关月阑珊 的主题更新
信息提示
请填处理意见