弦振动方程-数值求解02

合集下载

弦振动方程-数值求解02

弦振动方程-数值求解02

数学物理方程之基于数值计算方法的弦振动方程求解2数学物理方法中的平行四边形法则目录摘要、关键词…………………………………………… 2页有限差分法介绍………………………………………… 3页程序描述………………………………………………… 6页计算机处理……………………………………………… 8页Matlab作图…………………………………………… 10页特别鸣谢………………………………………………… 11页摘要、关键词摘要:继上次关于弦振动方程的“平行四边形法则”求解之后,我们又从数值计算的角度入手,对弦振动方程进行计算和模拟,从而验证“平行四边形法则”解弦振动方程的正确性。

关键词:有限差分法、数值计算、弦振动方程附: 弦振动方程:4(0,)(1,)0(,0)(1),(,0)8tt xxtu uu t u tu x x x u t x =⎧⎪==⎨⎪=-=⎩211((1))()'()()''()()+()()2!n n nu i h u ih u ih h u ih h u ih h -=+-+-+-……!211((1))()'()''()+()2!n n nu i h u ih u ih h u ih h u ih h +=+++ ……!()((1))'()()u ih u i h u ih o h h--=+((1))()'()()u i h u ih u ih o h h+-=+2((1))((1))'()()2u i h u i h u ih o h h+--=+有限差分法介绍以弦振动方程为例:2(,)(0,)(,)0(,0)()(,0)()tt xx t u a u f x t u t u l t u x x u x x ⎧=+⎪==⎪⎨=Φ⎪⎪=ψ⎩对于一定的u (x ,t ),我们用“差分”代替“微商”,从而将 数差值描述,可得:以及将第一个式子的右边第一项移至左边,得: ^…同理可得, 两式做差:22((1))((1))ih =h u i h u i h u +--()(,)(,)ni u x t u i x n t u =∆∆=1122(,)n n n i i i tt tt u u u u u i n t +--+==∆1122(,)n n n i i i xx xx u u u u u i n x +--+==∆21122(,)n n n i i i tt uu u u a f i n x+--+=+∆2222ta r x∆=∆ 2122122112(1)(,)n n n n n i i i i iu r u r u r u n t f i n ---+-=+-+-+∆用中心差分的一阶导数表示二阶导数,化简: 由此引入 则 则弦振动方程 可以表示为:我们定义 为网格比则由此可知,每一个格点u (i ,11(,0)()()2i it u u u x x i t--=ψ=ψ=∆(,0)t u i 1i u 202020221121221221100,/10.5(2(1)2()(,)0,0/12(1)(,)ni i i i n n n n i i i i i l x u r u r u r u t i x t f i x n t n i l x r u r u r u n t f i x n t +----+-=∆-⎧⎪=+-++∆Φ∆+∆∆∆=<<∆-⎨⎪+-+-+∆∆∆⎩ 其他n)均由u (i+1,n+1)、u (i ,n )、u(i-1,n-1)、 u(i,n-2)等其余四点所确定:由此我们可以采用“递归”的思想,借助计算机进行快速计算,从而得到各个格点的值.值得注意的是,①在边界上u ≡0.②在初始层上的点(即u (i ,0))无法用上述公式计算,还需借助初始条件,即:012020201211(,0)()2(1)(,1)i i i i i i u i u x u r u r u r u u t f i -+-∴==Φ=+-+-+由 和 两式相加,消去可得020*********.5(2(1)2()(,)i i i i u r u r u r u t i x t f i x n t +-=+-++∆Φ∆+∆∆∆综上:届此,我们可以将此式编入程序(采用“递归”思想),详细代码见下一节。

弦振动方程cauchy问题广义解的结构

弦振动方程cauchy问题广义解的结构

弦振动方程cauchy问题广义解的结构
弦振动方程,又称波动方程,是利用物理学中最基本原理——动
量定理(即动能定理)解决实际问题的通用数学工具。

它通常用来研
究一般固体的动态运动问题,常被用于弦的振动及其他振动的研究中。

处理弦振动方程的cauchy问题,其广义解的结构可表示为:解的形式:
$$u(x,t) = f(x-ct) + g(x+ct)$$
其中,$f(x-ct)$与$g(x+ct)$可看作特殊定解,均是$x$和
$ct$的周期函数,其波形由所选常数决定。

