您的位置:首页 > 编程语言 > MATLAB

用电压V=10伏的电池给电容器充电,电容器上t时刻的电压为 ,其中V0是电容器的初始电压, 是充电常数。试由下面一组t,V数据确定V0, 。

2017-12-21 17:58 5332 查看

用电压V=10伏的电池给电容器充电,电容器上t时刻的电压为 ,其中V0是电容器的初始电压, 是充电常数。试由下面一组t,V数据确定V0, 。

1.用命令lsqcurvefit

1)编写M文件voltage1.m

function V = voltage(x,t)
V = 10 - (10 - x(1))*exp(-t/x(2))


2)主程序nihe1.m

t = [0.5,1,2,3,4,5,7,9];
v = [6.36,6.48,7.26,8.22,8.66,8.99,9.43,9.63];
x0 = [0,0.1];
x = lsqcurvefit(‘voltage1’,x0,t,v)
v = voltage1(x,t)


2.用命令lsqnonlin

1)编写M文件voltage2.m

function V = voltage(x,t)
t = [0.5,1,2,3,4,5,7,9];
v = [6.36,6.48,7.26,8.22,8.66,8.99,9.43,9.63];
v = 10 - (10 - x(1))*exp(-t/x(2))


2)主程序nihe2.m

x0 = [0,0.1];
x = lsqnonlin('votage2',x0)
v = voltage2(x,t)


3.用命令polyfit

1)将非线性函数转化为线性函数

v(t) = V - (V - V0)e^(-t/T) => ln(V-v) = ln(V - V0) - t/T
y = ln(V - v),x1 = -1/T,x2 = ln(V-V0)
y = x1t + x2
T = -1/x1,V0 = V - e^x2


2)主程序nihe3.m

V = 10;
t = [0.5,1,2,3,4,5,7,9];
v = [6.36,6.48,7.26,8.22,8.66,8.99,9.43,9.63];
y = log(V - v);
x = polyfit(t,y,1)
T = 1/x(1)
V0 = V - exp(x(2))


4.利用三次样条插值估计给定值

编写M文件chazhi.m

t = [0.5,1,2,3,4,5,7,9];
v = [6.36,6.48,7.26,8.22,8.66,8.99,9.43,9.63];
T = interp1(t,v,[0.8,1.5,2.5,3.5,4.5,6.8],'spline')
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  matlab 插值法 拟合
相关文章推荐