标题:[求助]参数方程求解
只看楼主
guiyangl015
Rank: 1
等 级:新手上路
帖 子:125
专家分:0
注 册:2006-5-21
 问题点数:0 回复次数:13 
[求助]参数方程求解

若是有4个方程(全部都是字母表示的),其中只有2个待求解的未知参数,怎么样才能求出未知参数的最佳表达式?
不知道能不能在Matlab里面来求解!

搜索更多相关主题的帖子: 方程 参数 求解 Matlab 
2007-10-30 10:40
jiangbiao66
Rank: 1
等 级:新手上路
帖 子:65
专家分:0
注 册:2007-9-2
得分:0 

用 matlab曲线拟合库函数

2007-10-31 10:49
ydgsl
Rank: 3Rank: 3
等 级:论坛游民
威 望:8
帖 子:107
专家分:20
注 册:2006-9-20
得分:0 
把问题表示出来,可以请大家试试!
2007-10-31 15:45
hlongxiang
Rank: 1
等 级:新手上路
帖 子:88
专家分:0
注 册:2007-10-30
得分:0 
把函数写出来看看,应该是最有问题吧
好像是可以的,见过这类问题
2007-11-01 15:30
guiyangl015
Rank: 1
等 级:新手上路
帖 子:125
专家分:0
注 册:2006-5-21
得分:0 
呵呵!先写出来,请大家帮帮忙,谢谢了!
有四个概率事件:
P1=b+c*x+a*y
P2=d+e*x+f*y
P3=g+h*x+i*y
P4=m+n*x+j*y
其中x和y是未知数。这四个方程的形式是一样的,只是未知数的系数不一样,而且各个系数都可以用一个或几个参数来表示的表达式,例如:b=(p1+p2+p3)^2,其它的参数也可以用p1、p2、p3表示出来!
这里给我的感觉好像要用到统计方面的知识,但是我还是不知道要满足条件才能求来!

站的高,才能看的远!!
2007-11-06 09:50
ydgsl
Rank: 3Rank: 3
等 级:论坛游民
威 望:8
帖 子:107
专家分:20
注 册:2006-9-20
得分:0 
%P1=b+c*x+a*y
%P2=d+e*x+f*y
%P3=g+h*x+i*y
%P4=m+n*x+j*y
%上式相当于:
%P=X*B
%其中P=[p1 p2 p3 p4]'
%X=为下列X矩阵,B=[x0 x y]',即所求的未知数(需用最小平方法求得)。B的公式解即可用下列程序:

clear,clc
syms a b c d e f g h i j m n p1 p2 p3 p4

P=[p1; p2; p3; p4]
X=[b c a;d e f;g h i;m n j]
XT=[b d g m;c e h n;a f i j]
A=XT*X
K=XT*P
B=A\K
%以上的a b c d 等可用数值代入(subs(B,a,3)(意即以3代替a),求得数值解。
若以上a b c d全是数值,也用类似以上公式,不过可以更简单:如
x=rand(4,3)
p=rand(4,1)
b=x'*x\x'*p

a=x'*x
k=x'*p
b=a\k

b=x\p
最后一个式子最为简单,建议采用最优一个式子。

2007-11-06 19:51
guiyangl015
Rank: 1
等 级:新手上路
帖 子:125
专家分:0
注 册:2006-5-21
得分:0 
ydgsl版主,非常感谢你的回答!
不过因为以前在matlab上面没有做过这方面的东西,所有上面的代码有一部分看的不是很懂!
上半部分还能看明白,后面不是很懂,我觉着最后应该能求出未知数x和y的参数表达式才能达到要求!
我在文献中看到的别人的叙述的时候,好像是用到了最小二乘法,不知道这里是不是也要用这些!

站的高,才能看的远!!
2007-11-13 09:45
ydgsl
Rank: 3Rank: 3
等 级:论坛游民
威 望:8
帖 子:107
专家分:20
注 册:2006-9-20
得分:0 
“%X=为下列X矩阵,B=[x0 x y]',即所求的未知数(需用最小平方法求得)。B的公式解即可用下列程序:”
最小平方法即最小二乘法,亦称LS法(the least squares method)。
将我上面除中文外的语句逐一运行,肯定能得到求出x,y(即B)的表达式(表达式本身比较复杂)。
2007-11-14 08:38
guiyangl015
Rank: 1
等 级:新手上路
帖 子:125
专家分:0
注 册:2006-5-21
得分:0 
ydgsl版主,真是不好意思又把这个帖子翻出来!是在没办法,还有一些不懂的地方,想向你请教!我也知道签几天才把matlab装好,这几天上去试过了,按你说的能计算出x和y的表达式,也却是挺复杂的!前面都是输入的矩阵以及计算,就最后面一步,B=A\K,你说要用到最小二乘法,是不是在这一步里面这两个矩阵相除的时候就已经用上了,说实话,这里的数学意义我不是很清楚,为什么相除就能得出想要的结果!

站的高,才能看的远!!
2007-11-23 19:35
ydgsl
Rank: 3Rank: 3
等 级:论坛游民
威 望:8
帖 子:107
专家分:20
注 册:2006-9-20
得分:0 
最小二乘法本意是使sum(Y-f(B,X))^2=min, f(B,X) 是回归值。B 的最小二乘解应为:
B=(X'*X)^(-1)*X'*Y
在Matlab条件下,
B=X'*X\X'Y,    or
B=X\Y
2007-11-25 09:02



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-181917-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.109613 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved