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
|