用matlab求微分方程初值问题的符号解,并与数值解进行比较 d2y+4dy+29y=0 y(0)=0 dy(0)=15

如题所述

(1)用matlab求微分方程初值问题的符号解:

syms y(x)

Dy=diff(y,1);D2y=diff(y,2);

y=dsolve(D2y+4*Dy+29*y==0,y(0)==0,Dy(0)==15)

(2)用matlab求微分方程初值问题的数值解:

x0=[0 15];

[x,y]=ode45(@func,[0 20],x0)

func——微分方程自定义函数

x0——初值

运行结果

从图形中,我们可以看到用ode45()函数得到的微分方程数值解与符号解是吻合的。

追问

可我还是不知道编程要怎么打 能打给我看看吗

温馨提示:内容为网友见解,仅供参考
无其他回答

用matlab求解微分方程初值问题数值解和解析解,求解范围为区间.并画出...
首先,自定义微分方程的函数,即 dy = 3\/x*y+x^3*(exp(x)+cos(x))-2*x;其二,确定初始条件,即 y0=[(exp(pi)+2\/pi)*pi^3];其三,使用ode45函数,求出其数值解【x,y】二、解析解 微分方程初值问题解析解可以用dsolve函数求解。首先,对y(x)进行变量声明,即 syms y(x)其二,对y...

用MATLAB数值法求解微分方程的解
function f=fffff(t,y)f=[y(2);cos(y(1))];然后 [t,y]=ode45(@fffff,[0,2],[0,0]);plot(t,y(:,1),'r',t,y(:,2),'b')即可。我给你设了初值【0,0】,你可以自己定义。红线为y,蓝线为y'.你先把上面的函数fffff写成m文件,保存到你的matlab工作目录里,然后再在命令...

matlab微分方程的解?
这里,y(1)代表y(x)的数值解,y(2)代表z(x)的数值解 二、微分方程的解析解可以dsolve函数来求解。1、对变量y(x),z(x)进行声明,即 syms y(x) z(x)2、对变量y(x),z(x)求一阶导数,即 Dy=diff(y,1);Dz=diff(z,1);3、使用dsolve求y(x),z(x)解析表达式,即 [y,z]=dso...

利用MATLAB求解微分方程初值问题
朋友,要根据初值积分对dM\/dt积分求得M,才能求解M(t)=0或t(M)=0。solver(积分函数,积分时间,初值,设置)也是这样的数学方法。简单的求解 [时间,解]=solver(积分函数,积分时间,初值);

Matlab微分方程求解
对于边值问题,Matlab同样支持数值求解,通过bvp4c函数,用户需要构建边界条件方程并初始化解的猜测值。具体来说,一阶微分方程的数值解通过以下步骤实现:1. 定义函数fun和求解区间tspan及初值y0。2. ode45返回结构数组s,利用deval函数可在任何点x计算函数值y。3. 边值问题涉及在区间边界上的条件,如y...

matlab用ode解微分方程,微分方程中的变量与微分方程运算结果有关,该怎...
matlab用ode解微分方程,其方程的变量E1,E2,B1随着y(1),y(2),y(3),y(4)的变化而变化?分析了题主给出的代码,是不需要加循环的,因为每计算【t,y】一次时,其E1,E2,B1是不同的,所以给出的代码基本是合理的。但还存在着几个问题,如ode45函数使用问题:[t,Y]=ode45(fun,[1e-9,...

matlab求解常微分方程\/偏微分方程
对于高阶微分方程,MATLAB通过递归调用低阶方程求解方法,实现高阶方程的解法。在解析解法中,MATLAB的符号运算能力可以用于求解常微分方程的通解与初边值问题。例如,使用dsolve函数求解方程。求解常微分方程组时,使用dsolve函数同时定义多个方程,并指定求解变量与边界条件。针对偏微分方程,MATLAB提供了数值...

matlab解微分方程组?
首先,自定义求解微分方程组的函数,即 function dy=func(t,y)dy=zeros(3,1);dy(1)=10*(y(1)+y(2)); %dx\/dt dy(2)=20*y(1)-y(2)-y(1)*y(3); %dy\/dt dy(3)=y(1)*y(2)-8*y(3); %dz\/dt 其二,确定初值,由于当x(0)=0,y(0)=0,z(0)=0 该系统是无法触发...

matlab求解微分方程的通解问题
对标准答案进行验算:syms x y y=sqrt(2*pi\/x)*sin(x);y1=diff(y,'x');y2=diff(y,'x',2);h=x^2*y2+x*y1+(x^2-1\/2)*y;h=simplify(h)结果:h = -1\/4\/x*2^(1\/2)*sin(x)*pi^(1\/2)\/(1\/x)^(1\/2)可见不等于0,=y,说明原答案有问题 ...

利用matlab中的欧拉法解初值问题.
用符号运算解微分方程s=dsolve('Dy=exp(t)-2*y','y(0)=1')ezplot(ans,[0,2]);由于matlab默认自变量为t,所以这里用t,代替方程中的x结果是s= 2\/(3*exp(2*t))+exp(t)\/3也就是方程是y=2\/3*exp(-2x)+1\/3*exp(x)解析解图像为很像你之前用数值解得到的结果 ...

相似回答