求一篇数值线性代数的课程设计!急!!!(要求含有Matlab程序)

求一篇数值线性代数的课程设计!急!!!(要求含有Matlab程序),第1张

目录 一.设计目的·····································3二.设计思想·····································3三.设计步骤·····································3四.心得体会·····································10 一.设计目的1、学会用Matlab求简单微分方程的解析解 2、学会用Matlab求微分方程的数值解 二.设计思想 用Matlab软件求常微分方程的数值解,完成导d追踪问题,慢跑者与狗,地中海鲨鱼问题的求解。 三.设计步骤1 微分方程的解析解 求微分方程(组)的解析解命令:dsolve(‘方程1’, ‘方程2’,…‘方程n’, ‘初始条件’, ‘自变量’)记号: 在表达微分方程时,用字母D表示求微分,D2、D3等表示求高阶微分任何D后所跟的字母为因变量,自变量可以指定或由系统规则选定为确省 2 微分方程的数值解(一)常微分方程数值解的定义在生产和科研中所处理的微分方程往往很复杂且大多得不出一般解。而在实际上对初值问题,一般是要求得到解在若干个点上满足规定精确度的近似值,或者得到一个满足精确度要求的便于计算的表达式。因此,研究常微分方程的数值解法是十分必要的。

(二)建立数值解法的一些途径

1、用差商代替导数 若步长h较小,则有 故有公式 此即欧拉法2、使用数值积分对方程y’=f(x,y), 两边由xi到xi+1积分,并利用梯形公式,有 故有公式: 实际应用时,与欧拉公式结合使用: 此即改进的欧拉法。 3、使用泰勒公式以此方法为基础,有龙格-库塔法、线性多步法等方法 4、数值公式的精度 当一个数值公式的截断误差可表示为O(hk+1)时(k为正整数,h为步长),称它是一个k阶公式。k越大,则数值公式的精度越高。�6�1 欧拉法是一阶公式,改进的欧拉法是二阶公式。�6�1 龙格-库塔法有二阶公式和四阶公式。�6�1 线性多步法有四阶阿达姆斯外插公式和内插公式 (三)用Matlab软件求常微分方程的数值解 [t,x]=solver(’f’,ts,x0,options)注意:1、在解n个未知函数的方程组时,x0和x均为n维向量,m-文件中的待解方程组应以x的分量形式写成 2、使用Matlab软件求数值解时,高阶微分方程必须等价地变换成一阶微分方程组 (四)数学建模实例1 导d追踪问题设位于坐标原点的甲舰向位于x轴上点A(1, 0)处的乙舰发射导d,导d头始终对准乙舰如果乙舰以最大的速度v0(是常数)沿平行于y轴的直线行驶,导d的速度是5v0,求导d运行的曲线方程又乙舰行驶多远时,导d将它击中? 解法一(解析法)假设导d在t时刻的位置为P(x(t), y(t)),乙舰位于 由于导d头始终对准乙舰,故此时直线PQ就是导d的轨迹曲线弧OP在点P处的切线,即有 即 (1)又根据题意,弧OP的长度为 的5倍,即 (2)由(1),(2)消去t整理得模型:

