登录论坛

查看完整版本 : [求助]如何求出函数表达式?


huangxing624
2008-08-23, 21:42
x=[-2005.18774,-176.903191,1292.067478,859.336087,771.7266316,327.546568,-1478.3107]
y=[-465.189718,-41.0403195,544.4413107,479.943397,610.9354918,317.374685,-1432.4029]
z=[-6039.86603,-6378.41532,-6225.05472,-6304.62979,-6304.62979,-6364.6799,-6039.8663]
如何求出函数表达式? 请各位帮帮忙!!谢谢!!!:lovely:

pslpsl
2008-08-23, 21:47
多元回归么 用两个拟合另一个?


这里有例子
http://www.labfans.com/showthread.php?p=14859#post14859

huangxing624
2008-08-24, 15:15
谢谢您的答案!!不过还存在些问题,希望各位再帮我看看
x=[-2005.18774,-176.903191,1292.067478,859.336087,771.7266316,327.546568,-1478.3107]
y=[-465.189718,-41.0403195,544.4413107,479.943397,610.9354918,317.374685,-1432.4029]
z=[-6039.86603,-6378.41532,-6225.05472,-6304.62979,-6304.62979,-6364.6799,-6039.8663]
[b,bint,r,rint,stats] = regress(z',[ones(7,1),x',y'])



b =
1.0e+003 *
-6.2386
-0.0000
-0.0001
bint =
1.0e+003 *
-6.3557 -6.1215
-0.0002 0.0002
-0.0004 0.0003
r =
72.8889
-150.5407
115.1760
11.7012
18.4892
-85.0687
17.3541
rint =
22.9618 122.8160
-374.2034 73.1220
-100.4354 330.7874
-299.2443 322.6468
-286.6667 323.6451
-377.9301 207.7926
-54.2507 88.9589
stats =
0.6013 3.0159 0.1590

z=-6.2391*10^3-y*0.0001*10^3 感觉不是很吻合,是否有更好的方法?如果按这个函数表达式用重积分该如何求出它的区域面积?

pslpsl
2008-08-24, 16:19
如果你觉得线性回归不行的话可以自己设计函数拟合
比如你想用 z=a+b*x^2+c/y 具体函数你自己定

对回归模型建立M文件model.m如下:

function yy=model(beta0,X)
a=beta0(1);
b=beta0(2);
c=beta0(3);
x1=X(:,1);
x2=X(:,2);
yy=a+b.*x1+c./x2 ;



这样调用


x=[-2005.18774,-176.903191,1292.067478,859.336087,771.7266316,327.546568,-1478.3107] ;
y=[-465.189718,-41.0403195,544.4413107,479.943397,610.9354918,317.374685,-1432.4029] ;
z=[-6039.86603,-6378.41532,-6225.05472,-6304.62979,-6304.62979,-6364.6799,-6039.8663] ;
X=[x;y]';
Y=z';
beta0=[0.50 1 1]; %设定初始值
[fit,r,J] = nlinfit(X,Y,'model',beta0)




结果如下

fit =
1.0e+003 *
-6.2252 -0.0001 6.4908

r =
6.6350
-12.0559
112.3579
-10.3944
-15.9118
-128.4641
47.8333

J =
1.0e+003 *
0.0010 -2.0052 -0.0000
0.0010 -0.1769 -0.0000
0.0010 1.2921 0.0000
0.0010 0.8593 0.0000
0.0010 0.7717 0.0000
0.0010 0.3275 0.0000
0.0010 -1.4783 -0.0000



z=1.0e+003*(-6.2252-0.0001*x+6.4908/y)

在x[100 200 ] y[100 200]积分

jifen=dblquad(@(x,y)1.0e+003*(-6.2252-0.0001.*x+6.4908./y),100,200,100,200)

结果如下


jifen=

-6.1952e+007



你自己根据实际设计函数就行了

huangxing624
2008-08-24, 16:50
为什么我输入 jifen=dblquad(@(x,y)1.0e+003*(-6.2252-0.0001.*x+6.4908./y),100,200,100,200)


会出现这个错误 ??? jifen=dblquad(@(x,y)1.0e+003*(-6.2252-0.0001.*x+6.4908./y),100,200,100,200) 是什么问题呢?
|
Error: "identifier" expected, "(" found.