作者w12389034e (林小纬)
看板MATLAB
标题[问题] lsqcurvefit请教
时间Sat Feb 7 03:16:51 2015
饿死抬头
function F = myfun(x,xdata)
Area = 481;
xlsFile = 'test.xls';
R = xlsread(xlsFile,1,'B2:B88');
for jj = 1:length(xdata);
A = 1;
for kk = jj:-1:1
qn(1,A) = (R(A,1)/x)*exp(-xdata(kk,1)/x)*Area*10^4/3600;
A = A+1;
end
end
F = sum(qn,2); %模拟值
end
以上是小弟的方程式
-----------------------------------------------
xlsFile = 'test.xls';
xdata = (xlsread(xlsFile,1,'A2:A88'))';
ydata = (xlsread(xlsFile,1,'D2:D88'))';
x0 = [2.39];
[x,resnorm] = lsqcurvefit(@myfun,x0,xdata,ydata)
上面是我执行的M档
可是在执行的时候会出现
Failure in initial user-supplied objective
function evaluation. LSQCURVEFIT cannot
continue.
不知道是不是哪边写错了
方程式的部分比较复杂 会随着时间增加慢慢变长
如t = 1, F = R1/x*exp(-t1/x)
t = 2, F = R1/x*exp(-t2/x)+R2/x*exp(-t1/x)
t = n, F = R1/x*exp(-tn/x)+R2/x*exp(-tn-1/x)+...+Rn/x*exp(-t1/x)
R的顺序和t的顺序是相反的 而且是已知数 x是想要求的未知数
网路上大部分都是找到长度固定的模拟方程式
不知道这种长度会变动的要如何算><
谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 36.239.232.104
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/MATLAB/M.1423250213.A.1A3.html
※ 编辑: w12389034e (36.239.216.124), 02/07/2015 03:30:00
1F:→ w12389034e: 补充 xdata就是时间 [1:1:10]之类的 02/07 03:41
2F:→ w12389034e: 就是说 第一个ydata对应xdata=1所算出来的F 第二个yda 02/07 03:46
3F:→ w12389034e: ta对应xdata=2的F 然後xdata=1、2...所要算的F的方程 02/07 03:46
4F:→ w12389034e: 式有一个回圈的关系 02/07 03:46
5F:→ w12389034e: 刚刚弄出来了 原来输出的F可以是一个矩阵 02/07 14:42