Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
回复
 
主题工具 显示模式
旧 2008-08-23, 21:42   #1
huangxing624
初级会员
 
注册日期: 2008-08-23
年龄: 36
帖子: 5
声望力: 0
huangxing624 正向着好的方向发展
默认 [求助]如何求出函数表达式?

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:
huangxing624 当前离线   回复时引用此帖
旧 2008-08-23, 21:47   #2
pslpsl
普通会员
 
注册日期: 2008-08-17
年龄: 36
帖子: 70
声望力: 20
pslpsl 是一个将要出名的人pslpsl 是一个将要出名的人
问题 回复: [求助]如何求出函数表达式?

多元回归么 用两个拟合另一个?


这里有例子
http://www.labfans.com/showthread.php?p=14859#post14859
pslpsl 当前离线   回复时引用此帖
旧 2008-08-24, 15:15   #3
huangxing624
初级会员
 
注册日期: 2008-08-23
年龄: 36
帖子: 5
声望力: 0
huangxing624 正向着好的方向发展
默认 回复: [求助]如何求出函数表达式?

谢谢您的答案!!不过还存在些问题,希望各位再帮我看看
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 感觉不是很吻合,是否有更好的方法?如果按这个函数表达式用重积分该如何求出它的区域面积?
huangxing624 当前离线   回复时引用此帖
旧 2008-08-24, 16:19   #4
pslpsl
普通会员
 
注册日期: 2008-08-17
年龄: 36
帖子: 70
声望力: 20
pslpsl 是一个将要出名的人pslpsl 是一个将要出名的人
箭头 回复: [求助]如何求出函数表达式?

如果你觉得线性回归不行的话可以自己设计函数拟合
比如你想用 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)


结果如下
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

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

你自己根据实际设计函数就行了
pslpsl 当前离线   回复时引用此帖
旧 2008-08-24, 16:50   #5
huangxing624
初级会员
 
注册日期: 2008-08-23
年龄: 36
帖子: 5
声望力: 0
huangxing624 正向着好的方向发展
默认 回复: [求助]如何求出函数表达式?

为什么我输入 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.
huangxing624 当前离线   回复时引用此帖
回复


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码



所有时间均为北京时间。现在的时间是 16:12


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