MATLAB论文 1245312肖林.docx

上传人:b****6 文档编号:7120528 上传时间:2023-01-20 格式:DOCX 页数:20 大小:303.13KB
下载 相关 举报
MATLAB论文 1245312肖林.docx_第1页
第1页 / 共20页
MATLAB论文 1245312肖林.docx_第2页
第2页 / 共20页
MATLAB论文 1245312肖林.docx_第3页
第3页 / 共20页
MATLAB论文 1245312肖林.docx_第4页
第4页 / 共20页
MATLAB论文 1245312肖林.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

MATLAB论文 1245312肖林.docx

《MATLAB论文 1245312肖林.docx》由会员分享,可在线阅读,更多相关《MATLAB论文 1245312肖林.docx(20页珍藏版)》请在冰豆网上搜索。

MATLAB论文 1245312肖林.docx

MATLAB论文论文1245312肖林肖林MATLAB语言课程论文Matlab在求解差分方程问题中的应用姓名:

肖林学号:

12010245312专业:

电子信息工程班级:

2010级指导老师:

汤全武学院:

物理电气信息学院完成日期:

2011年12月12日MATLAB在求解差分方程问题中的应用(姓名:

肖林学号120102453122010级)摘要将MATLAB应用于差分方程的计算中,充分发挥了,MATLAB强大而方便的功能,通过对公积金问题、有限差分法、线性常系数差分方程组等的试算表面,MATLAB在解决实际的工程和数学问题中,与其它计算机程序设计语言C、FORTRAN相比,具有使用更为简便、语句功能更强,用户界面良好的特点,适合于在工程计算,尤其是物探数据处理领域推广应用。

关键字MATLAB语言差分方程公积金线性常系数一、问题的提出差分方程是含有未知函数及其导数的方程,满足该方程的函数称为差分方程的解。

差分方程是微分方程的离散化。

一个微分方程不一定可以解出精确的解,把它变成差分方程,就可以求出近似的解。

Matlab是一个为科学和工程计算而专门设计的高级交互式的软件包。

它的数值分析、矩阵运算、信号处理和图形显示于一体,构成了一个方便的、界面友好的用户环境。

MATLAB在发达国家已广泛应用于科研院所、工程技术等各个部门,并成为大学生、研究生必备的工具软件,应用MATLAB强大的数学功能通过实例的建模、编程和仿真过程,来简便、直观、高效分析数学问题。

二、差分方程求解公积金问题本例用Matlab数学工具简化计算的方法用差分方程建模的求解数学问题,来培养和提高运用数学计算的方法解决现实生活中实际问题的能力;实验内容如下:

元旦开始,贷款40万,还款期为15年,采用等额本息发还款(即每月还的本金利息和相等),求解如下问题:

1、15年利率不变,则每月还多少恰好还完?

15年总利息多少?

2、若此人想提前到十年还款完毕,则按1中的方式还一年后需一次性还款多少才能使他再十年内还清?

模型建立及理论求解:

上网查阅资料得到公积金贷款的年利率在贷款期限为630年时都为3.87%.由此可得月利率为:

3.87%/12=0.3225%还款期限总共15年,即:

n=15x12=180个月1、15年利率不变,则每月还多少恰好还完?

15年总利息多少?

设还款第k个月后欠款Ak为元,月还款m元,则由Ak变化到Ak+1除了还款还有利息。

设月利率r,得到:

为求m值,设:

易得:

由此可推出Bk的表达式:

由上述推导可得:

由此可得差分方程的解为:

2、若此人想提前到十年还款完毕,则按1中的方式还一年后需一次性还款多少才能使他再十年内还清?

求解分析可得第k个月后欠款总额为:

由此可得,一年后欠款总额为:

欲十年还完,则必须一次还清在1中接下来五年需要还得欠款。

还款六年后即k=6*12=72个月后的总欠款为:

即在一次还清一定数目的欠款之后剩下的九年需要还款总额为:

即需要一次还清的款数为:

分析:

用传统计算方法解决时我们需要列出如上传统方程,这样的计算不仅繁琐费时,而且没有图示很难给以直观的感受,现在我们用MATLAB语言来对此例题做以下解析:

MATLAB程序如下:

r=0.003225;k=180;a0=400000;m=a0*(1+r)k*r/(1+r)k-1;%差分系数p=m*180-400000;%总利息k=12;A12=a0*(1+r)k-m/r*(1+r)k-1;%12个月后欠款k=72;A72=a0*(1+r)k-m/r*(1+r)k-1;%1中方式六年后欠款Q=A12-A72;%一次性还款数mpA12A72Q运行结果如下:

