matlab离散数据的常微分方程求解

matlab离散数据的常微分方程求解,第1张

首先,用dslve()函数求解人口模型的常微分方程

dsolve('DN=r*N','N(t0)=N0')

ans =

(N0*exp(r*t))/exp(r*t0)

第二,根据N和t的离散数据,用lsqcurvefit()拟合函数,拟合出N0 和 r系数值

N=[]

t=[]

fun=@(a,x)(a(1)*exp(a(2)*t))/exp(a(2)) %t0=1

a=lsqcurvefit(fun,t0,t,N)

N0 =a(1)

r=a(2)

dt=0.01

t=0:dt:4.99

x(1)=v(1)

y(1)=-u(1)

n=length(t)

for i=1:n

x(i+1)=(u(i)+v(i))*dt+x(i)

y(i+1)=(v(i)-x(i))*dt+y(i)

end

%Plot x &y figure.

plot(t,x,'r',t,y,'b'),3,matlab 解微分方程组(离散值)

x'(t)=u(t) + y(t)

y'(t)=v(t) - x(t)

t=0 :0.01 :4.99

已知x(0)=v(0)、y(0)= - u(0)以及u(t)及v(t)在t域上的的值,u(t)及v(t)图形如附图.

求解x(t)、y(t).

第一种方法:利用dsolve函数求微分方程的符号解(通解):对于一些不是很难,要求出通解的微分方程,用dsolve函数求解。

1、 打开Matlab软件-->点击新建脚本菜单,新建一个脚本文件用于编写微分方程求解程序。

2、  输入微分方程求解程序-->点击保存-->点击运行。

3、在matlab的命令窗口即可看到求解结果,是一个关于参数a,b的表达式

第二种方法:利用Matlab中的solver函数(包括ode45、ode23、ode15s等)来求解微分方程的数值解,这种方法是最常用的方法,对于dsolve函数难以求解的方程就可以利用这种方法求解方程的数值解。

1、  打开Matlab-->新建一个脚本文件用于编写求解程序。

2、 在脚本文件中输入求解程序-->点击保存-->点击运行。

3、 这里需要先编写一个函数文件用于表示方程-->点击保存-->编写求解程序-->点击保存-->点击运行。

4、在figure页面就可以看到所求解的微分方程的图形。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8111025.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-13
下一篇 2023-04-13

发表评论

登录后才能评论

评论列表(0条)

保存