24小时热门版块排行榜    

查看: 1524  |  回复: 11

wangj25

金虫 (正式写手)

[求助] 50金币求一MATLAB的拟合程序

这是那个微分方程,有一组数据:   
dS/dt=-a*S/(b+S+S的平方/c)
注意前面有一个负号。


T    S
0 48.1
8 46.97
16 44.63
24 39.98
32 38.32
40 37.69
48 37.11
56 35.98
64 35.66
72 33.09
80 32.11
88 31.96
96 31.89
120 31.34
144 31.86
168 32.51
192 31.66


现在要将曲线拟合出来,求出a、b、 c 的值。并求得相关系数R。
求matlab实现程序。请写下具体程序

[ Last edited by wangj25 on 2011-8-24 at 19:42 ]
回复此楼

» 收录本帖的淘帖专辑推荐

数值计算处理和matlab资源

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

threight

木虫 (著名写手)

【答案】应助回帖


wangj25(金币+5): 能不能帮忙贴个程序,谢谢了 2011-08-24 22:42:23
xiegangmai(金币+1): 谢谢参与! 2011-08-26 07:07:48
自己用几个matlalb的非线性拟合函数试试是,应该不难的。
万丈红尘三杯酒,千秋大业一壶茶
2楼2011-08-24 22:37:08
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

信彼南山

木虫 (著名写手)

这个是不是可以积出来啊
3楼2011-08-24 23:34:02
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

信彼南山

木虫 (著名写手)

★ ★
xiegangmai(金币+2): 谢谢参与! 2011-08-26 07:08:13
-(1/2)*a*c*ln(b*c+S*c+S^2)+a*c^2*arctan((c+2*S)/sqrt(4*b*c-c^2))/sqrt(4*b*c-c^2)
积出来是不是这个?
4楼2011-08-24 23:41:15
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

信彼南山

木虫 (著名写手)


xiegangmai(金币+1): 谢谢参与! 2011-08-26 07:08:27
考虑了一阵子发现还真的很是问题啊
matlab似乎没有专门针对微分方程参数拟合的工具,似乎其他软件也不行
可能需要构建特征函数吧?
5楼2011-08-24 23:53:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wangj25

金虫 (正式写手)

有一个例子是这样的,不知道与我的相似不
Constant x=214.63;
Parameter q=[0,0.5], k=[0,];
Variable t,s;
ODEFunction s' = -q*S*X/(k+S);
Data;
t=[0 2 7 9 19 22 24 26 28 30 32 40];
S=[255.55 246.44 237.28 228.36 136.08 114 99.16 82.33 69.4 56.94 42.31 0];
6楼2011-08-25 08:21:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

threight

木虫 (著名写手)

【答案】应助回帖

★ ★ ★
臭水沟(金币+3): 谢谢应助~~ 2011-08-25 15:00:36
wangj25(金币+5): 2011-08-25 20:12:17
不要意思,最近比较忙。我给个思路,供您参考。

******************************************
一、先求解S在各个点的微分值dS/t(用最小二乘样条拟合计算dS/t),使用B样条插值函数



程序如下:
T= 你提供的值;
S= 你提供的值;
knots = 3; K = 3;  %(3次B样条)
sp=spap2(knots,K,T,S);
sp=spap2(newknt(sp),K,T,S);
pp=fnder(sp)
dSdt=fnval(pp,T)

二、再用非线性最小二乘法函数lsqnonlin()拟合参数a、b、 c

lsqnonlin具体用法,参加matlab的帮助文件。
************************************************
万丈红尘三杯酒,千秋大业一壶茶
7楼2011-08-25 14:22:22
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

信彼南山

木虫 (著名写手)

引用回帖:
7楼: Originally posted by threight at 2011-08-25 14:22:22:
不要意思,最近比较忙。我给个思路,供您参考。

******************************************
一、先求解S在各个点的微分值dS/t(用最小二乘样条拟合计算dS/t),使用B样条插值函数



程序如下:
T=  ...

我也是这么想的,对于dS/dt变化不剧烈的应该没问题
这样问题就变成了f(a,b,c)的拟合了,这样相对就好办了。

但是如果dS/dt变化剧烈可能就麻烦了
8楼2011-08-25 14:35:33
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wangj25

金虫 (正式写手)

按照你们说的做了如下:求拟合有一组数据:   
dS/dt=-a*S/(b+S+S的平方/c)
注意前面有一个负号。
dSdt =[-0.3407   -0.3114   -0.2820   -0.2527   -0.2233   -0.1940   -0.1646   -0.1352 -0.1130   -0.0947   -0.0765   -0.0583   -0.0400    0.0146    0.0123   -0.0034  -0.0191];
S    =[48.1      46.97      44.63     39.98      38.32     37.69     37.11    35.98    35.66    33.09      32.11   31.96     31.89       31.34     31.86   32.51      31.66];
现在要将曲线拟合出来,求出a、b、 c 的值。并求得相关系数R。
求matlab实现程序。请写下具体程序
9楼2011-08-25 16:08:57
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

信彼南山

木虫 (著名写手)

168 32.51

这组数据可能有问题,有可能是实验的死点吧
10楼2011-08-25 19:46:41
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 wangj25 的主题更新
信息提示
请填处理意见