m=2.9328e+003p=1.2790e+005A12=3.7993e+005A72=2.6710e+005Q=1.1283e+005即:

m=2932.76元总利息为:

需要一次性还款数为:

1、若15年利率不变则每月换2932.76元恰好还完;支付的总利息为127896.97元;2、需要在正常还款一年后一次还清112831.84元,才能实现他十年内还清贷款的愿望。

三、有限差分的求解方法设有一个截面为矩形的无限延伸导体槽,槽的宽为16m,高为10m,槽的盖板(导体)同两侧面绝缘,盖板电位是100V,周边电位为0,如图3所示,试分析槽内的电位分布。

NNNN图1方形截面的导体槽分析:

这是一个二维稳定电场的问题,在求解区内(无场源),电位函数满足拉普拉斯方程:

可以应用差分格式:

然后具体给出求解区域边界上节点电位的表达式,已构成完整的差分方程(盖板上利用第一类边界条件:

其余3个边上,利用第二类边界条件,并取2(p)=0)。

具体计算时笔者不采用联立求解有限差分方程组的方法,而是首先对每一节点上的电位赋以初值(零级近似),尔后,根据某个内节点相邻4个点的电位值(包括已知的边值)按差分方程直接计算出该点电位下一级的近似值,通过多次迭代,不断修正,直到相邻两级近似值的变化在允许范围之内,就可以认为节点上的电位值趋近于精确,根据上述算法,采用MATLAB程序语言编制了这一方便易懂的有限差分法源程序。

MATLAB程序编制及说明:

h=1;%步长v0=100;%导体槽盖电位hx=15*h+1;%网格横向节点数hy=9*h+1;%网格纵向节点数%设置零级近似值V1=zeros(hy,hx);%用零距阵对网格节点电位进行初值化V1(hy,:

)=ones(1,hx)*v0;%对沿盖板各节点赋初值100V1(2:

hy-1.2:

hx-1)=ones(hy-2,hx-2)*v0/2;%对内节点赋任意初值V2=zeros(hy,hx);%初值化结果变量%以v1开始迭代计算v2fori=1:

hyforj=1:

hxifi=2hyv2(I,j)=vo;%盖板电位100elseifi=1|j=1|j=hxv2(i,j)=0;%周边电位0elsev2(i,j)=(v1(i,j-1)+v1(i,j+1)+v1(i-1,j)+v1(i+1j)/4;end%拉普拉斯方程endend%用v2代替v1,以v1循环迭代计算v2fork=1:

500%循环次数v1=v2;fori=1:

hyforj=1:

hxifi=hyv2(i,j)=v0;%盖板电压eldeifi=1|j=1|j=hxv2(i,j)=0;%周边电位elsev2(i,j)=(v1(i,j-1)+v1(i,j+1)+v1(i-1,j)+v1(i+1,j)/4;end%拉普拉斯方程endendend%结果成图subplot(1,2,1)%分割图形窗口为1x2个子坐标系,且弟1个为当前坐标系mesh(v2)%绘三维曲面图h1=mesh(v2);set(h1,Linwidth,1,EdgeColor,b)text(-6,10,120,v,FontSize,10);text(-4,12,0,h,FontSize,10);text(18,0,0,b,FontSize,10);holdonaxis(0,17,0,10,0,100);subplot(1,2,2)contour(v2,k-)%绘等值线图text(-2,10,h,FontSize,10);text(17,1,h,FontSize,10);holdon运行结果如下:

(a)(b)图2槽内电位分布三维曲面图(a)及槽内电位等值线图(b)图2为程序计算结果,图a底面为槽截面,纵轴为电位;图b为槽截面的电位分布。

结果表明,有限差分法作为一种数值计算方法,用其差分法方程来近似地代替偏微分方程是最能有效地解决问题,在本例中,如果需要更高的精度,还可以继续计算下去,直到各点的电位数值不再改变为止,但是,如果不缩小h(网格线之间的距离),不会得到很高的精确度,因为差分公式本身的近似程度就决定于h的大小,随着网格节点的增多,内节点也增多,可以计算出更多的点上的电位,工作量也将大大增加。

五、常系数差分方程1、差分方程是在离散时段上描述现实世界中变化过程的数学模型:

例1、某种货币1年期存款的年利率是r,现存入M元,问年后的本金与利息之和是多少?

以k=0时x0=M代入,递推n次可得n年后本息为污水处理厂每天可将处理池的污水浓度降低一个固定比例q,问多长时间才能将污水浓度降低一半?

记第k天的污水浓度ck,则第k+1天的污水浓度为ck+1=(1-q)ck,k=0,1,2,从k=0开始递推n次得代入即求解。

濒危物种的自然演变和人工孵化问题:

Florida沙丘鹤属于濒危物种,它在较好自然环境下,年均增长率仅为1.94%,而在中等和较差环境下年均增长率分别为-3.24%和-3.82%,如果在某自然保护区内开始有100只鹤,建立描述其数量变化规律的模型,并作数值计算。

模型建立:

记第k年沙丘鹤的数量为xk,年均增长率为r,则第k+1年鹤的数量为已知x0=100,在较好,中等和较差的自然环境下r=0.0194,-0.0324,和-0.0382我们利用Matlab编程,递推20年后观察沙丘鹤的数量变化情况Matlab实现:

首先建立一个关于变量n,r的函数functionx=sqh(n,r)a=1+r;x=100;fork=1:

nx(k+1)=a*x(k);end在command窗口里调用sqh函数k=(0:

20);y1=sqh(20,0.0194);y2=sqh(20,-0.0324);y3=sqh(20,-0.0382);round(k,y1,y2,y3)利用plot绘图观察数量变化趋势可以用不同线型和颜色绘图rgbcmykw分别表示红绿兰兰绿洋红黄黑白色:

+o*.Xsd表示不同的线型plot(k,y1,k,y2,k,y3)在同一坐标系下画图plot(k,y2,:

)plot(k,y2,-)plot(k,y2,r)plot(k,y2,y)plot(k,y2,y,k,y1,:

)plot(k,y2,k,y1,:

)plot(k,y2,oy,k,y1,:

)用gtext(r=0.0194),gtext(r=-0.0324),gtext(r=-0.0382)在图上做标记。

人工孵化是挽救濒危物种的措施之一,如果每年孵化5只鹤放入保护区,观察在中等自然条件下沙丘鹤的数量如何变化如果我们想考察每年孵化多少只比较合适,可以令functionx=fhsqh(n,r,b)a=1+r;X=100;Fork=1:

nX(k+1)=a*x(k)+b;Endk=(0:

20);%一个行向量y1=(20,-0.0324,5);%也是一个行向量round(k,y1)%对k,y1四舍五入,但是不改变变量的值plot(k,y1)%ky1是行向量列向量都可以也可以观察200年的发展趋势,以及在较差条件下的发展趋势,也可以考察每年孵化数量变化的影响。

2、一阶线性常系数差分方程的解、平衡点及其稳定性自然环境下,b=0人工孵化条件下令得差分方程的平衡点k时,xkx,称平衡点是稳定的。

3、高阶线性常系数差分方程如果第k+1时段变量Xk+1不仅取决于第k时段变量Xk,而且与以前时段变量有关,就要用高阶差分方程来描述:

一年生植物的繁殖;一年生植物春季发芽,夏天开花,秋季产种,没有腐烂,风干,被人为掠取的那些种子可以活过冬天,其中一部分能在第2年春季发芽,然后开花,产种,其中的另一部分虽未能发芽,但如又能活过一个冬天,则其中一部分可在第三年春季发芽,然后开花,产种,如此继续,一年生植物只能活1年,而近似的认为,种子最多可以活过两个冬天,试建立数学模型研究这种植物数量变化的规律,及它能一直繁殖下去的条件。

模型及其求解记一棵植物春季产种的平均数为c,种子能活过一个冬天的(1岁种子)比例为b,活过一个冬天没有发芽又活过一个冬天的(2岁种子)比例仍为b,1岁种子发芽率a1,2岁种子发芽率a2。

设c,a1,a2固定,b是变量,考察能一直繁殖的条件记第k年植物数量为Xk,显然Xk与Xk-1,Xk-2有关,由Xk-1决定的部分是a1bcXk-1,由Xk-2决定的部分是:

实际上,就是Xk=pXk-1+qXk-2我们需要知道x0,a1,a2,c,考察b不同时,种子繁殖的情况。

在这里假设=100,=0.5,=0.25,c=10,b=0.180.20这样可以用matlab计算了functionx=zwfz(x0,n,b)C=10;a1=0.5;a2=0.25;p=a1*b*c;q=a2*b*(1-a1)*b*c;X1=x0;X2=p*(x1);fork=3:

nX(k)=p*(xk-1)+q*(xk-2);endK=(0:

20);Y1=zwfz(100,21,0.18);Y2=zwfz(100,21,0.19);Y3=zwfz(100,21,0,20);Round(k,y1,y2,y3)Plot(k,y1,k,y2,:

k,y3,o),Gtext(b=0.18),gtext(b=0.19),gtext(b=0.20)结果分析:

(1)

(2)对高阶差分方程可以寻求形如的解。

代入

(1)式得称为差分方程的特征方程。

差分方程的特征根:

方程

(1)的解可以表为:

由初始条件,确定。

,本例中,用待定系数的方法可以求出b=0.18时,=95.64,=4.36,这样实际上,植物能一直繁殖下去的条件是b0.1914、线性常系数差分方程组汽车租赁公司的运营;一家汽车租赁公司在3个相邻的城市运营,为方便顾客起见公司承诺,在一个城市租赁的汽车可以在任意一个城市归还。

根据经验估计和市场调查,一个租赁期内在A市租赁的汽车在A,B,C市归还的比例分别为0.6,0.3,0.1;在B市租赁的汽车归还比例0.2,0.7,0.1;C市租赁的归还比例分别为0.1,0.3,0.6。

若公司开业时将600辆汽车平均分配到3个城市,建立运营过程中汽车数量在3个城市间转移的模型,并讨论时间充分长以后的变化趋势。

模型及其求解记第k个租赁期末公司在ABC市的汽车数量分别为(k),(k),(k)(也是第k+1个租赁期开始各个城市租出去的汽车数量),很容易写出第k+1个租赁期末公司在ABC市的汽车数量为(k=0,1,2,3)用矩阵表示:

用matlab编程,计算x(k),观察n年以后的3个城市的汽车数量变化情况functionx=czqc(n)A=0.6,0.2,0.1;0.3,0.7,0.3;0.1,0.1,0.6;x(:

1)=200,200,200;fork=1:

nx(:

k+1)=A*x(:

k);end如果直接看10年或者20年发展趋势,可以直接在命令窗口(commondwindow)作,而不是必须编一个函数A=0.6,0.2,0.1;0.3,0.7,0.3;0.1,0.1,0.6;n=10;fork=1:

nx(:

1)=200,200,200;x(:

k+1)=A*x(:

k);endround(x)作图观察数量变化趋势k=0:

10;plot(k,x),gridgtext(x1(k),gtext(x2(k),gtext(x3(k)运行结果及说明:

图3城市汽车数量趋势可以看到时间充分长以后3个城市汽车数量趋于180,300,120可以考察这个结果与初始条件是否有关若最开始600辆汽车都在A市,可以看到变化时间充分长以后,各城市汽车数量趋于稳定,与初始值无关直接输入x(:

1)的值即可x(:

1)=600,0,0;round(x);plot(k,x),grid图4野生或饲养的动物因繁殖趋势野生或饲养的动物因繁殖而增加,因自然死亡和人为屠杀而减少,不同年龄动物的繁殖率,死亡率有较大差别,因此在研究某一种群数量的变化时,需要考虑年龄分组的种群增长。

将种群按年龄等间隔的分成若干个年龄组,时间也离散化为时段,给定各年龄组种群的繁殖率和死亡率,建立按年龄分组的种群增长模型,预测未来各年龄组的种群数量,并讨论时间充分长以后的变化趋势。

模型及其求解设种群按年龄等间隔的分成n个年龄组,记i=1,2,,n,时段记作k=0,1,2,且年龄组区间与时段长度相等(若5岁为一个年龄组,则5年为一个时段)。

以雌性个体为研究对象记在时段k第i年龄组的数量为xi(k);第i年龄组的繁殖率为bi,表示每个个体在一个时段内繁殖的数量;第i年龄组死亡率为di,表示一个时段内死亡数与总数的比,si=1-di是存活率。

注意:

第k时段的第i年龄组活过来的,是第k+1时段的第i+1年龄组Xi+1(k+1)=sixi(k)i=1,2,n-1,k=0,1,各年龄组在第k时段繁殖的数量和是第k+1时段的第1年龄组记在时段k种群各年龄组的数量为X(k)=x1(k),x2(k),xn(k)这样,有x(k+1)=Lx(k),k=0,1,给定在0时段,各年龄组的初始数量x(0)就可以预测任意时段k,各年龄组的数量设一种群分成5个年龄组,繁殖率b1=0,b2=0.2,b3=1.8,b4=0.8,b5=0.2存活率s1=0.5,s2=0.8,s3=0.8,s4=0.1各年龄组现有数量都是100只,用matlab计算x(k)b=0,0.2,1.8,0.8,0.2;s=diag(0.5,0.8,0.8,0.1);L=b;s,zeros(4,1);x(:

1)=100*ones(5,1);n=30;fork=1:

nx(:

k+1)=L*x(:

k);endround(x)k=0:

30;subplot(1,2,1),plot(k,x),grid将x(k)归一化后的向量记做x(k),称为种群按年龄组的分布向量,即各年龄组在k时段在数量上占总数的百分比。

y=diag(1./sum(x);%sum(x)对列求和Z=x*ySubplot(1,2,2),plot(k,z),grid结果分析:

时间充分长以后,种群按年龄组的分布x(k)趋向稳定。

五、结论从以上用Matlab处理差分方程问题的实例可以看出,该方法处理基础数学的问题过程简单,且结果更直观。

上面的例子,只是应用了MATLAB的计算、绘图和动画功能,MATLAB还有许多功能有待在实验教学中开发利用,以进一步丰富实验学习和教学的方法和手段,不断提高实验水平。

科学计算有数值计算和符号计算之分数值运算比较简洁而符号常数、符号变量、符号函数、符号操作等是用来形成符号表达式,严格按照代数、微积分等课程中的规则、公式进行运算,并尽可能给出解析表达结果MATLAB的数值计算功能非常强大,提供了十分丰富的数值计算函数,而且所采用的数值计算算法都是国际公认的、最先进的、可靠的算法在实际应用中,除了数值计算外,往往要得到问题的解析解,这是符号计算的领域MATLAB和著名的符号计算语言Maple结合,使MATLAB具有符号计算功能,这在数学教育教学中具有强大的应用,而且MATLAB程序书写形式自由,利用丰富的库函数避开繁杂的子程序编程任务,压缩了不必要的编程工作可以在数学教育教学中避免较繁杂的运算和公式调用。

MATLAB能进行大量矩阵计算、各种数值处理、符号计算以及图形处理,可以在数学分析、高等代数、空间解析、复变函数论、常微分方程7中有很大的应用价值在以后的各门数学的讲解中也多介绍一些MATLAB应用实例,从而引导学生更好地应用MATLAB来解决自己专业领域的实际问题用MATLAB语言进行数学辅助教学可以得到事半功倍的教学效果,体现出虚拟课堂的作用,因此不断开发和应用计算机辅助教学软件不仅使教学方法得到改进,同时对进一步提高教学水平和教学质量,推动课程建设的发展起到积极的作用。

以MATLAB为素材创作软件MATLAB便捷的图形功能,不仅可以将计算结果或外部文件数据以二维、三维图形呈现,而且提供了方便的图形导出功能,其图形可以1jpg、1tif等多种格式导出。

MATLAB除了有强大的绘图功能外,还可以用来求解非线性方程、求解常微分方程、求导、求积分等数学运算.基础物理学中的数学问题大部分可以借助MATLAB来解决,这要求学生对MATLAB软件比较熟悉。

六、课程体会经过一学期紧张而有序的课程学习,在忙碌之余也得到了颇多的收获。

我深深体会到MATLAB语言相对于同类程序语言更方便更简洁易懂。

MATLAB语言一直是国际科学界应用和影响最广泛的三大计算机数学语言之一在很多领域,MATLAB语言是科学研究者首先选用的计算机数学语言1它是一种集数值计算、符号运算、可视化建模、仿真和图形处理等多种功能于一体的图形化语言经过多年的国际竞争,MATLAB已经占据了数值软件市场的主导地位,所以在数学教育教学中更应该开设MATLAB课程。

MATLAB提供了2个层次的绘图操作:

一种是对图形句柄进行的低层绘图操作,另一种是建立在低层绘图操作之上的高层绘图操作我们可以看到利用MATLAB高层绘图操作可以轻而易举地绘制各种图形利用MATLAB图形句柄操作,可以随心所欲地对图形元素进行各种操作,为用户在图形表现方面开拓了一个广阔的空间Matlab对于学习者的编程语言基础要求不高,库函数和编程语句丰富多样且简单易学,在数据可视化上也有独特的优势.学习者不需要投入太多的时间在学习编程语言知识上,可以直接利用软件提供的丰富的函数,编写较简单的程序即可解决许多普通物理学的问题,还可以解决数学,绘图,仿真等问题。

参考资料1刘卫国.MATLAB程序设计与应用(第二版)M.北京:

高等教育出版社,2006.2马文蔚.物理学(上、中、下册)(第四版)M,北京:

高等教育出版社,1999.3石博强MATLAB数学计算范例教程M北京:

中国铁道出版社,20044郝红伟MATLAB6实例教程M北京:

中国电力出版社,2002:

205-250

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 材料科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1