MATLAB爱好者论坛-LabFans.com

MATLAB爱好者论坛-LabFans.com (https://www.labfans.com/bbs/index.php)
-   MATLAB论坛 (https://www.labfans.com/bbs/forumdisplay.php?f=6)
-   -   [求助]如何求出函数表达式? (https://www.labfans.com/bbs/showthread.php?t=4200)

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

回复: [求助]如何求出函数表达式?
 
多元回归么 用两个拟合另一个?


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

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

回复: [求助]如何求出函数表达式?
 
[SIZE=3]如果你觉得线性回归不行的话可以自己设计函数拟合[/SIZE]
比如你想用 z=a+b*x^2+c/y 具体函数你自己定

[LEFT][SIZE=3][COLOR=#a50021][FONT=宋体][B]对回归模型建立[/B][/FONT][/COLOR][COLOR=#a50021][FONT=Times New Roman][B]M[/B][/FONT][/COLOR][COLOR=#a50021][FONT=宋体][B]文件[/B][/FONT][/COLOR][COLOR=#a50021][FONT=Times New Roman][B]model.m[/B][/FONT][/COLOR][COLOR=#a50021][FONT=宋体][B]如下[/B][/FONT][/COLOR][COLOR=#a50021][FONT=Times New Roman][B]:[/B][/FONT][/COLOR][/SIZE][/LEFT]
[code]
[LEFT]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 ;[/LEFT]

[/code]

[LEFT]这样调用[/LEFT]

[code]
[LEFT]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)[/LEFT]
[/code]



[FONT=Times New Roman][SIZE=3]结果如下[/SIZE][/FONT]
[html]
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
[/html]

[FONT=Times New Roman][SIZE=3]即[/SIZE][/FONT]
[FONT=Times New Roman][SIZE=3]z=1.0e+003*(-6.2252-0.0001*x+6.4908/y)[/SIZE][/FONT]

[FONT=Times New Roman][SIZE=3]在x[100 200 ] y[100 200]积分[/SIZE][/FONT]

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

结果如下
[code]

jifen=

-6.1952e+007
[/code]


[FONT=Times New Roman][SIZE=3]你自己根据实际设计函数就行了[/SIZE][/FONT]

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.


所有时间均为北京时间。现在的时间是 03:29

Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.