24小时热门版块排行榜    

查看: 269  |  回复: 1

lvbida

银虫 (小有名气)

[交流] 【求助】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.”
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

我的灯呢

银虫 (初入文坛)

★ ★
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
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 lvbida 的主题更新
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见