matlab解反应扩散方程,反应扩散方程Matlab编程
问题描述:
反应扩散方程Matlab编程
>> function fd1d_predator_prey ( )
% FD1D_PREDATOR_PREY.m one-dimensional finite-difference method for Scheme 2
% applied to the predator-prey system with Kinetics 1.
%
% Author:
%
% Marcus Garvie
%
%
% User inputs of parameters
%
alpha = input('Enter parameter alpha ');
beta = input('Enter parameter beta ');
gamma = input('Enter parameter gamma ');
delta = input('Enter parameter delta ');
a = input('Enter a in [a,b] ');
b = input('Enter b in [a,b] ');
h = input('Enter space-step h ');
T = input('Enter maximum time T ');
delt = input('Enter time-step Delta t ');
%
% User inputs of initial data
%
u0 = input('Enter initial data function u0(x) ','s'); % see notes
v0 = input('Enter initial data function v0(x) ','s'); % in text
%
% Calculate some constants
%
mu=delt/(h^2);
J=round((b-a)/h);
n = J+1; % no.of nodes (d.f.) for each dependent variable
N=round(T/delt);
%
% Initialization
%
u=zeros(n,1); v=zeros(n,1); F=zeros(n,1); G=zeros(n,1);
y1=zeros(n,1); y2=zeros(n,1); z1=zeros(n,1); z2=zeros(n,1);
B1=sparse(n,n); B2=sparse(n,n); L=sparse(n,n); Lower1=sparse(n,n);
Lower2=sparse(n,n); U1=sparse(n,n); U2=sparse(n,n);
%
% Assign initial data
%
indexI=[1:n]';
x=(indexI-1)*h+a; % vector of x values on grid
u = eval(u0).*ones(n,1); v = eval(v0).*ones(n,1);
%
% Construct matrix L (without 1/h^2 factor)
%
L=sparse(1,2,-2,n,n);
L=L+sparse(n,n-1,-2,n,n);
L=L+sparse(2:n-1,3:n,-1,n,n);
L=L+sparse(2:n-1,1:n-2,-1,n,n);
L=L+sparse(1:n,1:n,2,n,n);
%
% Construct matrices B1 & B2
%
B1=sparse(1:n,1:n,1,n,n) + mu*L;
B2=sparse(1:n,1:n,1,n,n) + delta*mu*L;
%
% Perform the LU factorisation of B1 and B2
%
[Lower1,Upper1]=lu(B1);
[Lower2,Upper2]=lu(B2);
%
% Time-stepping procedure
%
for nt=1:N
% Evaluate modified functional response
hhat = u./(alpha + abs(u));
% Update right-hand-side of linear system
F = u - u.*abs(u) - v.*hhat;
G = beta*v.*hhat - gamma*v;
y1 = u + delt*F;
y2 = v + delt*G;
% Forward substitution to solve Lower1*z1=y1 for z1
z1 = Lower1\y1;
% Back-substitution to solve Upper1*u=z1 for u
u = Upper1\z1;
% Forward substitution to solve Lower2*z2=y2 for z2
z2 = Lower2\y2;
% Back-substitution to solve Upper2*v=z2 for v
v = Upper2\z2;
end
%
% Plot solution at time level T=N*delt
%
plot(x,u,'k'); hold on; plot(x,v,'k-.')
return
end
function fd1d_predator_prey ( )
|
Error:Function definitions are not permitted at the prompt or in scripts.
>>
1个回答
分类:
综合
2014-10-06
问题解答:
我来补答
1
将代码保存为M文件
2
将下面的代码复制到命令窗口,按回车键,运行即可
fd1d_predator_prey
展开全文阅读
matlab解反应扩散方程,反应扩散方程Matlab编程相关推荐
- matlab解二阶微分方程组ode,MATLAB解含参数方程、矩阵方程、二阶微分方程组
1.如下公式: 其中x.y.m.n为参数,a.b为未知数,利用MATLAB求解方程: syms x y m n a b; [a,b]=solve('x=m*cos(a)+n*cos(a+b)','y= ...
- matlab解方程最值点,MATLAB解方程与函数极值
1.线性方程数值求解 主要是用到了计算方法里的LU分解等不过是加快了求解速度而已相对于inv(A)*b或者A\b 2.非线性方程数值求解 1 单变量非线性方程求解 在MATLAB中提供了一个fzero ...
- 用matlab解出冲激响应的表达式,Matlab实验指导书
13 r2=linspace(5,0,length(t)); x2=r2.*cos(t); y2=r2.*sin(t); subplot(122),plot3(x2,y2,z) gridon 三.设计 ...
- matlab解方程x 2-x-2=0,matlab用三种方法求解二阶微分方程x''+0.2x'=0.4x=0.2u(t),u(t)是单位阶跃函数,初始状态为0...
问题描述: matlab用三种方法求解二阶微分方程x''+0.2x'=0.4x=0.2u(t),u(t)是单位阶跃函数,初始状态为0 1个回答 分类: 数学 2014-11-28 问题解答: 我来补答 ...
- matlab坡度计算公式,matlab解二阶微分方程怎么用matlab来解呢?x的定义域是(0,l),i是道路横坡坡度,w是降雨强度,k是路面横向...
共回答了16个问题采纳率:81.3% 你的方程即为: y'*y' + y''*y' +w/k =0 s = dsolve('Dy*D2y + Dy^2 + w/k ', 'y(l) = a', 'Dy ...
- matlab解kmv方程,急:Matlab求解KMV模型,使用fsolve函数出现问题
最近也在做kmv模型 参考了你的和贴吧的改了一下代码,可是初始值设置总是有问题,参考了郑老师的初始值设置[1,1]可以搜索后,再改了以下代码,可是出的结果就只有1,1,但是用郑老师的代码改的话,出的结 ...
- MATLAB 气体扩散,放射性气体扩散方程有限差分法的MATLAB实现
2017年11月 咸阳师范学院学报 Nov.2017 第32卷 第6期 Journal of Xianyang Normal University Vol.32 No.6 [数理科学与信息科学研究] ...
- 最优控制问题matlab编程实例,第十二章用matlab解最优控制问题及应用实例.ppt
第十二章用matlab解最优控制问题及应用实例 第十二章 用MATLAB解最优控制问题及应用实例 第十二章 用MATLAB解最优控制问题及应用实例 12.1 MATLAB工具简介 12.2 用MATL ...
- matlab的矩阵编译器,MATLAB引擎方式实现VC与MATLAB混合编程
VS2008是当前主流的应用程序开发环境之一,开发环境强大,开发的程序执行速度快.但在科学计算方面函数库显得不够丰富.读取.显示数据图形不方便.Matlab是一款将数值分析.矩阵计算.信号处理和图形显 ...
- MATLAB学习笔记(七)——MATLAB解方程与函数极值
(一)线性方程组求解 包含n个未知数,由n个方程构成的线性方程组为: 其矩阵表示形式为: 其中 一.直接求解法 1.左除法 x=A\b; 如果A是奇异的,或者接近奇异的.MATLAB会发出警告信息的. ...
最新文章
- php获取类的熟悉,php如何获取类的所有方法
- foxtable制作管理系统实例_某河道治理工程实例
- mysql 导入日期 0000_解决Excel导入MySQL日期为0000-00-00
- 系统500报警 php_Zabbix3.4 部署、监测及邮件报警
- mysql表空间自增_Oracle 默认表空间问题及自增变量设置
- textarea只允许上下调节尺寸
- linux开机启动 sogou输入法 xcompmgr .xprofile 黑块
- pythonexcel怎么合并_Python把多个Excel合并成一个Excel
- 用Discrete Cosine Transform实现jpeg压缩
- 小红书用户画像分析_用户画像,该怎么分析?
- the disk drive for uuid=XXXX ( /media/sda1) is not reday yet or not present
- 博弈论大作战之 PART1
- 螺旋矩阵一个n行n列的螺旅矩阵可由如下方法生成:从矩阵的左上角(第1行第 1列)出发,初始时向右移动;如果前方是未曾经过的格子,则继续前进,否则右转;重复上述操作直至经过矩阵中所有格子。
- freerdp 解压安装_Linux下安装FreeRDP,连接Windows远程桌面好软件软件.doc
- 洛谷 P1914 小书童——凯撒密码
- 巴菲特弃用 20 美元的三星翻盖,换上了 iPhone
- mybatis学习之高级映射
- css3动画添加间隔
- 《地理信息系统导论》chapter12 栅格数据分析
- 魔方APP项目-07-客户端提交登录信息、在APICloud中集成防水墙验证码,前端获取显示并校验验证码、服务端校验验证码、保存用户登录状态,APICloud提供的数据存储、客户端保存用户登陆数据