MATLAB 常微分方程数值解法

您所在的位置:网站首页 差分法解常微分方程的思想是什么内容 MATLAB 常微分方程数值解法

MATLAB 常微分方程数值解法

#MATLAB 常微分方程数值解法| 来源: 网络整理| 查看: 265

 

 

这道题就是一个引子,可能其他专业同学,对这种问题不甚了解。不过没有关系,丝毫不影响我们今天进行内容的分析。

 

 

题目二:(微分方程边值问题)梁挠度方程数值求解已知: 设一跟长为 L 的矩形截面的梁,两端固定。E 是弹性模量,S 是端点作用力,I(x)是惯性矩,q 是均匀荷载强度,梁的桡度 y(x)满足如下方程,梁及荷载请自行设计。

 

要求:(1)分别用向前差分、向后差分及中心差分方法。

这里,我假设 q=1kN/m ,l=5m,b=300mm,h=180mm,E=10Gpa,S=5kN.经过一系列的带入上面表达式和进行单位的统一计算我们可以得到下面的式子。

                                                   {\color{Purple} y''-\frac{5}{1458}*y=\frac{x^{2}-5x}{2916}}

                                                   {\color{Purple} y(0)=0 ; y(5)=0}

之后的程序都是围绕着这个方程,和两个边界条件进行的。

 

下面是中心差分的matlab程序 

function [A,b,U,D,L,x]= zhongxincafen(a,b,n) %输入时:主意 阿尔法和贝塔的值是要变化的 y''+p(x)*y'+q(x)*y=f(x) % a 是初始值 y(a)=阿尔法,b是最终值 y(b)=贝塔 ,n是分段数 format long h = 0.5;% 有些时候 需要输入 例如 等于 0 disp(h); A=zeros(n-1,n-1); b=zeros(n-1,1); syms x q =[]; p=[]; r=[]; for i =1 :n-1 x=0+i*h; p(i)=0; % 变化 请更改成为 x 的函数 例子 :p(i) =-x/(1+x^2) q(i) =(-5/1458); % 变化 请更改成为 x 的函数 r(i)=(x^2-5*x)/(2916); % 变化 请更改成为 x 的函数 if i == 1 A(1,1)=-2 + h^2 * q(i); A(1,2)= 1 + 0.5 * h * p(i); b(1,1)=h^2* r(i)-(1-0.5*h*p(i))*0; % 初值的阿尔法 elseif i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3