matlab 微分方程组参数拟合,matlab拟合微分方程组中的参数
CODE:
function k1k2k3
format long
clear all
clc
tspan = 0:12:144;
x0 = [0.35 0 99.8];
k0 = [0.5 8 1.5 2 -0.5 0.1 0.5 5 -0.01]; %k的初值,最需要调节
lb = [1 1 1 1 1 1 1 1 1 ]*-inf;
ub = [1 1 1 1 1 1 1 1 1]*inf;
data=...
[
12 2.75 0.55 88.96
24 4.6 3.72 73.49
36 6.27 8.19 61.57
48 8.07 14.12 47.38
60 9.73 19.37 33.63
72 10.41 22.54 24.65
84 10.7 27.61 11.19
96 10.53 32.49 3.2
108 10.56 35.62 0
120 10.59 37.58 0
132 10.4 38.44 0
144 10.77 39.88 0
];
yexp = data(:,2:4);
options=optimset('MaxFunEvals',1500);
[k,resnorm,residual,exitflag,output,lambda,jacobian] = ...
lsqnonlin(@ObjFunc,k0,lb,ub,options,tspan,x0,yexp);
ci = nlparci(k,residual,jacobian);
[t uu]=ode45(@KineticsEqs,tspan,x0,[],k);
uexp=[0 0.35 0 99.8
12 2.75 0.55 88.96
24 4.6 3.72 73.49
36 6.27 8.19 61.57
48 8.07 14.12 47.38
60 9.73 19.37 33.63
72 10.41 22.54 24.65
84 10.7 27.61 11.19
96 10.53 32.49 3.2
108 10.56 35.62 0
120 10.59 37.58 0
132 10.4 38.44 0
144 10.77 39.88 0
];
figure(1)
size(uexp(:,2));
size(uexp(:,3));
size(uexp(:,4));
size(uu(:,1));
size(uu(:,2));
size(uu(:,3));
R1_Square=1-sum((uexp(2:end,2)-uu(2:end,1)).^2)./sum((uexp(2:end,2)-mean( uu(2:end,1) )).^2);
R2_Square=1-sum((uexp(2:end,3)-uu(2:end,2)).^2)./sum((uexp(2:end,3)-mean( uu(2:end,2) )).^2);
R3_Square=1-sum((uexp(2:end,4)-uu(2:end,3)).^2)./sum((uexp(2:end,4)-mean( uu(2:end,3) )).^2);
plot(tspan,uexp(:,2),'or',tspan,uu(:,1),'-r',tspan,uexp(:,3),'>b',tspan,uu(:,2),'b-',tspan,uexp(:,4),'*k',tspan,uu(:,3),'k-')
fprintf('\n\tk1=%.9f',k(1))
fprintf('\n\tk2=%.9f',k(2))
fprintf('\n\tk3=%.9f',k(3))
fprintf('\n\tk4=%.9f',k(4))
fprintf('\n\tk5=%.9f',k(5))
fprintf('\n\tk6=%.9f',k(6))
fprintf('\n\tk7=%.9f',k(7))
fprintf('\n\tk8=%.9f',k(8))
fprintf('\n\tk9=%.9f',k(9))
fprintf('\n\t方程一的决定系数R1_Square=%.6f',R1_Square);
fprintf('\n\t方程二的决定系数R2_Square=%.6f',R2_Square);
fprintf('\n\t方程三的决定系数R3_Square=%.6f',R3_Square);
function f = ObjFunc(k,tspan,x0,yexp) % 目标函数
[t Xsim] = ode45(@KineticsEqs,tspan,x0,[],k);
Xsim1=Xsim(:,1);
Xsim2=Xsim(:,2);
Xsim3=Xsim(:,2);
ysim(:,1) = Xsim1(2:end);
ysim(:,2) = Xsim2(2:end);
ysim(:,3) = Xsim3(2:end);
f = [(ysim(:,1)-yexp(:,1)) (ysim(:,2)-yexp(:,2)) (ysim(:,3)-yexp(:,3))];
function dCdt = KineticsEqs(t,u,k)
x=u(1);
p=u(2);
s=u(3);
a=k(1);
b=k(2);
c=k(3);
d=k(4);
e=k(5);
f=k(6);
g=k(7);
h=k(8);
i=k(9);
dxdt = a*x*(1-x/b).*(1+s/c).^(-1);
dpdt=d*dxdt+e*(s./(s+f)).*x;
dsdt=g*dxdt+h*dpdt+i*x;
dCdt = [dxdt;dpdt;dsdt];
matlab 微分方程组参数拟合,matlab拟合微分方程组中的参数相关推荐
- url去除掉一个参数php,php怎样去掉url中的参数_后端开发
php去掉url中的参数的要领是:能够经由过程trim()函数来完成.该函数能够删除字符串中的指定字符,并返回已修正的字符串.细致使用要领如:[trim($url,"?");tri ...
- listen函数的第二个参数_signal(SIGPIPE,?SIG_IGN)listen函数中backlog参数分析
signal(SIGPIPE, SIG_IGN); TCP是全双工的信道, 可以看作两条单工信道, TCP连接两端的两个端点各负责一条. 当对端调用close时, 虽然本意是关闭整个两条信道, 但本端 ...
- python 外部参数过长_介绍python中slice参数过长的处理方法及实例
python教程栏目介绍slice参数过长的处理方法 很多小伙伴对于slice参数的概念理解停留在概念上,切片的参数有三个,分别是step .start .stop .因为参数的值也是多变的,所以我们 ...
- python request对四类参数的处理_如何处理Djang中同一参数具有多个变量的request.GET...
在Django视图中,您可以访问request.GET['variablename'],因此在您的视图中,您可以执行如下操作:myvar = request.GET['myvar'] 实际的reque ...
- python中的函数参数主要有四种_python3中函数参数的四种简单用法
{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...
- matlab解带约束线性方程,Matlab求解带有约束条件的线性方程组
研究了一会solve函数,发现Matlab对于带有约束条件的线性方程组可以用solve函数解答. 关于solve函数的全部用法,可以参考博客https://blog.csdn.net/ldj1208/ ...
- sklearn中一些参数
转载:http://www.cnblogs.com/chenyaling/p/7826229.html 1.监督学习 1.1.广义线性模型 1.1.1.普通最小二乘法 class sklearn.l ...
- C++中函数参数的默认值
文章目录 1 C++中函数参数的默认值 1.1 C++中函数参数的默认值 1.2 函数默认参数的规则 2 函数占位参数 2.1 函数占位参数 2.2 函数占位参数的意义 1 C++中函数参数的默认值 ...
- Django从理论到实战(part8)--URL中添加参数
学习笔记,仅供参考 参考自:Django打造大型企业官网: 本系列Blog以应用为主,理论基础部分我在后端专栏的Django系列博客已经写过了,如果有些需要补充的知识点,我会在这个系列中,尽量详细的写 ...
- java中方法的命名_Java方法中的参数太多,第5部分:方法命名
java中方法的命名 在上一篇文章 (有关处理Java方法中过多参数的系列文章的 第4部分 )中,我将方法重载视为一种向客户提供需要较少参数的版本的方法或构造函数的方法. 我描述了该方法的一些缺点,并 ...
最新文章
- 在Ubuntu Desktop 12.04 LTS从源代码运行ADempiere 3.6.0 LTS
- iOS10 UI教程视图的边界与视图的框架
- centos7 利用 crontab 执行 定时任务 计划任务
- P4597 序列sequence
- 计算机视觉与深度学习,看这本书就够了
- java 线程中创建线程_java – 在线程中创建线程 – 良好的做​​法?
- eclipse工程 'cocostudio/CocoStudio.h' file not found
- led可见光通信直方图均衡matlab,基于RGB型LED的光学相机通信系统的实现方案
- word删除分节符后之前的格式乱了_办公室高级技能之Word邮件合并拆分
- mysql 线上修改参数_9.10、mysql进程、状态在线修改参数重要知识
- antd 轮播图样式_antd-design 的轮播图组件Carousel如何在初始化的时候自动跳转到特定图片...
- 计算机同步时间解析错误,Windows时间同步时出错该怎么解决?
- R语言一步到位求数据的均值,频数,标准差,标准误差
- 三体归零者和盘龙鸿蒙,三体中的神级文明 归零者 到底是一种怎样的存在?
- 加拿大留学有何魅力,可以吸引众留学生蜂拥而至
- 【PyTorch】模型 FPS 测试 Benchmark(参考 MMDetection 实现)
- Pytorch中torchvision.datasets.ImageFolder报错:Found 0 files in subfolders of:XXX,完美解决!
- 【学习笔记】CSW网络目录服务
- 最新中文linux系统,veket linux系统下载
- Springboot web项目简单统计在线人数
热门文章
- OpenCV 无法解析的外部符号 __imp_opj_image_destroy解决方案
- @Autowired,@Resource和@Referrence的区别
- iOS 【GitHub README编写教程】
- 25-基于51单片机温湿度的检测及控制的设计
- 大数据时代,如何构建国家地质基础数据更新体系
- 巨神奇,2013年的老Mac,竟直接装上macOS Ventura 13.1 Beta版
- 新手入门上位机开发 C#语言:PC串口发送数据
- CAD电气工程图教程之电气图的图形符号与文字符号
- 1510 出纳员问题
- Typora 免费版下载安装(超简单亲测适用于Windows)与入门