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.01t=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页面就可以看到所求解的微分方程的图形。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)