比如对$x$方向上的弦有
$f(x-ct) = A\cos2\pi(x-ct)$;而$g(x+ct) = B\sin2\pi(x+ct)$,
其中$A$与$B$可自行选取,其波形即由该选取的常数决定。

弦振动方程的cauchy问题的广义解的结构可认为是$u(x,t) =
f(x-ct) + g(x+ct)$的形式。

特别的,若把$f(x-ct)$与$g(x+ct)$都
简化为特殊的周期函数,如正弦函数或余弦函数,其波形将完全受常
数决定,其解即可表示为某种特殊定解函数。

总之,弦振动方程的cauchy问题的广义解的结构可记为
$$u(x,t) = f(x-ct) + g(x+ct)$$
其特殊情况下,特别定解的波形可完全由常数决定,可由正弦函数或
余弦函数构成的形式来表示。

弦振动方程数值解

弦振动方程数值解

弦振动方程数值解弦振动方程数值解赵磊;王琳;宋林强【期刊名称】《金田》【年(卷),期】2015(000)005【摘要】the string vibration equation is using mathematical language to describe the laws of physics , so this article from the perspective of physics , the standard form of equation is deduced , and then on the basic theory re-search and program verification . This paper introduces the finite difference method , and use modern mathematical tool Matlab to simulate the finite differ-ence method to solve the initial -boundary value problem of string vibration e-quation for the purpose of this article mentioned theory to a certain extent of validation.%弦振动方程是用数学语言来描述的物理规律,所以本文在从物理角度出发,对其进行基础理论研究和程序验证。

本文介绍了有限差分法,并利用现代数学工具Matlab实现模拟了有限差分法求解弦振动方程的初边值问题,对于本文所提到的理论进行了验证。

【总页数】2页(261-261,213)【关键词】弦振动;有限差分;显格式【作者】赵磊;王琳;宋林强【作者单位】成都理工大学管理科学学院;成都理工大学管理科学学院;成都理工大学管理科学学院【正文语种】中文。

弦振动的势能

弦振动的势能

例1.两端固定的棒 边界条件:
初始条件: 棒的总位移:
kn

n
l
,
n

nc
l
,
由下式决定:
例2.两端自由的棒 边界条件:
初始条件:
棒的总位移:
kn

n
l
,
n

nc
l
,
待定系数由初始条件确定。
例3.一端自由一端固定的棒 边界条件:
初始条件:
棒的总位移:
n
kn
2, l
设:
取通解形式为:
则: 得到:
于是弦的振动位移可以完全确定。
例题:
求弦振动方程。
解: 初始条件为:
(如图所示)
根据初始条件求得:
因此:
振动方程确定
四、弦振动的能量 动能为:
势能为:
即: 弦的总能量:
根据: 得:
利用正余弦函数的正交性质:
弦在初始时刻从外界获得的初能量
E 2
A=0

如令:
则: 上式被称为:弦的固有频率。
因此,根据前面讨论可知:集中参数系 统只有一个固有频率,但分布参数系统有多 个固有频率。
最后得方成的特征解:
=
低次振动方式的振幅分布图
kn

n
c

2 n

n
l
为 n 次振动方式的波数
波节位置: 波腹位置:
方程一般解:
2. 初始条件定常数
l 0
02
dx

T 2
Байду номын сангаас
l ( 0 )2 dx
0 x
等于振动所具有的总能量。

差分法解弦振动方程

差分法解弦振动方程

差分法解弦振动方程引言弦振动是物理学中一个重要的研究领域,广泛应用于乐器制作、声学研究、结构工程等方面。

弦振动可以通过数学模型来描述,其中最常见的是弦振动方程。

差分法是一种数值解法,可以用于求解弦振动方程。

本文将介绍差分法的基本原理和应用,以及如何使用差分法来解决弦振动方程。

首先将介绍弦振动的基本概念和数学模型,然后详细讲解差分法的原理和步骤,并给出一个具体的例子来说明如何使用差分法求解弦振动方程。

弦振动方程在介绍差分法之前,我们先来回顾一下弦振动方程。

假设有一根长度为L的均匀弦,其横向位移u(x, t)可以通过以下偏微分方程描述:∂²u/∂t² = c² ∂²u/∂x²其中,c是波速。

