怎样用matlab求解非线性微分方程

怎样用matlab求解非线性微分方程,第1张

首先可以肯定的告诉你,matlab本身有个pde工具箱,可以求解一般的典型二阶线性偏微分方程。但是,对于非线性的偏微分方程,我估计很难直接用matlab的工具箱或者函数命令得到结果。因为这涉及到一个数学处理的问题,你首先要处理这个非线性问题,或者用数值的方法处理,然后再用matlab编程计算。

function pdex1

m=0;

x=linspace(0,1,20);

t=linspace(0,2,5);

sol=pdepe(m,@pdex1pde,@pdex1ic,@pdex1bc,x,t);

u=sol(:,:,1);

surf(x,t,u)

figure

plot(x,u(end,:))

function[c,f,s]=pdex1pde(x,t,u,DuDx)

c=pi^2;

f=DuDx;

s=u^2;

function u0=pdex1ic(x)

u0=sin(pix);

function [pl,ql,pr,qr]=pdex1bc(x1,u1,xr,ur,t)

pl=u1;

ql=0;

pr=piexp(-t);

qr=1;

用matlab编写偏微分方程组,可以参考百度文库的这篇文档

,理论

及实践都写的很详细

>

用 ode 系列求偏微分的数值解,,用dsolve求解析解

这是ode的

建立M函数文件

function dx=myfun(t,x)

dx(1)=20/7x(1)-x(2)x(3);

dx(2)=-10x(2)+x(1)x(3);

dx(3)=-4x(3)+x(1)x(2);

dx=dx(:);

matlab窗口主程序

x0=[3,-4,2];

t0=0001:0001:20;

[t,x]=ode45('myfun',[0001,20],x0); %ode45会自动调整步长

x(:,:,1)

plot(t,x)

legend('x','y','z')

dsovle不是很难,,自己好好看看,,,

呵呵

1、首先要打开MATLAB R2016a软件,如下图所示。

2、然后在打开的页面中,选择默认模式(Generic Scalar)-标量模式,具体如图。

3、建立几何模型,绘制两个椭圆,再定义边界条件,具体如图所示。

4、再定义PDE类型和系数,如下图所示。

5、并将其三角形网格化,具体如图所示。

6、最后可以对PDE图形进行求解了,如图所示就完成了。

MATLAB里面有相关的函数

(1)拉普拉斯方程形式的椭圆型偏微分方程

五点差分格式求解偏微分方程的函数是:peEllip5

五点差分格式求解偏微分方程的函数是:peEllip5m

(2)双曲型偏微分方程

迎风格式接函数peHypbYF

等等一些方法,高级一些的MATLAB书籍上都有介绍,可以弄本来看看,也可以去MATLAB论坛看看,具体函数的用法可以help+函数名,看一下MATLAB是怎么解释的

请问用matlab怎么解

dx/dt=2y^2-2

dy/dt=2yz-x-1

dz/zt=2z^2-2y-x0=[1

0

2];

%微分变量区间

tspan=[3

0];

%注意这里必须写成[3

0]

以上就是关于怎样用matlab求解非线性微分方程全部的内容,包括:怎样用matlab求解非线性微分方程、matlab pdepe求解偏微分方程、怎么用matlab编写偏微分方程组等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: https://outofmemory.cn/zz/10046244.html

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

发表评论

登录后才能评论

评论列表(0条)

保存