Matlab中的拟合中的curvefit程序

[复制链接]
查看11 | 回复1 | 2009-7-14 10:23:57 | 显示全部楼层 |阅读模式
v = [0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0,1.1,1.2,1.3,1.4,1.5];
d=[1274.4,1261.97,1250.14,1232.4,1212.7,1183.1,1153.5,1114.1,1069.7,1025.4,980.6,909.8,828.4,708,534.5,80.2];
d是指小滴直径,v是指电压。初步推算的公式为:
d=1274.4*(a-x^2/b)^c
要求用matlab计算出a,b,c的值。
(已知大概的范围是:a:0~5,b:1~10,c:0~1。)可能的话,a大约是1,b大约是-5,c大约是1/3
迭代初值的话就【0.01,0.1,0.001】即可
问题:下面是我编的程序:
1.新建一个M文件,输入公式:
function f=curvefun(x,v)
f=1274.4*(x(1)+tdata^2/x(2))^x(3)
2.命令窗口输入命令:
v = [0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0,1.1,1.2,1.3,1.4,1.5];
d=[1274.4,1261.97,1250.14,1232.4,1212.7,1183.1,1153.5,1114.1,1069.7,1025.4,980.6,909.8,828.4,708,534.5,80.2];
x0=[0.01,0.1,0.001];
x=curvcfit('curvefun',x0,v,d)
f=1274.4*(x(1)-v^2/x(2))^x(3);
f=curvefun(x,v)
但是系统提示我没有curvefit这个函数,我下载了个fitting toolbox后,仍然出现相同的问题。
有哪位大侠能帮忙算出a,b,c的值?
(已知大概的范围是:a:0~5,b:1~10,c:0~1。)可能的话,a大约是1,b大约是-5,c大约是1/3
这里面b的值应该是5,不是-5

回复

使用道具 举报

千问 | 2009-7-14 10:23:57 | 显示全部楼层
% by dynamic% see also http://www.matlabsky.com% contact me [email protected]% 2009-7-14 10:23:01%curvcfit是Matlab6.5版本的函数,现在已经改名了请使用lsqcurvrfit或者nlifit函数,如果需要可以到我的Matlab技术论坛http://www.matlabsky.com发帖,我们可以详细解答...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行