解即为导d的运行轨迹: 当 时 ,即当乙舰航行到点 处时被导d击中 被击中时间为: 若v0=1, 则在t=021处被击中 结果如图: 解法二 (建立参数方程求数值解) 设时刻t乙舰的坐标为(X(t),Y(t)),导d的坐标为(x(t),y(t)) 解导d运动轨迹的参数方程建立m-文件eq2m如下: function dy=eq2(t,y) dy=zeros(2,1); dy(1)=5(1-y(1))/sqrt((1-y(1))^2+(t-y(2))^2); dy(2)=5(t-y(2))/sqrt((1-y(1))^2+(t-y(2))^2); 取t0=0,tf=2,建立主程序chase2m如下: [t,y]=ode45('eq2',[0 2],[0 0]); Y=0:001:2; plot(1,Y,'-'), hold on plot(y(:,1),y(:,2),'') 结果见图1 导d大致在(1,02)处击中乙舰,与前面的结论一致在chase2m中,按二分法逐步修改tf,即分别取tf=1,05,025,…,直到tf=021时,得图2 结论:时刻t=021时,导d在(1,021)处击中乙舰。 2地中海鲨鱼问题 意大利生物学家Ancona曾致力于鱼类种群相互制约关系的研究,他从第一次世界大战期间,地中海各港口捕获的几种鱼类捕获量百分比的资料中,发现鲨鱼等的比例有明显增加(见下表),而供其捕食的食用鱼的百分比却明显下降显然战争使捕鱼量下降,食用鱼增加,鲨鱼等也随之增加,但为何鲨鱼的比例大幅增加呢? 他无法解释这个现象,于是求助于著名的意大利数学家VVolterra,希望建立一个食饵—捕食系统的数学模型,定量地回答这个问题,建立m-文件shierm如下: function dx=shier(t,x) dx=zeros(2,1); dx(1)=x(1)(1-01x(2)); dx(2)=x(2)(-05+002x(1));其次,建立主程序sharkm如下: [t,x]=ode45('shier',[0 15],[25 2]); plot(t,x(:,1),'-',t,x(:,2),'') plot(x(:,1),x(:,2))求解结果 左图反映了x1(t)与x2(t)的关系。 可以猜测: x1(t)与x2(t)都是周期函数。模型(二) 考虑人工捕获模型求解:1、分别用m-文件shier1m和shier2m定义上述两个方程2、建立主程序shark1m, 求解两个方程,并画出两种情况下鲨鱼数在鱼类总数中所占比例 x2(t)/[x1(t)+x2(t)] 图中实线为战前的鲨鱼比例,“”线为战争中的鲨鱼比例 结论:战争中鲨鱼的比例比战前高 (五)源程序代码 clearx=0:001:1;y=-5(1-x)^(4/5)/8+5(1-x)^(6/5)/12+5/24;plot(x,y,'') t0=0;tf=2;[t,y]=ode45('eq2',[t0 tf],[0 0]);X=1;Y=0:001:2;plot(X,Y,'-')hold onplot(y(:,1),y(:,2),'') t0=0;tf=375;[t,y]=ode45('eq3',[t0 tf],[0 0]);T=0:01:2pi;X=10+20cos(T);Y=20+15sin(T);plot(X,Y,'-')hold onplot(y(:,1),y(:,2),'') function dy=eq1(x,y) dy=zeros(2,1); dy(1)=y(2);dy(2)=1/5sqrt(1+y(1)^2)/(1-x); function dy=eq2(t,y)dy=zeros(2,1);dy(1)=5(1-y(1))/sqrt((1-y(1))^2+(t-y(2))^2);dy(2)=5(t-y(2))/sqrt((1-y(1))^2+(t-y(2))^2); dsolve('Du=1+u^2','t') y=dsolve('D2y+4Dy+29y=0','y(0)=0,Dy(0)=15','x')[x,y,z]=dsolve('Dx=2x-3y+3z','Dy=4x-5y+3z','Dz=4x-4y+2z','t'); x=simple(x) y=simple(y) z=simple(z) [T,Y]=ode15s('vdp1000',[0 3000],[2 0]); plot(T,Y(:,1),'-')[T,Y]=ode45('rigid',[0 12],[0 1 1]); plot(T,Y(:,1),'-',T,Y(:,2),'',T,Y(:,3),'+') x0=0;xf=099999;[x,y]=ode23('eq1',[x0 xf],[0 0]); Y=0:001:2; plot(1,Y,'g') hold onplot(x,y(:,1),'b') function dy=rigid(t,y) dy=zeros(3,1); dy(1)=y(2)y(3); dy(2)=-y(1)y(3); dy(3)=-051y(1)y(2); [t,x]=ode45('shier',[0 15],[25 2]); plot(t,x(:,1),'-',t,x(:,2),'') figure(2) plot(x(:,1),x(:,2)) [t1,x]=ode45('shier1',[0 15],[25 2]); [t2,y]=ode45('shier2',[0 15],[25 2]); x1=x(:,1);x2=x(:,2); x3=x2/(x1+x2); y1=y(:,1);y2=y(:,2); y3=y2/(y1+y2); plot(t1,x3,'-',t2,y3,'')function dx=shier(t,x) dx=zeros(2,1); dx(1)=x(1)(1-01x(2));dx(2)=x(2)(-05+002x(1)); function dx=shier1(t,x) dx=zeros(2,1); dx(1)=x(1)(07-01x(2));dx(2)=x(2)(-08+002x(1)); function dy=shier2(t,y) dy=zeros(2,1); dy(1)=y(1)(09-01y(2)); dy(2)=y(2)(-06+002y(1));function dy=vdp1000(t,y) dy=zeros(2,1); dy(1)=y(2); dy(2)=1000(1-y(1)^2)y(2)-y(1);四.心得体会通过本次Matlab的课程设计,我对Matlab基础知识有了深刻了解,了解了Matlab软件在数学建模中的使用。学会了用Matlab解简单微分方程的数值解和解析解。通过本次课程设计我还认识到了坚持和认真的重要性,虽然在任务的完成过程中遇到了很多的难题,但通过努力查阅书本和网络资料都一一解决了。本次课程设计是我受益良多,为我以后对Matlab的熟练使用打下了良好的基础。非常感谢学校安排这次课程设计。

