| 查看: 298 | 回复: 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.” |
» 猜你喜欢
关于filecode
已经有7人回复
娱乐
已经有6人回复
化学口download_prp&fileCode的固定段好像这几天一直没变,有变的大神么?
已经有4人回复
关于代码变化问题,想知道的进来
已经有12人回复
基金中了
已经有13人回复
固定端突然变了,今天
已经有10人回复
听说今天filecode变了
已经有47人回复
filecode与中标关系的预测
已经有3人回复
filecode变化情况
已经有22人回复
十年后又回来了,论文投稿求助
已经有4人回复
★ ★
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










回复此楼
100