24小时热门版块排行榜    

查看: 759  |  回复: 6

zuopiezizuo

金虫 (小有名气)

[求助] 新手做曲面拟合出现错误,寻求指导,我新注册,没有多少金币 已有1人参与

新手做曲面拟合出现错误,下面用的是MATLAB做的:
要求的函数是个积分函数,函数有点长,变量x、y、z,参数用beta(1-9)表示的。
建的一个myfunn.m文件,代码如下:
function F=myfunn(beta,x)
syms n x y;
alpa=30;
H0=445;
H1=450;
H2=440;
L0=100;
L1=100;
F=m*beta(1)*cos(alpa)*1/2*(2/sqrt(pi)*int(exp(-n^2),0,sqrt(pi)*x(:,1).*beta(7)/H0)-2/sqrt(pi)*int(exp(-n^2),0,sqrt(pi)*(x(:,1)-(L0-beta(4)-beta(5)))*beta(7)/H0))*1/2*(2/sqrt(pi)*int(exp(-n^2),0,sqrt(pi)*x(:,2).*beta(8)/H1)-2/sqrt(pi)*int(exp(-n^2),0,sqrt(pi)*(x(:,2)-(L1-beta(2)-beta(3)))*(cos(alpa)+sin(alpa)*beta(6))*beta(9)/H2));
编写的命令是:
x=[0.00E+00 3.68E+02 6.77E+02 7.35E+01 4.61E+02 8.37E+02 7.35E+01 3.55E+02 8.14E+02 8.52E+02 1.04E+03 5.56E+02 1.01E+03 2.22E+02 8.37E+02]';
y=[5.46E+00 0.00E+00 7.22E+01 2.95E+02 2.57E+02 2.49E+02 2.95E+02 3.86E+02 4.00E+02 9.18E+01 0.00E+00 2.18E+02 1.64E+02 2.89E+02 2.49E+02]';
z=[-3.60E-02 -3.40E-02 -1.63E-02 -3.71E-02 -3.54E-02 -1.78E-02 -3.60E-02 -3.39E-02 -1.62E-02 -1.39E-02 -1.66E-02 -2.28E-02 -1.75E-02 -3.84E-02 -1.54E-02]';
x=[x y];
beta=nlinfit(x,z,@myfunn,[0.0042 -2 2 2 2 89 440 440 440])
运行后总是显示错误,错误提示为:
error using nlinfit(line121)
error evaluating model function 'myfuun'.

caused by
undefined function or variable 'm'.
还请大神指导到底怎么回事。
我看有人说用1stopt可以做出来,可是我改完代码运行不了,提示没有变量。。。
求指导
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dingd

铁杆木虫 (职业作家)

【答案】应助回帖

感谢参与,应助指数 +1
m也是待求参数吗?或是常数?
2楼2015-10-14 23:09:31
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zuopiezizuo

金虫 (小有名气)

引用回帖:
2楼: Originally posted by dingd at 2015-10-14 23:09:31
m也是待求参数吗?或是常数?

m是常数,m=10,请问还有什么错误么?
3楼2015-10-15 09:04:55
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lipenggg

专家顾问 (正式写手)

一团和气
4楼2015-10-15 12:16:49
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zuopiezizuo

金虫 (小有名气)

引用回帖:
4楼: Originally posted by lipenggg at 2015-10-15 12:16:49
n=?

积分函数是关于x、y的,所以用n表示x、y的积分式,只是一个中间变量。不知道我说的清楚不?
5楼2015-10-15 14:28:33
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dingd

铁杆木虫 (职业作家)

【答案】应助回帖

★ ★ ★ ★ ★
zuopiezizuo: 金币+5, 有帮助, 1 2015-10-15 19:47:44
CODE:
Constant alpa=30,H0=445,H1=450,H2=440,L0=100,L1=100,m=10;
Variable x,y,z;
Function  z=m*beta1*cos(alpa)*1/2*(2/sqrt(pi)*int(exp(-n^2),n=0,sqrt(pi)*x*beta7/H0)-2/sqrt(pi)*int(exp(-n^2),n=0,sqrt(pi)*(x-(L0-beta4-beta5))*beta7/H0))*1/2*(2/sqrt(pi)*int(exp(-n^2),n=0,sqrt(pi)*y*beta8/H1)-2/sqrt(pi)*int(exp(-n^2),n=0,sqrt(pi)*(y-(L1-beta2-beta3))*(cos(alpa)+sin(alpa)*beta6)*beta9/H2));
Data;
x=[0.00E+00 3.68E+02 6.77E+02 7.35E+01 4.61E+02 8.37E+02 7.35E+01 3.55E+02 8.14E+02 8.52E+02 1.04E+03 5.56E+02 1.01E+03 2.22E+02 8.37E+02];
y=[5.46E+00 0.00E+00 7.22E+01 2.95E+02 2.57E+02 2.49E+02 2.95E+02 3.86E+02 4.00E+02 9.18E+01 0.00E+00 2.18E+02 1.64E+02 2.89E+02 2.49E+02];
z=[-3.60E-02 -3.40E-02 -1.63E-02 -3.71E-02 -3.54E-02 -1.78E-02 -3.60E-02 -3.39E-02 -1.62E-02 -1.39E-02 -1.66E-02 -2.28E-02 -1.75E-02 -3.84E-02 -1.54E-02];

均方差(RMSE):0.00309839106351642
残差平方和(SSE):0.000144000407737176
相关系数(R): 0.946452671627313
相关系数之平方(R^2): 0.895772659630478
确定系数(DC): 0.895518930075388
F统计(F-Statistic): 7.17833384115576

参数                  最佳估算
--------------------        -------------
beta1        -3.12796555449683
beta7        -0.25716595507672
beta4        87.7677622577561
beta5        -14.0202308550744
beta8        0.144805720098204
beta2        228.510922475652
beta3        -0.620038663098007
beta6        -1.32426390514759
beta9        73.4274445327328
新手做曲面拟合出现错误,寻求指导,我新注册,没有多少金币
c4.jpg

6楼2015-10-15 14:38:38
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zuopiezizuo

金虫 (小有名气)

引用回帖:
6楼: Originally posted by dingd at 2015-10-15 14:38:38
Constant alpa=30,H0=445,H1=450,H2=440,L0=100,L1=100,m=10;
Variable x,y,z;
Function  z=m*beta1*cos(alpa)*1/2*(2/sqrt(pi)*int(exp(-n^2),n=0,sqrt(pi)*x*beta7/H0)-2/sqrt(pi)*int(exp(-n^2),n=0,sqrt(pi ...

您好,非常感谢您的解答,可是我只有MATLAB软件,1stopt1.5版本的不可以模拟积分。而我的最终目标是要求出九个参数,几组x、y数据求出最优的一组参数,然后确定积分公式,画出要预测的x、y范围的曲面。所以不知道大神可以知道我用MATLAB怎么算么?
7楼2015-10-15 16:37:31
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 zuopiezizuo 的主题更新
信息提示
请填处理意见