这个方程描述了弦上任意一点处位移随时间变化的规律。

求解这个方程可以得到整个弦上各点的位移随时间的变化情况,从而揭示了弦振动的特性。

差分法原理差分法是一种数值解法,其基本思想是将连续的问题离散化为有限个离散点上的近似问题。

对于弦振动方程,可以将空间和时间都离散化,然后通过逐步迭代计算得到数值解。

具体来说,差分法将空间和时间划分为一系列小区间。

设弦上的位置为x,时间为t,则可以将弦划分为一系列小段,每个小段长度为Δx;同时将时间划分为一系列小步长,每个小步长为Δt。

然后通过近似求导公式来近似表示偏微分方程中的导数项。

差分法的核心思想是使用近似导数来替代真实导数,并通过迭代计算逐渐逼近真实解。

在求解弦振动方程时,我们需要用到以下两个近似公式:1.空间二阶导数近似公式:∂²u/∂x² ≈ (u(x+Δx, t) - 2u(x, t) + u(x-Δx, t)) / Δx²2.时间二阶导数近似公式:∂²u/∂t² ≈ (u(x, t+Δt) - 2u(x, t) + u(x, t-Δt)) / Δt²通过将这两个近似公式代入弦振动方程,我们可以得到一个差分方程,即用差分形式表示的弦振动方程。

2波动方程03-弦振动方程初值问题的求解

