| 查看: 314 | 回复: 1 | |||
[交流]
【求助】lsqcurvefit非线性拟合的问题 已有1人参与
|
|
function F=myfun(p,data) F=p(1)*(xda(1).^p(2))*(xda(2).^p(3))*(xda(3).^p(4))+p(5)*(xda(4).^p(6)) y=[41.894 115.712 58.319 57.324 67.9495 130.542 71.109 74.447 93.078 128.794 128.573 124.831 107.041 141.092 174.634 217.774 183.355 177.148]; xda(1)=[0.1 0.1 0.1 0.1 0.1 0.1 0.2 0.2 0.2 0.2 0.2 0.2 0.3 0.3 0.3 0.3 0.3 0.3]; xda(2)=[0.1 0.1 0.15 0.15 0.2 0.2 0.1 0.1 0.15 0.15 0.2 0.2 0.1 0.1 0.15 0.15 0.2 0.2 ]; xda(3)=[200 250 200 250 200 250 200 300 200 250 200 300 200 300 250 200 250 300]; xda(4)=[0.095 0.425 0.228 0.124 0.127 0.427 0.110 0.148 0.133 0.302 0.125 0.149 0.134 0.309 0.312 0.315 0.128 0.235]; data=[xda(1);xda(2);xda(3);xda(4)]; p0=[1,2,3,4,5,6] [p,resnorm]=lsqcurvefit(@myfun,p0,data,y) 请教各位大侠为什么我的程序运行不了,提示 “??? Input argument "x" is undefined.” |
» 猜你喜欢
科研人应该花精力去思考如何解决问题,而不是去凝练问题
已经有11人回复
要骂人了,新模版改版就是要淡化问题凝练这种虚的东西,结果有个评委还在说凝练得不够
已经有17人回复
基金系统什么内容也没有
已经有10人回复
学科评审组评审是指会评吗?
已经有5人回复
梦想
已经有8人回复
面上合作单位盖章
已经有9人回复
面上函评意见出来了,像什么等级?
已经有17人回复
为什么资助数各大高校都创新高,自己申请怎么就这么难
已经有14人回复
小白求助 投论文要求的highlights应该如何写
已经有4人回复
麻烦专家们看看评委们的意见(F口面上)
已经有12人回复
★ ★
adu886886(金币+2):鼓励应助!欢迎常来仿真模拟板块! 2010-07-03 22:53:01
anyuezhiji:在:和)中加个空格就不会出现表情了,以前可以在帖子中设置禁用表情的 2010-07-05 17:32:52
adu886886(金币+2):鼓励应助!欢迎常来仿真模拟板块! 2010-07-03 22:53:01
anyuezhiji:在:和)中加个空格就不会出现表情了,以前可以在帖子中设置禁用表情的 2010-07-05 17:32:52
|
我看完你的程序,提出以下几点看法: 第一,程序的前两行应该是单独的一个m文件; 第二,你有xda(1),...,xda(4)分别表示矩阵,这里就有问题; 第三,data和y矩阵的形式应该是一致的,在你的程序里data是12*6,而y是3*6,这肯定不行。 你用xda(1),...,xda(4)是否要做4次计算?如果是这样的话,可以先给出一个12*6矩阵,然后每三行取值做计算,这样循环4次就可以了。 下面是我自己试着做的,仅供参考: function F=myfun(x,xdata) F=x(1)*(xdata.^x(2)).*(xdata.^x(3)).*(xdata.^x(4))+x(5)*(xdata.^x(6)); clear;clc ydata=[41.894 115.712 58.319 57.324 67.9495 130.542 71.109 74.447 93.078 128.794 128.573 124.831 107.041 141.092 174.634 217.774 183.355 177.148]; data=[0.1 0.1 0.1 0.1 0.1 0.1 0.2 0.2 0.2 0.2 0.2 0.2 0.3 0.3 0.3 0.3 0.3 0.3 0.1 0.1 0.15 0.15 0.2 0.2 0.1 0.1 0.15 0.15 0.2 0.2 0.1 0.1 0.15 0.15 0.2 0.2 200 250 200 250 200 250 200 300 200 250 200 300 200 300 250 200 250 300 0.095 0.425 0.228 0.124 0.127 0.427 0.110 0.148 0.133 0.302 0.125 0.149 0.134 0.309 0.312 0.315 0.128 0.235]; x0=[1,2,3,4,5,6]; for i=1:4 fprintf('Case %d:',i) xdata=[data(3*i-2,: );data(3*i-1,: );data(3*i,: )]; [x,resnorm]=lsqcurvefit(@myfun,x0,xdata,ydata) end [ Last edited by anyuezhiji on 2010-7-5 at 17:30 ] |
2楼2010-07-03 21:01:20










回复此楼
30