24小时热门版块排行榜    

查看: 958  |  回复: 6
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

heshuangrong

新虫 (小有名气)

[求助] MATLAB拟合动力学问题 已有1人参与

程序是书上的,店Debug--Run没法运行,求教各位大侠


function KineticDataFit     
clear all
clc

% 动力学数据
t = [0 20  40  60  120  180  300];
CA = [10  8  6  5  3  2  1];

% 用最小二乘样条拟合法计算微分dCA/dt--使用不经过实验点的B样条插值函数
knots = 3;
K = 3;      % 三次B样条
sp = spap2(knots,K,t,CA)
sp = spap2(newknt(sp),K,t,CA);
pp = fnder(sp)          % 计算B样条函数的导函数
dCAdt = fnval(pp,t)     % 计算t处的导函数值

% 绘制图形
ti = linspace(t(1),t(end),200);
CAi = fnval(sp,ti)
plot(t,CA,'ro',ti,CAi,'b-')
xlabel('t')
ylabel('C_A')
figure
fnplt(pp)
% dCAdti = fnval(pp,ti)
% plot(ti,dCAdti,'-')
xlabel('t')
ylabel('dC/dt')

% 线性拟合
rA = dCAdt;
y = log(-rA);
x = log(CA);
p = polyfit(x,y,1);
k = exp(p(2))
n = p(1)
回复此楼

» 猜你喜欢

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

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

heshuangrong

新虫 (小有名气)

引用回帖:
4楼: Originally posted by lvgao116 at 2015-09-01 17:01:02
spap2是一个matlab自带函数,你运行后matlab给你的提示是没有定义该函数或变量,说明你的matlab版本中没有这个函数。ps:我的matlab版本是R2008a,7.6.0....

我的是6.5,去下个高点的版本看看

发自小木虫Android客户端
6楼2015-09-01 17:28:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 7 个回答

lvgao116

铁杆木虫 (著名写手)

【答案】应助回帖

感谢参与,应助指数 +1
不要输入带有function语句的那一行。或者用%注释。我已经试过没问题。

» 本帖已获得的红花(最新10朵)

lovelinan
2楼2015-09-01 15:21:47
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

heshuangrong

新虫 (小有名气)

送红花一朵
引用回帖:
2楼: Originally posted by lvgao116 at 2015-09-01 15:21:47
不要输入带有function语句的那一行。或者用%注释。我已经试过没问题。

为什么我点Debug-run后,在命令窗口红色显示undefined function or variable 'spap2',第一行我都把它删了

发自小木虫Android客户端
3楼2015-09-01 15:49:15
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lvgao116

铁杆木虫 (著名写手)

引用回帖:
3楼: Originally posted by heshuangrong at 2015-09-01 15:49:15
为什么我点Debug-run后,在命令窗口红色显示undefined function or variable 'spap2',第一行我都把它删了
...

spap2是一个matlab自带函数,你运行后matlab给你的提示是没有定义该函数或变量,说明你的matlab版本中没有这个函数。ps:我的matlab版本是R2008a,7.6.0.
lovelinan
4楼2015-09-01 17:01:02
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见