2波动方程03-弦振动方程初值问题的求解
x
1 F (0) − G (0) G ( x) = , ∫ψ (s)ds − 2a 0 2
x
于是得:
u ( x, t ) = F ( x − at ) + G ( x + at ) x − at x + at 1 1 =− ∫ ψ (s)ds + 2a ∫ ψ (s)ds 2a 0 0 0 x + at 1 1 = ∫atψ (s)ds + 2a ∫ ψ ( s)ds 2a x − 0
由课本第31页练习16的结论,方程 在变换
{
ξ = x − at , η = x + =utt − a 2u xx = 0
ξ +η
下化为 uξη = 0, 积分两次得:
2 η −ξ t= ; 2a
,
u = F (ξ ) + G (η ),
其中 F 和 G 为 C (R ) 上的任意函数。 于是,
我们只要利用初始条件来确定这两个函数,即可得出问题 (2)(3)(4)之解。
u ( x, t ) t =0 = [ F ( x − at ) + G ( x + at ) ] t =0 = F ( x) + G ( x) = 0, ut ( x, t ) t =0 = [ − aF ′( x − at ) + aG′( x + at ) ] t =0
=−
ϕ ( x + at ) + ϕ ( x − at )
2
1 − 2a
x + at
x − at
∫ ψ ( s ) ds
t x + a ( t −τ ) ⎤ 1 ⎡ − ∫ ⎢ ∫ f ( s,τ )ds ⎥ dτ 2a 0 ⎢ x − a ( t −τ ) ⎥ ⎣ ⎦

1方程导出01-弦振动方程

1方程导出01-弦振动方程

ρ
, f ( x, t ) =
f 0 ( x, t )
ρ
.
注意:由前面的推导,边界张力的垂直分量为:
∂u ( x, t ) Ta ⋅ i u = −T0 , ∂x x = a
u
∂u ( x, t ) Tb ⋅ i u = T0 . ∂x x =b
f0
Tax
A
Ta
Tay
αa
B
Tby
αb
Tbx
Tb
a
b
想的曲线。
∂u ( x, t ) < < 1 ,故 其 高 阶 项 可 近 似 看 着 为 0 。 微小的振动 ─ ∂x
外力── 线密度可设为 f0 ( N / m);方向:f0 > 0向上,f0<0向下。 拉紧——弦的张力随时间的变化可忽略不计。
4.受力分析及各物理量计算公式
①.受力分析: 如图:小段弦受外力、张力共同作用
问题的数学提法:
设 刻 , 对 应 于 x点 处 的 位 移 为 u ( x , t ) , 求 函 数 t 时 u = u ( x, t )
1
0.5 u 0.5 0
u 1
2
x 1 2 3 4 5 6
-0.5 -0.5 -1 -1 0
1.5 1
t
2 0.5 x 4 6 0
3.分析、假设
①.波动原因: 对 速度变化,当把小段弦视作质点时,这小段弦服从Newton 第二定律:F=ma(外力的合力=质量*加速度)。 ②.术语及假设: 柔软── 抗拉伸,不抗弯曲,从而拉力与弦线相切。 均匀── 弦的线密度为常数,可设为ρ kg/m。 细弦── 弦的直径与长度之比远远小于1,弦可视为理

∂u ∂2u − 2 = u +1 ∂t ∂x

第八章 弦振动方程初值问题的达朗贝尔解

第八章 弦振动方程初值问题的达朗贝尔解

x at
(t x / a ) 1 2a
x at
x at x at

( )d
1 2a 1 2a 1 2a 1 2a

0
1 ( )d 2a 1 ( )d 2a
x at

0
( )d ( )d
x at

1 ( x) ( )d 2a
x
x x1
( x )
x
x1 x x2
x x2
1 1 ( )d 0d 2a 2a
x1
x
x
0
x
0 1 1 ( x ) ( )d 2a [ 0d 0 x 1d ] 2a ( x x1 ) 2a 1
u(0, t ) 0 ,作奇延拓:
( x ) ( x )
( x ) ( x ) ( x )
( x ) ( x )
( x 0) ( x 0)
( x ) ( x ) ( x )
( x 0) ( x 0)
1 1 u( x , t ) [( x at ) ( x at )] at ( )d 2 2a x
u 2u u ut u t ut a ( u u )
utt a 2 ( u 2u u )
2 代入方程 utt a uxx
得: u 0
u c( )
u( , ) c( )d f1 ( ) f 2 ( )
at x

0
c ( )d 2
固得:
u( x , t ) f 2 ( ( x at )) f 2 ( x at ) 1 1 [ (at x ) ( x at )] x ( )d 2 2a at
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数学物理方程之基于数值计算方法的弦振动方程求解2数学物理方法中的平行四边形法则目录摘要、关键词…………………………………………… 2页有限差分法介绍………………………………………… 3页程序描述………………………………………………… 6页计算机处理……………………………………………… 8页Matlab作图…………………………………………… 10页特别鸣谢………………………………………………… 11页摘要、关键词摘要:继上次关于弦振动方程的“平行四边形法则”求解之后,我们又从数值计算的角度入手,对弦振动方程进行计算和模拟,从而验证“平行四边形法则”解弦振动方程的正确性。

关键词:有限差分法、数值计算、弦振动方程附: 弦振动方程:4(0,)(1,)0(,0)(1),(,0)8tt xxtu uu t u tu x x x u t x =⎧⎪==⎨⎪=-=⎩211((1))()'()()''()()+()()2!n n nu i h u ih u ih h u ih h u ih h -=+-+-+-……!211((1))()'()''()+()2!n n nu i h u ih u ih h u ih h u ih h +=+++ ……!()((1))'()()u ih u i h u ih o h h--=+((1))()'()()u i h u ih u ih o h h+-=+2((1))((1))'()()2u i h u i h u ih o h h+--=+有限差分法介绍以弦振动方程为例:2(,)(0,)(,)0(,0)()(,0)()tt xx t u a u f x t u t u l t u x x u x x ⎧=+⎪==⎪⎨=Φ⎪⎪=ψ⎩对于一定的u (x ,t ),我们用“差分”代替“微商”,从而将 数差值描述,可得:以及将第一个式子的右边第一项移至左边,得: ^…同理可得, 两式做差:22((1))((1))ih =h u i h u i h u +--()(,)(,)ni u x t u i x n t u =∆∆=1122(,)n n n i i i tt tt u u u u u i n t +--+==∆1122(,)n n n i i i xx xx u u u u u i n x +--+==∆21122(,)n n n i i i tt uu u u a f i n x+--+=+∆2222ta r x∆=∆ 2122122112(1)(,)n n n n n i i i i iu r u r u r u n t f i n ---+-=+-+-+∆用中心差分的一阶导数表示二阶导数,化简: 由此引入 则 则弦振动方程 可以表示为:我们定义 为网格比则由此可知,每一个格点u (i ,11(,0)()()2i it u u u x x i t--=ψ=ψ=∆(,0)t u i 1i u 202020221121221221100,/10.5(2(1)2()(,)0,0/12(1)(,)ni i i i n n n n i i i i i l x u r u r u r u t i x t f i x n t n i l x r u r u r u n t f i x n t +----+-=∆-⎧⎪=+-++∆Φ∆+∆∆∆=<<∆-⎨⎪+-+-+∆∆∆⎩ 其他n)均由u (i+1,n+1)、u (i ,n )、u(i-1,n-1)、 u(i,n-2)等其余四点所确定:由此我们可以采用“递归”的思想,借助计算机进行快速计算,从而得到各个格点的值.值得注意的是,①在边界上u ≡0.②在初始层上的点(即u (i ,0))无法用上述公式计算,还需借助初始条件,即:012020201211(,0)()2(1)(,1)i i i i i i u i u x u r u r u r u u t f i -+-∴==Φ=+-+-+由 和 两式相加,消去可得020*********.5(2(1)2()(,)i i i i u r u r u r u t i x t f i x n t +-=+-++∆Φ∆+∆∆∆综上:届此,我们可以将此式编入程序(采用“递归”思想),详细代码见下一节。

程序描述C语言:#include <stdio.h>#include <stdlib.h>#define imax 10 //定义长、宽格点数,其数值参考计算机性能而定#define jmax 60double f(double i,double n);double u(int i,int n);double FEI(double x);double PUSI(double x);double l=1,t=3; //设l=1,t=3double dert_t,dert_x; //长宽格距double R;int main (){int i,n,a;double A[imax][jmax];FILE *fp;dert_x=l/imax;dert_t=t/jmax;a=2; //a的值R=a*a*dert_t*dert_t/dert_x/dert_x;printf("%lf\n",R);if((fp=fopen("G:\\matlab\\myfile.txt","r+"))==NULL) //创建文件{printf("cannnot open file!\n");return 0;}for(n=0;n<jmax;n++){for (i=0;i<imax;i++){A[i][n]=u(i,n);printf("%9.5lf ",A[i][n]);fprintf(fp,"%9.5lf",A[i][n]);fputs(" ",fp);}printf("\n");fputs("\n",fp);}fclose(fp);return 0;}double u(int i,int n) //函数u(x,t){double result;if(i==0||i==imax-1){result=0;}else{if(n==0){result=FEI(i*dert_x);}else if(n==1){result=0.5*(R*R*u(i+1,0)+2*(1-R*R)*u(i,0)+R*R*u(i-1,0)+2*dert_t*PUSI( x)+dert_t*dert_t*f(i*dert_x,n*dert_t));//result=0.5*(u(i+1,0)+u(i-1,0)+2*dert_t*PUSI(i*dert_x));}else{result=R*R*u(i+1,n-1)+2*(1-R*R)*u(i,n-1)+R*R*u(i-1,n-1)-u(i,n-2)+ dert_t*dert_t*f(i*dert_x,n*dert_t);//result=u(i+1,n-1)+u(i-1,n-1)-u(i,n-2);}}return result;}(2)nO double FEI(double x) //u(x,0)=FEI(x)初始条件 {double fei; fei=x*(1-x); return fei; }double f(double i,double n) //外强迫项f(x,t) {double f;f=0; //此函数可以由题变化,此处暂定为0 return f; }double PUSI(double x) //Ut(x,t)=PUSI(x,t) {double PUSI;PUSI=8*x; //一阶导数 return PUSI; }计算机处理在实际操作过程中,鉴于递归调用在后期计算时间上的复杂度以及个人电脑(PC )的性能,我们仅对上节课中所涉及到的弦振动方程(第二页所附)进行了模拟,故对程序中的函数关系式进行了修改(即采用了“//”后面的关系式):注:有程序代码可知,第一行为r2的值:1.000000,随后的数组均输入到文件“myfile.txt”中.文件中数据如下:随后我们可以借助matlab对该文档进行调用,从而绘图,详见下一节。

Matlab作图代码如下(附截图):M=load('G:\matlab\myfile.txt')x=(0:0.9:0.1)t=(0:2.95:0.05)surf(M)xlabel('x')ylabel('t')zlabel('u(x,t)')title('弦振动方程数值计算方法-surf')图像:或。

相关文档
最新文档