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

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

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

这是理论上的微分方程(热对流微分方程),多项式拟合出来的结果很明显不符合这个方程.但是e指数形式就很符合.
石榴女人 1年前 已收到1个回答 举报

lzsz 幼苗

共回答了23个问题采纳率:73.9% 举报

定义: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

1年前 追问

10

石榴女人 举报

可否不在外面定义这个v函数,直接用inline内嵌写v的表达式?我有尝试过,可是报错了,这里字数限制,没法粘代码。再麻烦大神你写一下给我看看,给你加分!

举报 lzsz

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])

举报 lzsz

f=@(beta,x) beta(1)*exp(beta(2)*X)+beta(3);
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 18 q. 0.163 s. - webmaster@yulucn.com