1.如何用matlab求解二阶微分方程,以及程序实例1、对于解析值 , 你可以用dsolve()函数求解 。如求微分方程x*y''+x﹡(y')^2-y'=0的解析解
>> syms y(x)
>>Dy = diff(y);D2y = diff(y, 2);
>>dsolve(x*D2y+x*(Dy)^2-Dy==0,'x')
运行结果
2、对于数值解 , 你可以查看二阶常微分方程这个例子 , (龙格-库塔方法)
2.matlab 微分怎么表示在微分方程表达式输入中 , 以大写字母D来表示微分
dsolve调用格式:dsolve('equ1','equ2', 。。。.'equN')
另外要注意:在微分方程表达式输入中 , 以大写字母D来表示微分 , D,D2, 。。.Dn分别表示一阶 , 二阶和n阶
2dx/dt+dy/dt-y=exp(-t)
dx/dt+x+y=0 其中初始条件:x(0)=1.5,y(0)=0
首先求解微分方程的通解:
s=dsolve('2*Dx+Dy-y=exp(-t)','Dx+x+y=0');%求解微分方程组的通解
>>s.x
%微分方程组变量x的通解
ans =
-C1*exp((1+2^(1/2))*t)-C2*exp(-(2^(1/2)-1)*t)+1/2*C1*exp((1+2^(1/2))*t)*2^(1/2)-1/2*C2*exp(-(2^(1/2)-1)*t)*2^(1/2)-1/2*exp(-t)
>>s.y
%微分方程组变量y的通解
ans =
C1*exp((1+2^(1/2))*t)+C2*exp(-(2^(1/2)-1)*t)
然后根据初始条件 , 求解微分方程组的特解:
>>s=dsolve('2*Dx+Dy-y=exp(-t)','dx+x+y=0','x(0)=1.5','y(0)=0');%微分方程组在给定初始条件下的特解
Warning: Explicit solution could not be found.
>In dsolve at 333
>>s=dsolve('2*Dx+Dy-y=exp(-t)','Dx+x+y=0','x(0)=1.5','y(0)=0');%微分方程组在给定初始条件下的特解
>>s.x
ans =
-2^(1/2)*exp((1+2^(1/2))*t)+2^(1/2)*exp(-(2^(1/2)-1)*t)+exp((1+2^(1/2))*t)+exp(-(2^(1/2)-1)*t)-1/2*exp(-t)
>>s.y
ans =
2^(1/2)*exp((1+2^(1/2))*t)-2^(1/2)*exp(-(2^(1/2)-1)*t)
>>%或者使用下面命令直接获取x,y的特解
>>[x,y]=dsolve('2*Dx+Dy-y=exp(-t)','Dx+x+y=0','x(0)=1.5','y(0)=0')
x =
-2^(1/2)*exp((1+2^(1/2))*t)+2^(1/2)*exp(-(2^(1/2)-1)*t)+exp((1+2^(1/2))*t)+exp(-(2^(1/2)-1)*t)-1/2*exp(-t)
y =
2^(1/2)*exp((1+2^(1/2))*t)-2^(1/2)*exp(-(2^(1/2)-1)*t)
3.如何用matlab求解一个二阶常系数微分方程组一、理论解 , 用dsolve函数(在command window 中输入doc dsolve可以查看帮助)
示例:
代码:
[x,y]=dsolve('D2x+2*Dx=x+2*y-exp(-t)','Dy=4*x+3*y+4*exp(-t)')
二、数值解 , 用ode45 , 或ode23, ode15s其他函数 。(在command window 中输入doc ode45可以查看帮助)
示例:
1. 建立M文件
function dy=vdp(t,y)
dy=[y(2);
1000*(1-y(1)^2)*y(2)-y(1);];
2. 调用MATLAB 函数ODE15S
[T,Y]=ode15s('vdp',[0 1000],[2 0]);
plot(T,Y(:,1));
图像为:
4.如何用Matlab求二阶导数用MATLAB求导函数:diff
如求函数f关于x的n阶导数可以写为:diff(f,x,n);
例如:求f=x^3=2*x^2+5的二阶导数 , 代码为:
>> syms x;
>> f = x^3 + 2*x^2 + 5;
>> diff(f,x,2)
运行结果:
得到答案:6*x+4
5.如何用matlab求解二阶常微分方程组mathematica的解法要不要……
sol = NDSolve[{D[x[t], t, t] == x[t]/(x[t] + y[t])^2,
D[y[t], t, t] == y[t]/(x[t] + y[t])^2, x[0] == 1, x'[0] == 1,
y[0] == 2, y'[0] == 1}, {x[t], y[t]}, {t, 0, 100}];
Plot[{x[t], y[t]} /. [email protected], {t, 0, 100}]
解的图形:
【matlab二阶微分怎么写】
文章插图
- matlab标题怎么写
- matlab中for循环怎么写
- matlab阶跃响应怎么写
- matlab中注释怎么写
- matlab求和算子怎么写
- matlab figure matlab figure窗口大小
- matlab报错的程序怎么写
- 什么是微格教学 什么是微分
- 双曲螺线公式 双曲螺线matlab编程
- matlab里分段函数怎么写