双曲方程基于matlab的数值解法
- 格式:doc
- 大小:284.00 KB
- 文档页数:10
matlab 双曲线型偏微分方程引言概述:双曲线型偏微分方程是数学中的重要分支之一,它在物理、工程和自然科学等领域中具有广泛的应用。
Matlab作为一种强大的数值计算工具,可以用于求解双曲线型偏微分方程。
本文将介绍Matlab在求解双曲线型偏微分方程方面的应用。
正文内容:1. 理解双曲线型偏微分方程1.1 双曲线型偏微分方程的定义1.2 双曲线型偏微分方程的特点1.3 双曲线型偏微分方程的分类2. Matlab在求解双曲线型偏微分方程中的应用2.1 利用有限差分法求解双曲线型偏微分方程2.2 利用有限元法求解双曲线型偏微分方程2.3 利用特征线法求解双曲线型偏微分方程3. Matlab的双曲线型偏微分方程求解工具箱3.1 PDE Toolbox3.2 Hyperbolic PDE Toolbox3.3 Wavelet Toolbox4. 实例分析:声波传播方程的求解4.1 声波传播方程的建立4.2 Matlab代码实现4.3 数值结果的分析和讨论5. 应用案例:电磁波传播问题的求解5.1 电磁波传播方程的建立5.2 Matlab代码实现5.3 数值结果的分析和讨论6. Matlab在双曲线型偏微分方程求解中的优势和不足6.1 优势:高效、灵活的数值计算能力6.2 不足:对于复杂问题的求解可能存在困难总结:本文介绍了Matlab在双曲线型偏微分方程求解中的应用。
通过对双曲线型偏微分方程的理解和分类,以及Matlab的求解方法和工具箱的介绍,我们可以看到Matlab在双曲线型偏微分方程求解中的重要作用。
通过实例分析和应用案例的讨论,我们可以看到Matlab在求解双曲线型偏微分方程方面的优势和不足。
在实际应用中,我们应根据具体问题选择合适的求解方法和工具,以获得准确、高效的数值计算结果。
求单叶双曲面和双叶双曲面、椭圆抛物面、双曲抛物面用matlab怎么画或其参数方程?2009-12-07 15:46tianzan2006|分类:数学|浏览4969次有个例子就成,选修可的实验报告。
大一高数学的不太好,现在乘机补课。
向左转|向右转方式二:短信免费下载下载链接将通过短信免费下发到您的手机发送短信分享到:2009-12-07 19:43提问者采纳花画圆的程序:for i=-3:0.001:3y=-sqrt(9-i^2);plot(i,y);hold onendhold onfor i=-3:0.001:3y=sqrt(9-i^2);plot(i,y);hold onend%椭圆for i=-6:0.01:6y=-sqrt(36-i^2)/2;plot(y,i);hold onend%双曲线for i=-6:0.01:6y=-sqrt(36+i^2)/2;plot(y,i);hold onendhold onfor i=-6:0.01:6y=sqrt(36+i^2)/2;plot(y,i);hold onendhold onfor i=-6:0.01:6y=sqrt(36-i^2)/2;plot(y,i);hold onend%抛物线for i=0:0.01:6y=-sqrt(2*6*i);plot(y,i);hold onendhold onfor i=0:0.01:6y=sqrt(2*6*i);plot(y,i);hold onend其他2条回答2009-12-07 20:08hyyly520|十一级%%%%%%%%%圆%%%%%%%%%%%%%%x=-1:0.00001:1;r=1;%半径r=1y1=sqrt(r-x.^2);y2=-sqrt(r-x.^2);plot(x,y1,x,y2)%%%%%%%%%椭圆%%%%%%%%%%%%%%x=-1:0.00001:1;a=1;b=1;%椭圆半径a=1;b=1y1=sqrt(b.^2*(1-x.^2/(a.^2)));y2=-sqrt(b.^2*(1-x.^2/(a.^2)));plot(x,y1,x,y2)%%%%%%%%%抛物线%%%%%%%%%%%%%%x=1:0.00001:5;a=1;b=1;%抛物半径a=1;b=1y1=sqrt(b.^2*(x.^2/(a.^2)-1));y2=-sqrt(b.^2*(x.^2/(a.^2)-1));plot(x,y1,x,y2)%%%%%%%%%椭球面%%%%%%%%%%%%%% xa=-2:0.2:2;ya=xa;[x,y]=meshgrid(xa,ya);a=1;b=1;c=1;% 假设a=1;b=1;c=1z1=sqrt(c.^2*(1-x.^2/(a.^2)+y.^2/(b.^2)));z2=-sqrt(c.^2*(1-x.^2/(a.^2)+y.^2/(b.^2)));mesh(x,y,z1)hold on;mesh(x,y,z2)%%%%%%%%%%%单叶双曲面%%%%%%%%%%% xa=-2:0.2:2;ya=xa;[x,y]=meshgrid(xa,ya);a=1;b=1;c=1;% 假设a=1;b=1;c=1z1=sqrt(c.^2*(x.^2/(a.^2)+y.^2/(b.^2)-1));z2=-sqrt(c.^2*(x.^2/(a.^2)+y.^2/(b.^2)-1));mesh(x,y,z1)hold on;mesh(x,y,z2)%%%%%%%%%%双叶双曲面%%%%%%%%%%%%%% xa=-2:0.2:2;ya=xa;[x,y]=meshgrid(xa,ya);a=1;b=1;c=1;% 假设a=1;b=1;c=1z1=sqrt(c.^2*(x.^2/(a.^2)+y.^2/(b.^2)+1));z2=-sqrt(c.^2*(x.^2/(a.^2)+y.^2/(b.^2)+1));mesh(x,y,z1)hold on;mesh(x,y,z2)%%%%%%%%%%椭圆抛物面%%%%%%%%%%%%%% xa=-2:0.2:2;ya=xa;[x,y]=meshgrid(xa,ya);p=1;q=1;% 假设p=1;q=1z=0.5*(x.^2/p+y.^2/q);mesh(x,y,z)%%%%%%%%%%双曲抛物面%%%%%%%%%%%%% xa=-2:0.2:2;ya=xa;[x,y]=meshgrid(xa,ya);p=1;q=1;% 假设p=1;q=1z=0.5*(x.^2/p-y.^2/q);mesh(x,y,z)。
基于MATLAB对一维奇异摄动方程高精度格式的研究
潘轶航
【期刊名称】《现代信息科技》
【年(卷),期】2024(8)2
【摘要】为研究更加精确的求解奇异摄动方程数值解的解法,文章研究传统中心差分格式,迎风格式以及高阶精度格式这三种数值求解格式,使用MATLAB软件进行求解一维奇异摄动对流扩散方程的算例并可视化,对不同方法下求解方程的结果进行了对比和研究,通过对数值算例求解结果的分析,发现在任意网格下,当摄动参数趋于0时,高阶精度格式下解的精度和稳定性较传统的求解格式有显著提升,使在求解奇异摄动方程的方法选择上更具有针对性。
【总页数】7页(P102-107)
【作者】潘轶航
【作者单位】北方民族大学数学与信息科学学院
【正文语种】中文
【中图分类】TP391;O241.82
【相关文献】
1.对流扩散方程QUICK格式的数值摄动高精度重构格式
2.自适应迎风格式求解奇异摄动两点边值问题的高精度算法(一)
3.自适应迎风格式求解奇异摄动两点边值问题的高精度算法(二)
4.具有零阶退化方程的二阶双曲型方程奇异摄动问题的一致差分格式
5.二阶线性守恒型常微分方程奇异摄动问题的高精度差分格式
因版权原因,仅展示原文概要,查看原文内容请购买。
实验二微分方程数值解法一.实验原理及实验内容:对微分方程描述的控制系统,利用欧拉法、二阶龙格-库塔法、四阶龙格-库塔法分别编写M文件,进行数值计算和作图。
1.分别用欧拉法、二阶龙格-库塔法、四阶龙格-库塔法求下面系统的输出响应y(t)在0≤t≤1上,h=0.1时的数值解。
'2,(0)1=-=y y y要求保留4位小数,并将三种方法的结果与真解2=进行比较。
()ty t e-2.若为如2y y y==何编程计算?',(0)1二.实验仪器:计算机Matlab软件三.实验数据记录:程序一:disp('欧拉算法');y=1;h=0.1;for i=0:0.1:1disp(y);y=y+h*(-2*y);enddisp('欧拉算法');ydisp('精确解');yy=exp(-2*t)h=0.1;disp('函数的2阶数值解为');disp('y=');y=1;for t=0:h:1;disp(y);k1=-2*y;k2=-2*(y+k1*h);y(i+1)=y(i)+(k1+k2)*h*1/2;endh=0.1;disp('函数的4阶数值解为');disp('y=');y=1;for t=0:h:1;disp(y);k1=-2*y;k2=-2*(y+k1*h*1/2);k3=-2*(y+k2*h*1/2);k4=-2*(y+k3*h);y=y+h*1/6*(k1+2*k2+2*k3+k4); end>>程序2:t=0:0.1:1;n=length(t);y(1)=1;h=0.1;for i=1:n-1y(i+1)=y(i)+h*(y(i)*y(i)); enddisp('欧拉算法');ydisp('精确解');yy=exp(-2*t)h=0.1;disp('函数的2阶数值解为');disp('y=');y=1;for t=0:h:1;disp(y);k1=y*y;k2=(y+k1*h)^2;y=y+(k1+k2)*h*1/2;endh=0.1;disp('函数的4阶数值解为');disp('y=');y=1;disp(y);k1=y*y;k2=(y+k1*h*1/2)^2;k3=(y+k2*h*1/2)^2;k4=(y+k3*h)^2;y=y+h*1/6*(k1+2*k2+2*k3+k4); end。
基于MATLAB语言的非线性系统相空间分析一、简述非线性系统相空间分析是研究非线性系统的动力学行为和稳定性的一种方法。
在MATLAB语言中,我们可以通过构建合适的数学模型来描述非线性系统,并利用其强大的数值计算和绘图功能进行相空间分析。
本文将介绍如何使用MATLAB语言对非线性系统进行相空间分析的基本步骤和技巧,包括:建立非线性系统方程、求解方程组、绘制相空间轨迹图等。
通过这些内容的学习,读者可以掌握MATLAB 在非线性系统相空间分析中的应用方法,为进一步深入研究非线性系统提供基础支持。
1. 非线性系统的概念和特点非线性系统是指其行为不能通过线性组合得到的系统,在自然科学、工程技术和社会科学等领域中,非线性系统无处不在,例如:自然生态系统、经济市场、生物医学过程等。
非线性系统的特点是它的输出不仅仅取决于输入,还受到内部状态的影响,这种影响通常是复杂的、难以预测的。
非线性系统的相空间分析是一种处理非线性系统的方法,在MATLAB语言中,我们可以通过使用各种工具箱进行相空间分析,包括解常微分方程(ODE)、解偏微分方程(PDE)以及求解复杂动力学系统等。
首先我们需要理解非线性系统的数学模型,这通常通过将系统的动态方程表示为微分方程来完成。
然后我们可以使用MATLAB的ODE 求解器来求解这些方程,得到系统的相空间轨迹。
此外我们还可以使用MATLAB的PDE工具箱来求解偏微分方程,得到系统的相空间曲面。
除了基本的数值方法外,MATLAB还提供了多种高级功能,如优化工具箱、控制工具箱等,这些都可以用于非线性系统的分析和设计。
例如我们可以使用优化工具箱来寻找最优的控制策略,或者使用控制工具箱来设计自适应控制器。
MATLAB为非线性系统的相空间分析提供了强大的支持,无论是对于理论研究还是实际应用都具有很高的价值。
2. 相空间分析的基本概念和方法相空间分析是一种研究非线性系统动态行为的方法,它通过将系统的微分方程组表示为相空间中的轨迹方程来描述系统的演化过程。
双曲型方程基于MATLAB 的数值解法(数学1201,陈晓云,41262022)一:一阶双曲型微分方程的初边值问题0,01,0 1.(,0)cos(),0 1.(0,)(1,)cos(),0 1.u u x t t xu x x x u t u t t t ππ∂∂-=≤≤≤≤∂∂=≤≤=-=≤≤ 精确解为 ()t x cos +π二:数值解法思想和步骤 2.1:网格剖分为了用差分方法求解上述问题,将求解区域{}(,)|01,01x t x t Ω=≤≤≤≤作剖分。
将空间区间[0,1]作m 等分,将时间[0,1]区间作n 等分,并记1/,1/,,0,,0j k h m n x jh j m t k k n ττ===≤≤=≤≤。
分别称h 和τ为空间和时间步长。
用两簇平行直线,0,,0j k x x j m t t k n =≤≤=≤≤将Ω分割成矩形网格。
2.2:差分格式的建立0u ut x∂∂-=∂∂ 2.2.1:Lax-Friedrichs 方法对时间、空间采用中心差分使得2h11111)(21u u xu u u u u tukj kj kj k j kjk j-+-++-=+=-=∂∂∂∂ττ则由上式得到Lax-Friedrichs 格式111111()202k k k k k j j j j j u u u u u hτ+-+-+-+-+=截断误差为()[]k k kj h j j R u L u Lu =-111111()22k k k k k k k j j j j j j ju u u u u u u h t xτ+-+-+-+-∂∂=+-+∂∂232223(),(0,0)26kkjj u u h O h j m k n t xττ∂∂=-=+≤≤≤≤∂∂ 所以Lax-Friedrichs 格式的截断误差的阶式2()O h τ+ 令/s h τ=:则可得差分格式为111111(),(0,0)222k k k kk j j j j j s s u u u u u j m k n +--++=-+++≤≤≤≤ 0cos()(0)j j u x j m π=≤≤0cos(),cos(),(0)k kk m k u t u t k n ππ==-≤≤其传播因子为: ()()()e e Gh i h i s h i h i σσσστσ---=-+e e 221, 化简可得:()()()()()hs G h is h G στσσστσsin 11,sin cos ,222--=-= 所以当1s ≤时,()1,≤τσG ,格式稳定。
双曲型偏微分方程数值求解方法研究双曲型偏微分方程在物理学、工程学、数学等领域都有广泛应用,其数值求解方法的研究一直是人们关注的热点之一。
本文将从数学基础、数值求解方法等多个方面进行探究。
一、数学基础双曲型偏微分方程最基本的形式为:$$\frac{\partial^2u}{\partial t^2}-\frac{\partial^2u}{\partialx^2}=0\tag{1}$$其中,$u(x,t)$为未知函数,$t>0$为时间,$x$为空间坐标。
该方程描述了波动、电磁场传播等现象。
对于双曲型偏微分方程,其初值问题的形式为:$$u(x,0)=f(x),\ \frac{\partial u}{\partial t}(x,0)=g(x)\tag{2}$$初值问题的解存在唯一性,同时还有能量守恒等性质。
二、数值求解方法双曲型偏微分方程的数值求解方法包括有限差分法、有限元法、谱方法等。
1. 有限差分法有限差分法是一种被广泛采用的数值求解方法,其原理是将连续的求解区域离散化成有限个点,之后通过有限差分公式求出该点的近似解。
对于双曲型偏微分方程,可以使用中心差分公式进行离散化,即$$\frac{u_{i,j+1}-2u_{i,j}+u_{i,j-1}}{\Delta t^2}-\frac{u_{i+1,j}-2u_{i,j}+u_{i-1,j}}{\Delta x^2}=0\tag{3}$$其中,$u_{i,j}$表示在坐标$(i,j)$处的近似解。
2. 有限元法有限元法是一种更加广泛的数值求解方法,其原理是将求解区域划分为一系列小块,通过对每个小块内的方程进行求解,得到整个求解区域的近似解。
对于双曲型偏微分方程,可以采用时间-空间分离技术,先将时间离散化后,再对空间进行离散化,通过有限元法求解离散化后的方程。
3. 谱方法谱方法是一种基于函数逼近的数值求解方法,其原理是通过一组基函数对未知函数进行逼近,然后通过数值解法求解得到基函数系数,从而得到函数的近似解。
双曲型方程基于MATLAB 的数值解法(数学1201,陈晓云,41262022)一:一阶双曲型微分方程的初边值问题 精确解为 0,01,0 1.(,0)cos(),0 1.(0,)(1,)cos(),0 1.u u x t t x u x x x u t u t t t ππ∂∂-=≤≤≤≤∂∂=≤≤=-=≤≤()t x cos +π二:数值解法思想和步骤2.1:网格剖分为了用差分方法求解上述问题,将求解区域作剖分。
将空间区间作等分,将时间{}(,)|01,01x t x t Ω=≤≤≤≤[0,1]m 区间作等分,并记[0,1]n 。
分别称和为空间和时1/,1/,,0,,0j k h m n x jh j m t k k n ττ===≤≤=≤≤h τ间步长。
用两簇平行直线将分割成矩形,0,,0j k x x j m t t k n =≤≤=≤≤Ω网格。
2.2:差分格式的建立 0u u t x ∂∂-=∂∂2.2.1:Lax-Friedrichs 方法对时间、空间采用中心差分使得2h11111)(21u u x uu u u u tuk j k j k j k j k j k j -+-++-=+=-=∂∂∂∂ττ则由上式得到Lax-Friedrichs 格式111111()202k k k k k j j j j j u u u u u h τ+-+-+-+-+=截断误差为()[]k k k j h j j R u L u Lu =-111111()22k k k k k k k j j j j j j j u u u u u u u h t x τ+-+-+-+-∂∂=+-+∂∂232223(),(0,0)26k k j j u u h O h j m k n t x ττ∂∂=-=+≤≤≤≤∂∂所以Lax-Friedrichs 格式的截断误差的阶式2()O h τ+令:则可得差分格式为/s h τ=111111(),(0,0)222k k k k k j j j j j s s u u u u u j m k n +--++=-+++≤≤≤≤0cos()(0)j j u x j m π=≤≤0cos(),cos(),(0)k k k m k u t u t k n ππ==-≤≤其传播因子为: 化简可得:()()()e e G h i h i s h i h i σσσστσ---=-+e e 221, ()()()()()h s G h is h G στσσστσsin 11,sin cos ,222--=-=所以当时,,格式稳定。
应用MATLAB确定邓肯-张双曲线模型中的K,n参数简介:接合承德中密砂常规三轴试验数据,介绍应用Matlab语言编写计算及绘图程序来处理试验数据的方法,可显著提高试验研究的数据处理效率和结果的可视化程度。
关键字:Matlab 三轴试验邓肯-张模型1 前言基于广义胡克定律的线弹性理论形式简单,参数少,物理意义明确,而且在工程界有广泛深厚的基础,得以应用于许多工程领域中。
早期土力学中的变形计算主要是基于线弹性理论的,只有在计算机得到迅速发展之后,非线性理论模型才得到较广泛的应用。
邓肯-张模型是建立在增量广义胡克定律基础之上的变模量的弹性模型,可以反映土变形的非线性,并在一定程度上反映土变形的弹塑性,很容易为工程界所接受,加之所用参数和材料参数不多,物理意义明确,只需用常规三轴压缩试验即可确定这些参数及材料常数适应的土类比较广,所以该模型为岩土工程界所熟知,并得到了广泛的应用,成为土的最为普及的本构模型之一。
本文主要是应用MATLAB编写计算及绘图程序来处理承德中密砂常规三轴试验数据。
2 基于MATLAB的计算过程实现现场的观测数据经过采集和整理后,按照一定的格式把数据存储在数据文件中,然后可以使用MATLAB丰富的数值运算功能可以非常容易地编制出数据处理程序,先用函数fope n()打开数据文件,fid=fopen(‘filename’,’r’)再用fscanf 函数依次从文件中读取格式化数据来完成对各变量地赋值,其使用语法为:matrix=fscanf(fid,format)。
本文由于数据不是太多,所以在计算过程中没有采取调用存储文件地形式。
直接在计算过程中输入试验数据计算。
2.1 数据的处理对第一组数据,通过编写Matlab语言,由轴向应变和应力差的试验数据可以作出~()和~双曲线关系图形,主要用到的MATLAB命令为:plot(x1,y1);axis([0 0.04 0 3]) ;hold on%(1)plot(x1, x1./y1);a=polyfit(x1, x1./y1,1);t1=0:0.001:0.07;plot(x1, x1./y1,'.',t1,a(1)*t1 +a(2))%(2)其中x1代表第一组轴向应变,x2代表第一组应力差。
一、概述在数学和工程领域中,圆锥双曲线是一种重要的曲线类型。
它在描述椭圆、双曲线等曲线时具有广泛的应用价值。
而Matlab作为一种强大的数学软件工具,可以方便地绘制各种函数曲线,包括圆锥双曲线。
本文旨在介绍如何使用Matlab的函数代码绘制圆锥双曲线,并提供一些示例代码和图形演示。
二、绘制圆锥双曲线函数代码1. 定义圆锥双曲线的参数圆锥双曲线的一般方程为:(x^2 / a^2) - (y^2 / b^2) = 1其中a和b分别为圆锥双曲线在x轴和y轴上的半轴长度。
在Matlab 中,我们可以先定义这两个参数值,例如:a = 3;b = 2;2. 生成圆锥双曲线的点集接下来,我们需要生成圆锥双曲线上的一系列点集,以便后续绘制曲线。
可以利用参数方程来生成点集,例如:t = -3:0.01:3;x = a*cosh(t);y = b*sinh(t);这里利用双曲函数cosh和sinh来生成点集,t为参数,-3到3之间适当取值,可以使得生成的点集具有较好的曲线效果。
3. 绘制圆锥双曲线利用Matlab的绘图函数plot来连接生成的点集,实现圆锥双曲线的绘制,例如:plot(x, y);title('Hyperbola'); xlabel('x-axis'); ylabel('y-axis');legend('Hyperbola');这样就可以在Matlab中绘制出指定参数下的圆锥双曲线图形了。
三、示例代码和图形演示为了更直观地展示Matlab绘制圆锥双曲线的过程,以下是一个完整的示例代码和对应的图形演示:```matlab定义圆锥双曲线参数a = 3;b = 2;生成圆锥双曲线的点集t = -3:0.01:3;x = a*cosh(t);y = b*sinh(t);绘制圆锥双曲线plot(x, y);title('Hyperbola'); xlabel('x-axis'); ylabel('y-axis');legend('Hyperbola');```运行上述示例代码后,可以得到如下图形演示:【插入圆锥双曲线图形】四、总结本文介绍了如何使用Matlab的函数代码绘制圆锥双曲线,并提供了具体的示例代码和图形演示。
二阶偏微分方程的 Matlab有限元法求解摘要:本文基于偏微分方程有限元法求解原理,运用Matlab中的偏微分方程工具箱(PDE Toolbox)对三类典型的二阶偏微分方程:椭圆型方程、双曲线型方程和抛物线型方程算例进行求解,为求解偏微分方程的提供参考。
关键词:偏微分方程,有限元,Matlab偏微分方程工具箱0引言偏微分方程定解问题是描述许多自然现象或工程问题的最重要的数学模型,应用非常广泛[1]。
解析法只能求解非常简单的偏微分方程,远远不能满足科学研究和工程实际的需要。
随着计算机技术和科学计算的迅速发展,数值解法成为求解偏微分方程的重要工具[2-3]。
数值解法将连续问题离散化,最后将偏微分方程化成线性代数方程组。
根据离散化方法不同,偏微分方程数值解法主要有差分法和有限元法。
有限元法是分片定义试函数与变分原理相结合的产物。
它能适应各种形状的区域,且通用性强,现已成为求解偏微分方程定解问题的一种有效数值方法[4]。
本文首先简述了偏微分方程有限元法原理,然后,对Matlab中的偏微分方程工具箱(Partial Differential Equations Toolbox)的功能和求解思路进行了阐述[5-6],最后,给出了用PDE Toolbox求解椭圆方程、、双曲线方程和抛物线方程的计算实例。
1偏微分方程有限元法原理偏微分方程有限元法的基本思想是将实际上连续的整个求解域进行离散化处理,即用一些假想的面或线将求解域分割为一系列的单元,各个单元之间仅在有限个节点处相互连接。
取未知函数的节点值作为基本未知量,在每个单元上选取一个近似的插值函数表示单元中场函数的分布规律。
利用变分原理来获得单元的刚度方程,然后按一定的规则把所有单元的刚度方程组集合起来,经适当的边界条件处理,便得到整个系统的总体方程组。
这样,偏微分方程便转化为一组常微分方程。
最后,求解总体方程组,得到节点值和用插值函数确定整个求解域上的场函数。
第2章MATLAB数据及运算2.1 变量及其操作一、变量命名规则1.变量名、函数名对字母大小写是敏感的myfile与MyFile表示不同的变量sin是MATLAB定义的正弦函数名,但SIN、Sin都不是2.变量名的第一个字符必须是英文字母3.变量名最多可包含63个字符(英文、数字和下划线)4.变量名中不能包含空格、标点my_exemple12是合法的变量名,12exemple、_exemple12、my exemple12、my.exemple12是非法变量名二、MATLAB默认的预定义变量每当MATLAB启动时,不经定义和赋值就会产生一些变量,称为MATLAB 默认的预定义变量这些变量都可以重新赋值。
但最好不要对这些变量名重新赋值例1 用键盘在MATLAB指令窗中输入以下内容epseps ——机器的浮点运算误差限。
PC机上eps的默认值为2.2204×10-16,若某个量的绝对值小于eps,则可以认为这个量为0。
例2 用键盘在MATLAB指令窗中输入以下内容1/0,1.e1000,log(0)Inf ——无穷大量+ ∞的MATLAB表示,也可以写成inf 。
同样地,- ∞可以表示为- Inf 。
在MATLAB 程序执行时,即使遇到了以0 为除数的运算,也不会终止程序的运行,而只给出一个“除0”警告,并将结果赋成Inf ,这样的定义方式符合IEEE 的标准。
从数值运算编程角度看,这样的实现形式明显优于C语言。
例3 用键盘在MATLAB指令窗中输入以下内容0/0,inf/inf,inf*0注意在MATLAB 中,即使遇到以0为除数的运算,程序也不会终止运行。
这时只给出一个警告,并将结果赋给inf 或NaNNaN —— 不定式( not a number ) ,通常由 0 / 0 运算、Inf / Inf 及其他可能的运算得出。
NaN 是一个很奇特的量,如 NaN 与Inf 的乘积仍为 NaN 。
辽宁工程技术大学上机实验报告用MATLAB求解质点振动方程振动是日常生活和工程技术中常见的一种运动形式。
利用常系数线性微分方程的理论来讨论有关自由振动和强迫振动的相关问题。
利用MATLAB数学软件大致可分四类情况:(1)无阻尼自由振动情况;(2)有阻尼自由振动;(3)无阻尼强迫振动;(4)有阻尼强迫振动求其数值解和解析解;MATLAB软件求解微分方程解析解的命令“ dsolve() ”求通解的命令格式:(’微分方程’自变量'注:微分方程在输入时,一阶导数y'应输入Dy,y'应输入D2y等,D应大写。
1, 无阻尼自由振动情况:常见的数学摆的无阻尼微小振动方程代码如下:>> t=0:pi/50:2*pi;>> y=2*s in( 3*t+2);>>plot(t,y,'b')2 ! ----------------- B------------------ , ------------------- p ----------------- , ------------------ , ------------------- , -----------------1.5 -\ ;1X ; '| - '■' ■I,°.5 ■-! I-0.5 --1 ■-\ : ■-1.5-2 ........................ ....................................................................................................................0 1 2 3 4 5 6 72, 有阻尼自由振动由无阻尼振动的通解可以看出,无阻尼振动是按照正弦规律运动的,摆动似乎可以无限期的进行下去,但事实上,空气从在阻力,在运动时,我们必须把空气阻力考虑在内,所以我们得到有阻尼摆动方程为:记u/m=2n,g/l=w A2,这里n,w是正常数,所以:y=dsolve('D2y+2* n*Dy+wA2*y=0','t'); ( 4.43)解得:y = C3*exp(-t*(n + ((n + w)*(n - w))A(1/2))) + C2*exp(-t*(n - ((n + w)*(n - w))A(1/2)))(1)小阻尼情形:n<w时,方程(4.43)的通解为:y=exp(-n*t)*(c1*cos(w1*t)+c2*si n(w1*t))和前面无阻尼的情形一样,可以把上式的通解改写为一下形式:y=A*exp(-n*t)*si n(w1*t+Q), (4.45)这里的A,Q为任意常数。
双曲守恒律方程的Lax—Wendroff时间离散WENO格式作者:李兴华孙阳艾晓辉来源:《哈尔滨理工大学学报》2017年第06期摘要:双曲守恒型方程的高精度、高分辨率计算格式的研究一直是计算流体力学的热点问题。
针对原WENOJS格式分辨率较低和计算量偏大的不足问题,提出利用简单的重构数值通量的方法以提高计算效率,构造了新的简单限制器的5阶迎风型WENO格式。
通过MATLAB软件的仿真对LaxWendroff WENOJS格式、LaxWendroff简单限制器WENO格式、RungeKutta WENOJS格式、RungeKutta简单限制器的WENO格式的实验结果进行了分析,并比较了这四种计算格式的计算效率和计算精度。
数值实验表明:新格式LaxWendroff简单限制器WENO格式在保持原WENO分辨率的前提下,计算速度有明显提高,减少了20%的计算时间。
关键词:高精度;WENO;RungeKutta;LaxWendroff;时间离散DOI:10.15938/j.jhust.2017.06.026中图分类号: O175文献标志码: A文章编号: 1007-2683(2017)06-0134-06Abstract:The research of high accuracy and high resolution schemes have been a hot topic in computational mathematics. According to low resolution and large amount of calculation of the original WENOJS scheme, we propose a simple new limiter fifth order upwind WENO scheme to reconstruct the numerical flux of the simple structure to improve the computational efficiency. Compared with other efficient high accuracy schemes such as ENO and WENO, it is shown that the computational cost of this scheme is less than that of WENOJS in the same accuracy. By use of MATLAB software, we compared and analyzed computational efficiencies and computational accuracies of LaxWendroff WENOJS scheme, LaxWendroff simple limiter WENO scheme,RungeKutta simple limiter WENO scheme and RungeKutta WENOJS scheme. The numerical results show that the new LaxWendroff simple limiter WENO scheme can improve the computing speed and reduce the computing time by 20% while maintaining the original WENO resolution.Keywords:high accuracy; WENO; RungeKutta; LaxWendroff; time discretization0 引言双曲守恒律方程(组)为科学理论和工程应用研究中一类非常重要的偏微分方程(组)。
matlab 双曲线型偏微分方程引言:双曲线型偏微分方程是数学中的重要分支之一,它在物理学、工程学以及其他领域中具有广泛的应用。
本文将详细介绍双曲线型偏微分方程的定义、特点以及求解方法,并通过具体的例子来说明其应用。
正文:一、双曲线型偏微分方程的定义和特点1.1 定义双曲线型偏微分方程是指具有双曲线型的主部的偏微分方程。
一般形式为:a(x, y)u_xx + 2b(x, y)u_xy + c(x, y)u_yy + d(x, y)u_x + e(x, y)u_y + f(x, y)u = g(x, y)其中,a(x, y),b(x, y),c(x, y),d(x, y),e(x, y),f(x, y),g(x, y)为已知函数,u 为未知函数。
1.2 特点双曲线型偏微分方程的特点主要有以下几点:(1)方程中的主部具有双曲线型,即主部的二次型矩阵的特征值为实数且不全为零。
(2)方程中的混合导数项存在,即存在2b(x, y)u_xy这样的项。
(3)方程中的系数函数可能是非线性的,这使得求解过程更加复杂。
(4)方程的解通常需要满足一定的边界条件或初始条件。
二、双曲线型偏微分方程的求解方法2.1 分离变量法分离变量法是解双曲线型偏微分方程的常用方法之一。
其基本思想是将未知函数u表示为两个变量x和y的乘积形式,然后将方程分解为两个关于x和y的常微分方程,再求解这些常微分方程得到u的解。
2.2 特征线法特征线法是解双曲线型偏微分方程的另一种常用方法。
该方法的关键是通过寻找方程的特征线,将原方程转化为关于特征变量的常微分方程,然后求解这些常微分方程得到u的解。
2.3 变量替换法变量替换法是解双曲线型偏微分方程的另一种有效方法。
通过适当的变量替换,可以将原方程转化为更简单的形式,然后再进行求解。
三、双曲线型偏微分方程的应用举例3.1 波动方程波动方程是双曲线型偏微分方程的典型例子。
它描述了波动现象的传播规律,广泛应用于声学、光学、电磁学等领域。
双曲型方程基于MATLAB 的数值解法(数学1201,陈晓云,41262022)一:一阶双曲型微分方程的初边值问题0,01,0 1.(,0)cos(),0 1.(0,)(1,)cos(),0 1.u u x t t xu x x x u t u t t t ππ∂∂-=≤≤≤≤∂∂=≤≤=-=≤≤ 精确解为 ()t x cos +π二:数值解法思想和步骤 2.1:网格剖分为了用差分方法求解上述问题,将求解区域{}(,)|01,01x t x t Ω=≤≤≤≤作剖分。
将空间区间[0,1]作m 等分,将时间[0,1]区间作n 等分,并记1/,1/,,0,,0j k h m n x jh j m t k k n ττ===≤≤=≤≤。
分别称h 和τ为空间和时间步长。
用两簇平行直线,0,,0j k x x j m t t k n =≤≤=≤≤将Ω分割成矩形网格。
2.2:差分格式的建立0u ut x∂∂-=∂∂ 2.2.1:Lax-Friedrichs 方法对时间、空间采用中心差分使得2h11111)(21u u xu u u u u tukj kj kj k j kjk j-+-++-=+=-=∂∂∂∂ττ则由上式得到Lax-Friedrichs 格式111111()202k k k k k j j j j j u u u u u hτ+-+-+-+-+=截断误差为()[]k k kj h j j R u L u Lu =-111111()22k k k k k k k j j j j j j ju u u u u u u h t xτ+-+-+-+-∂∂=+-+∂∂232223(),(0,0)26kkjj u u h O h j m k n t xττ∂∂=-=+≤≤≤≤∂∂ 所以Lax-Friedrichs 格式的截断误差的阶式2()O h τ+ 令/s h τ=:则可得差分格式为111111(),(0,0)222k k k kk j j j j j s s u u u u u j m k n +--++=-+++≤≤≤≤ 0cos()(0)j j u x j m π=≤≤0cos(),cos(),(0)k kk m k u t u t k n ππ==-≤≤其传播因子为: ()()()e e Gh i h i s h i h i σσσστσ---=-+e e 221, 化简可得:()()()()()hs G h is h G στσσστσsin 11,sin cos ,222--=-= 所以当1s ≤时,()1,≤τσG ,格式稳定。
* 2.2.2:LaxWendroff 方法用牛顿二次插值公式可以得到LaxWendroff 的差分格式,在此不详细分析,它的截断误差为()h 22+Oτ,是二阶精度;当2s ≤时,()1,≤τσG ,格式稳定。
在这里主要用它与上面一阶精度的Lax-Friedrichs 方法进行简单对比。
2.3差分格式的求解因为1s ≤时格式稳定,不妨取1/90h 1/100==τ ,则s=0.9差分格式111111(),(0,0)222k k k k k j j j j j s s u u u u u j m k n +--++=-+++≤≤≤≤ 写成如下矩阵形式:1011121211110000022221100022221100000022220000000000000k k k k k k m m k m k m s s u u s s u u u us s u u +++---⎛⎫-+ ⎪⎛⎫⎛⎫ ⎪ ⎪ ⎪ ⎪-+ ⎪ ⎪ ⎪⎪ ⎪ ⎪= ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪-+ ⎪ ⎪ ⎪ ⎪⎪ ⎪ ⎪⎝⎭⎝⎭ ⎪ ⎪⎝⎭则需要通过对k 时间层进行矩阵作用求出k+1时间层。
对上面的矩阵形式通过matlab 编出如附录的程序求出数值解、真实解和误差。
2.5 算法以及结果function [P U E x t]=PDEHyperbolic(uX,uT,M,N,C,type)format long%一阶双曲型方程的差分格式%[P U E x t]=PDEHyperbolic(uX,uT,M,N,C,phi,psi1,psi2,type) %方程:u_t+C*u_x=0 0 <= t <= uT, 0 <= x <= uX %初值条件:u(x,0)=phi(x) %输出参数:U -解矩阵 % x -横坐标 % t -纵坐标,时间% 输入参数:uX -变量x 的上界 % uT -变量t 的上界 % M -变量x 的等分区间数 % N -变量t 的等分区间数 % C -系数% phi -初值条件函数,定义为内联函数 % psi1,psi2 -边值条件函数,定义为内联函数 % type -差分格式,从下列值中选取% -type='LaxFriedrichs',采用Lax-Friedrichs 差分格式求解 % -type='LaxWendroff',采用Lax-Wendroff 差分格式求解h=uX/M;%变量x的步长k=uT/N;%变量t的步长r=k/h;%步长比x=(0:M)*h; t=(0:N)*k;U=zeros(M+1,N+1);%初值条件for i=1:M+1U(i,1)=cos(pi*x(i));P(i,1)=cos(pi*x(i));E(i,1)=0;end%边值条件for j=1:N+1U(1,j)=cos(pi*t(j));E(1,j)=0;P(1,j)=cos(pi*t(j));U(M+1,j)=-cos(pi*t(j));P(M+1,j)=-cos(pi*t(j));E(M+1,j)=0;endswitch typecase'LaxFriedrichs'if abs(C*r)>1disp('|C*r|>1,Lax-Friedrichs差分格式不稳定!')end%逐层求解for j=1:Nfor i=2:MU(i,j+1)=(U(i+1,j)+U(i-1,j))/2-C*r*(U(i+1,j)-U(i-1,j))/2;P(i,j+1)=cos(pi*(x(i)+t(j+1)));E(i,j+1)=abs(U(i,j+1)-cos(pi*(x(i)+t(j+1))));endend%Lax-Wendroff差分格式case'LaxWendroff'if abs(C*r)>1disp('|C*r|>1,Lax-Wendroff差分格式不稳定!')end%逐层求解for j=1:Nfor i=2:MU(i,j+1)=U(i,j)-C*r*(U(i+1,j)-U(i-1,j))/2+C^2*r^2*(U(i+1,j)-2*U(i,j)+U(i-1,j))/2;P(i,j+1)=cos(pi*(x(i)+t(j+1)));E(i,j+1)=abs(U(i,j+1)-cos(pi*(x(i)+t(j+1))));endendotherwisedisp('差分格式类型输入有误!')return;endU=U';P=P';E=E';%作出图形精确解mesh(x,t,P);title('一阶双曲型方程的精确解图像');xlabel('空间变量x'); ylabel('时间变量t'); zlabel('一阶双曲型方程的解P')%作出图形数值解mesh(x,t,U);title([type '格式求解一阶双曲型方程的解的图像']);xlabel('空间变量 x'); ylabel('时间变量 t'); zlabel('一阶双曲型方程的解 U')return;命令窗口输入:>>uX=1;uT=1;M=90;N=100;C=-1;phi=inline('cos(pi*x)');psi1=inline('cos(pi*t)');psi2=inline('-c os(pi*t)');type='LaxFriedrichs'或type='LaxWendroff';>>[P U E x t]=PDEHyperbolic(uX,uT,M,N,C,type)从matlab的数值解法结果中抽出一部分数据进行比较表1LaxFriedrichs表2LaxWendroff格式备注:本来100≤≤0≤≤,,但是由于matlab中下标必须从大于0开始,j90k所以在程序中101≤≤≤,91k1≤1j图像分析:结果分析:从表1和表2可以看出LaxFriedrichs格式和LaxWendroff格式的真值得误差都比较小,而LaxWendroff格式虽然精度比LaxFriedrichs的精度高,但是在网格点划分比较细的情况下,二者的差别不大。
从三个图像的结果看出,二者都拟合的相当好,并且结果都稳定。