| 查看: 300 | 回复: 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.” |
» 猜你喜欢
应该是93bebmhtak前后十一个字符比较关键
已经有14人回复
面上项目filecode邪修
已经有5人回复
2026国自然放榜时间
已经有4人回复
关于代码变化问题,想知道的进来
已经有22人回复
这样的filecode谁见过
已经有21人回复
filecode与中标关系的预测
已经有5人回复
fileCode有新解读?
已经有18人回复
关于filecode,很负责任的告诉大家
已经有7人回复
【2027博士申请】纳米药物递送方向
已经有5人回复
关于豆爷回答的JTJC与%2F数量
已经有7人回复
★ ★
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










回复此楼