作业帮 > 数学 > 作业

matlab 怎么样用我指定的函数进行拟合我的实验数据?

来源:学生作业帮 编辑:拍题作业网作业帮 分类:数学作业 时间:2024/04/29 03:26:51
matlab 怎么样用我指定的函数进行拟合我的实验数据?
我现在收集到了一些实验数据,在位置x = 【0,2,4 ...】内,我记录到了实验测量值fx【...】.由理论公式,推导出x 和 fx 应该是e指数的函数关系,即fx = A * e^(Bx) +C.我想用e指数函数和我的实验数据离散点去拟合出这个函数,代码怎么写?多项式拟合我会,拟合结果也很完美,但是拟合出来的函数不满足理论上的微分方程.我觉得这个问题应该不会很难,但是新手上路,

x是位置,V1是对应位置的热电偶的电压差,我想把函数拟合成V1 = A * e^(Bx) + C 的形式,请问用哪个函数?

这是理论上的微分方程(热对流微分方程),多项式拟合出来的结果很明显不符合这个方程.但是e指数形式就很符合.
定义:myfun1.m
function v=myfun1(beta,X)
v=beta(1)*exp(beta(2)*X)+beta(3);
运行:
beta = nlinfit(0:2:20,0.1*[1.32 1.38 1.67 1.93 2.45 2.97 3.70 4.32 5.48 6.68 7.9],@myfun1,[0 0 0])
结果:
[A B C]=
0.1029 0.1016 0.0152
再问: 可否不在外面定义这个v函数,直接用inline内嵌写v的表达式?我有尝试过,可是报错了,这里字数限制,没法粘代码。再麻烦大神你写一下给我看看,给你加分!
再答: myfun=@(beta,x)beta(1)*exp(beta(2)*x)+beta(3) beta = nlinfit(0:2:20,0.1*[1.32 1.38 1.67 1.93 2.45 2.97 3.70 4.32 5.48 6.68 7.9],myfun,[0 0 0])
再答: f=@(beta,x) beta(1)*exp(beta(2)*X)+beta(3);