高等数学与C程序设计没有本质的联系,高等数学主要是培养你的推理思维能力。

离散数学和线性代数可以视为程序设计的基础课程,因为在这两门课中将会学到一些编程所要用到得结构、算法等,比如说离散数学中的树和图,线性代数中的线性结构、行列式和矩阵等,故这两门课程学好了对后面得程序设计课程的学习是有好处的!

数据结构是C程序的算法核心,主要是对数据类型以及在其上的 *** 作进行分析的。学好数据结构是学好程序设计的必经过程!

祝愿你早日成功!!

《程序员的数学3线性代数》([日] 平冈和幸 / [日] 堀玄)电子书网盘下载免费在线阅读

8ca4 

书名:程序员的数学3线性代数

豆瓣评分:82

者: [日] 平冈和幸 / [日] 堀玄

出版社: 人民邮电出版社

出品方: 图灵教育

副标题: 线性代数

译者: 卢晓南

出版年: 2016-3

页数: 384

内容简介:

本书沿袭“程序员的数学”系列平易近人的风格,用通俗的语言和具象的图表深入讲解了编程中所需的线性代数知识。内容包括向量、矩阵、行列式、秩、逆矩阵、线性方程、LU分解、特征值、对角化、Jordan标准型、特征值算法等。

作者简介:

堀玄

专攻应用数学和物理,主要从事脑科学与信号处理领域的研究。喜欢Ruby、JavaScript、PostScript等语言。最近正在研究基于统计学理论的语言处理。工学博士。

平冈和幸

专攻应用数学和物理,对机器学习兴趣浓厚。喜欢Ruby,热爱Scheme。最近被Common Lisp吸引,正在潜心研究。工学博士。

不重要。

学计算机,看你学的是硬件还是软件,如果是硬件,可能物理相关的比较重要;学软件编程语言尤为重要,和数学关系不大,如果你的数学一般,也不用担心,努力就好。

学好线性代数不是说出来的,一定是要练出来的。首先数学这一门学科本身就要做大量的练习才能掌握的好,但有可能你说你思维能力强、智力好其他的数学科目看理论、看例题、习题就能掌握的差不多。但线性代数不一样,里面各种各样的矩阵一个不小心就搞错,所以学线性代数一定要在认真看完理论知识和例题后多做些相关的练习题,我相信只要你肯这样做,一定能学好线性代数。

高等数学,线性代数,概率论是大学必修课,就和英语一样。离散数学是计算机专业的必修课,作为编程,很多时候需要离散数学的相关知识,尤其是数据结构,数据库。离散数学需要线性代数的一点内容。而概率论必须要先学习高等数学,因为概率运算需要微积分运算。

建议学习次序为:高等数学第一、(线性代数先、离散数学后)概率论

以上就是关于求一篇数值线性代数的课程设计!急!!!(要求含有Matlab程序)全部的内容,包括:求一篇数值线性代数的课程设计!急!!!(要求含有Matlab程序)、学习C的windows程序编写和数据结构,离散数学和线性代数以及高等数学是不是必学的、程序员的数学 线性代数 怎么样等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/zz/9330419.html

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

发表评论

登录后才能评论

评论列表(0条)

保存