数值计算大作业

合集下载

计算方法大作业(第二次)

计算方法大作业(第二次)

数值计算第二次大作业1.给定插值条件如下:i 0 1 2 3 4 5 6 7 X i 8.125 8.4 9.0 9.485 9.6 9.959 10.166 10.2 Y i 0.0774 0.099 0.280 0.60 0.708 1.200 1.800 2.177 作三次样条函数插值,取第一类边界条件 Y 0’=0.01087 Y 7’=100根据题目要求,首先要构造三次样条函数,三次样条函数的构造过程如下:设有0x <1x <…<n x 共n 个插值节点,任意给定一组常数0y ,1y ,…,n y ,要求构造一个插值三次样条函数)(x S ,使得如下插值条件得以满足:()i i S x y =,i =0,1,…,n经过插值点的三次样条函数是一组三次多项式,即有:23111111111223222222222323111111111()()()(),[,],()()()(),[,],()()()(),[,]n n n n n n n n n n S x a b x x c x x d x x x x x S x a b x x c x x d x x x x x S x a b x x c x x d x x x x x ---------⎧=+-+-+-∈⎪=+-+-+-∈⎪⎨⎪⎪=+-+-+-∈⎩ 由节点处的连续性可知:11(),(),1,2, 1.i i i i i i S x y S x y i n ++===-2321121121121231111111,1,2,1,()()()()()()i i nn n n n n n n n n n a y i n y y b x x c x x d x x y y b x x c x x d x x -------==-⎧⎪=+-+-+-⎪⎨⎪⎪=+-+-+-⎩ 由节点处的一阶与二阶光滑性可知:''''''11()(),()(),1,2,,i i i i i i i i S x S x S x S x i n --===又设''1()/2n n n c S x -=,记11,,1,2,,1i i i i i i x x y y i n δ++=-∆=-=- ,则1,1,2,,13i ii ic cd i n δ+-==- 。

数值计算方法大作业

数值计算方法大作业

题目利用数值计算方法求取基尼系数姓名与学号指导教师年级与专业所在学院一、问题综述:基尼系数(Gini coefficient),是20世纪初意大利学者科拉多·吉尼根据劳伦茨曲线所定义的判断收入分配公平程度的指标。

是比例数值,在0和1之间。

基尼指数(Gini index)是指基尼系数乘100倍作百分比表示。

在民众收入中,如基尼系数最大为“1”,最小等于“0”。

前者表示居民之间的收入分配绝对不平均(即所有收入都集中在一个人手里,其余的国民没有收入),而后者则表示居民之间的收入分配绝对平均,即人与人之间收入绝对平等,但这两种情况只出现在理论上;因此,基尼系数的实际数值只能介于0~1之间,基尼系数越小收入分配越平均,基尼系数越大收入分配越不平均。

设右图中的实际收入分配曲线(红线)和收入分配绝对平等线(绿线)之间的面积为A,和收入分配绝对不平等线(蓝线)之间的面积为B,则表示收入与人口之间的比例的基尼系数为AA+B。

如果A为零,即基尼系数为0,表示收入分配完全平等(红线和绿线重叠);如果B为零,则系数为1,收入分配绝对不平等(红线和蓝线重叠)。

该系数可在0和1之间取任何值。

实际上,一般国家的收入分配,既不是完全平等,也不是完全不平等,而是在两者之间,劳伦茨曲线为一条凸向横轴的曲线。

收入分配越趋向平等,劳伦茨曲线的弧度越小(斜度越倾向45度),基尼系数也越小;反之,收入分配越趋向不平等,劳伦茨曲线的弧度越大,那么基尼系数也越大。

基尼系数的调节需要国家通过财政政策进行国民收入的二次分配,例如对民众的财政公共服务支出和税收等,从而让收入均等化,令基尼系数缩小。

基尼系数由于给出了反映居民之间贫富差异程度的数量界线,可以较客观、直观地反映和监测居民之间的贫富差距,预报、预警和防止居民之间出现贫富两极分化。

因此得到世界各国的广泛认同和普遍采用。

联合国有关组织规定:●若低于0.2表示收入平均;●0.2-0.3表示相对平均;●0.3-0.4表示相对合理;●0.4-0.5表示收入差距大;●0.6以上表示收入差距悬殊。

数值计算方法大作业

数值计算方法大作业

数值计算方法大作业
嘿,咱今儿来聊聊数值计算方法大作业呀!这可真是个有趣又有点
头疼的事儿呢!
你想想看,数值计算方法就像是一把神奇的钥匙,能打开好多好多
知识的大门。

做数值计算方法大作业的时候,那感觉就好像在探索一
个神秘的宝藏岛,每一步都充满了未知和挑战。

比如说吧,遇到一个复杂的公式,就像是在森林里碰到了一团乱麻,得耐心地一点点解开。

有时候可能会觉得,哎呀,这可咋整呀,咋这
么难呢!但别急呀,咱得静下心来,仔细琢磨。

这不就跟咱平时解一
道特别难的谜题一样嘛,刚开始觉得毫无头绪,可一旦找到那个关键点,嘿,豁然开朗啦!
在做这个大作业的过程中,可千万不能马虎哟!每一个数据都得像
宝贝一样对待,要是不小心弄错了一个,那可能整个结果都跑偏啦!
这就好比盖房子,一块砖没放好,那房子说不定就歪了呀。

而且呀,团队合作也很重要呢!大家一起讨论,一起想办法,那可
比一个人闷头苦干强多啦。

就好像一群小伙伴一起去冒险,每个人都
能发挥自己的长处,互相帮助,多有意思呀!
还有啊,别忘了多检查几遍自己的成果。

这就跟出门前照镜子一样,得看看自己有没有哪里不妥当。

可别嫌麻烦,这可是关乎最后成果好
不好的关键一步呢!
数值计算方法大作业,它既是挑战,也是机会呀!通过完成它,我们能学到好多好多实用的知识和技能,以后遇到类似的问题,咱就可以轻松应对啦,这多棒呀!所以呀,别害怕它,勇敢地去面对,去探索,去享受这个过程吧!咱肯定能把它完成得漂漂亮亮的,让别人都竖起大拇指,你说是不是呢?。

数值计算大作业——刘峰剖析

数值计算大作业——刘峰剖析

数值计算大作业——刘峰剖析数值计算是数学领域的一个重要分支,它利用数值方法和计算机技术,对各种复杂问题进行数值计算和求解。

在科学研究、工程设计和实际应用中,数值计算起着至关重要的作用。

作为数值计算的一个重要分支,线性代数是计算数学的基础和核心。

它主要研究矩阵、向量、线性方程组等数学对象在计算机上的表示、运算和求解方法。

在实际应用中,线性代数广泛应用于科学计算、工程设计、计算机图形学等领域。

在线性代数的学习过程中,我们需要掌握矩阵的基本运算,包括矩阵的加法、减法、乘法等。

另外,矩阵的特征值和特征向量是矩阵的重要属性,它们在很多问题中都有广泛的应用。

我们还需要学习线性方程组的求解方法,如高斯消元法、LU分解法等。

在数值计算的实际应用中,我们经常会面对大规模线性方程组的求解问题。

由于线性方程组的规模庞大,直接使用传统的求解方法效率非常低,因此我们需要借助数值方法来加快求解的速度。

常用的数值方法包括迭代法和直接法。

迭代法是通过不断迭代逼近方程的解,直到满足精度要求;而直接法则通过数学推导得到方程的解,但它在求解大规模线性方程组时计算量较大。

矩阵的特征值和特征向量在科学计算和工程设计中具有重要的意义。

特征值与特征向量可以用于矩阵的对角化、矩阵的谱分解、矩阵的奇异值分解等问题。

在科学计算中,特征值和特征向量可以用于求解微分方程、矩阵的指数函数等问题。

在工程设计中,特征值和特征向量可以用于分析振动、稳定性等问题。

数值计算的误差分析是数值计算的重要组成部分。

由于计算机的存储精度和运算速度有限,数值计算过程中会引入一定的误差。

误差分析可以帮助我们评估数值计算的准确性和稳定性,从而选择合适的数值方法和优化算法。

常见的误差分析方法包括绝对误差、相对误差和条件数等。

综上所述,数值计算是数学领域的一个重要分支,它通过数值方法和计算机技术对各种复杂问题进行数值计算和求解。

线性代数是数值计算的基础和核心,它研究矩阵、向量、线性方程组等数学对象的表示、运算和求解方法。

数值计算大作业

数值计算大作业

课程设计课程名称:设计题目:学号:姓名:完成时间:题目一:非线性方程求根 一 摘要非线性方程的解析解通常很难给出,因此非线性方程的数值解就尤为重要。

本实验通过使用常用的求解方法二分法和Newton 法及改进的Newton 法处理几个题目,分析并总结不同方法处理问题的优缺点。

观察迭代次数,收敛速度及初值选取对迭代的影响。

用Newton 法计算下列方程(1) 310x x --= , 初值分别为01x =,00.45x =,00.65x =; (2) 32943892940x x x +-+= 其三个根分别为1,3,98-。

当选择初值02x =时给出结果并分析现象,当6510ε-=⨯,迭代停止。

解:1)采用MATLAB 进行计算;首先定义了Newton 法:function kk=newton(f,df,x0,tol,N)% Newton Method (牛顿法)% The first parameter f is a external function with respect to viable x.(第一个参数也就是本题所用的函数f )% The second parameter df is the first order diffential function of fx.(第二个参数也就是本体所用函数f 的导数方程df ) % x0 is initial iteration point(初值). % tol is the tolerance of the loop (精度).% N is the maximum number of iterations (循环上限). x=x0;f0=eval(f);df0=eval(df); n=0;disp(' [ n xn xn+1 fn+1 ]'); while n<=N x1=x0-f0/df0; x=x1; f1=eval(f); X=[n,x0,x1,f1]; disp(X);if abs(x0-x1)<tolfprintf('The procedure was successful.') kk=X; return else n=n+1; x0=x1;f0=f1;endendif n==N+1fprintf('the method failed after N iterations. '),kk=0;End我们把Newton法存为.m格式的文件;之后我们运行程序:clear;clc;syms xf=x^3-x-1;df=diff(f,x);x=newton(f,df,1,0.0001,50);x会得到一下结果[ n xn xn+1 fn+1 ]0 1.0000 1.5000 0.87501.0000 1.5000 1.0625 -0.86302.0000 1.0625 1.4940 0.8408到第50次迭代时候会出现该问题:47.0000 1.4898 1.0814 -0.816748.0000 1.0814 1.4898 0.816749.0000 1.4898 1.0814 -0.816750.0000 1.0814 1.4898 0.8167the method failed after N iterations.x =0;同样测试x0=0.45、0.65得不出结果,判断出初值离真值太远,所以我们采用牛顿下山法进行计算迭代:我们定义了其中的f函数和df函数,并且分别存为.m格式的文件,其代码如下:f:function y=f(x)y=x^3-x-1;df:function y=df(x)y=3*x^2-1;之后我们定义newton下山法同时也存为.m的程序:function [x,i]=downnewton(f,df,x0,tol)k=0;i=1;disp(' [ n xn xn+1 fn+1 ]'); while(k==0)fx=feval('f',x0);dfx=feval('df',x0);t=0;u=1;while(t==0)dx=-fx/dfx;x1=x0+u*dx;fx1=feval('f',x1);fx0=feval('f',x0);if(abs(fx1)>abs(fx0));u=u/2;elset=1;endendX=[i,x0,x1,fx1];disp(X);if(abs(fx1)<tol)k=1;elsex0=x1;i=i+1;endendx=x1;i=i;end之后带入x0=0.45;downnewton('f','df',0.45,10^(-6))[ n xn xn+1 fn+1 ]1.0000 0.4500 -0.4155 -0.65622.0000 -0.4155 -0.5857 -0.61523.0000 -0.5857 -0.5754 -0.61514.0000 -0.5754 -0.5782 -0.61515.0000 -0.5782 -0.5773 -0.61516.0000 -0.5773 -0.5774 -0.61517.0000 -0.5774 -0.5773 -0.61518.0000 -0.5773 -0.5774 -0.61519.0000 -0.5774 -0.5774 -0.615110.0000 -0.5774 -0.5774 -0.615111.0000 -0.5774 1.3131 -0.049012.0000 1.3131 1.3248 0.000513.0000 1.3248 1.3247 0.0000ans =1.3247带入x0=0.6;downnewton('f','df',0.6,10^(-6))[ n xn xn+1 fn+1 ]1.0000 0.6000 1.1406 -0.65662.0000 1.1406 1.3668 0.18663.0000 1.3668 1.3263 0.00674.0000 1.3263 1.3247 0.00005.0000 1.3247 1.3247 0.0000ans =1.3247带入x0=1;downnewton('f','df',1,10^(-6))[ n xn xn+1 fn+1 ]1.0000 1.0000 1.5000 0.87502.0000 1.5000 1.3478 0.10073.0000 1.3478 1.3252 0.00214.0000 1.3252 1.3247 0.0000ans =1.32472)同样采用Newton下山法:重新定义f、df:f:function y=f(x)y=x^3+94*x^2-389*x+294;df:function y=df(x)y=3*x^2+188*x-389;再带入初值x0=2;downnewton('f','df',2,5*10^(-6))[ n xn xn+1 fn+1 ]1 2 -98 0ans =-98得出x=-98;分析:先画出该函数的图像;x=(-100:.1:100);ezplot('x^3+94*x^2-389*x+294',[-100 100]) 得出该图像如图:-100-80-60-40-20020406080024681012141618x 105xx 3+94 x 2-389 x+294根据牛顿法的几何解释,在x0=2的点做切线,与y 相交,交点的横坐标值为x=-98则结束了该现象。

传热学数值计算大作业

传热学数值计算大作业

数值计算大作业一、用数值方法求解尺度为100mm×100mm 的二维矩形物体的稳态导热问题。

物体的导热系数λ为1.0w/m·K。

边界条件分别为: 1、上壁恒热流q=1000w/m2; 2、下壁温度t1=100℃; 3、右侧壁温度t2=0℃; 4、左侧壁与流体对流换热,流体温度tf=0℃,表面传热系数 h 分别为1w/m2·K、10 w/m2·K、100w/m2·K 和1000 w/m2·K;要求:1、写出问题的数学描述;2、写出内部节点和边界节点的差分方程;3、给出求解方法;4、编写计算程序(自选程序语言);5、画出4个工况下的温度分布图及左、右、下三个边界的热流密度分布图;6、就一个工况下(自选)对不同网格数下的计算结果进行讨论;7、就一个工况下(自选)分别采用高斯迭代、高斯——赛德尔迭代及松弛法(亚松弛和超松弛)求解的收敛性(cpu 时间,迭代次数)进行讨论;8、对4个不同表面传热系数的计算结果进行分析和讨论。

9、自选一种商业软件(fluent 、ansys 等)对问题进行分析,并与自己编程计算结果进行比较验证(一个工况)。

(自选项)1、写出问题的数学描述 设H=0.1m微分方程 22220t tx y∂∂+=∂∂x=0,0<y<H :()f th t t xλ∂-=-∂ 定解条件 x=H ,0<y<H :t=t 2 y=0,0<x<H :t=t1t 1t 2h ;t fq=1000 w/m 2y=H ,0<x<H :tq yλ∂-=∂ 2、写出内部节点和边界节点的差分方程 内部节点:()()1,,1,,1,,122220m n m n m nm n m n m n t t t t t t x y -+-+-+-++=∆∆左边界: (),1,,1,1,,,022m n m n m n m nm n m n f m n t t t t t t x x h y t t y y y xλλλ-++---∆∆∆-+++∆=∆∆∆右边界: t m,n =t 2上边界: 1,,1,,,1,022m n m n m n m nm n m n t t t t t t y y q x x x x yλλλ-+----∆∆∆+++∆=∆∆∆ 下边界: t m,n =t 13、求解过程利用matlab 编写程序进行求解,先在matlab 中列出各物理量,然后列出内部节点和边界节点的差分方程,用高斯-赛德尔迭代法计算之后用matlab 画图。

传热学数值计算大作业

传热学数值计算大作业

传热学数值计算大作业传热学数值计算大作业一选题《传热学》第四版P179页例题 4-3二相关数据及计算方法1.厚2δ=0.06m的无限大平板受对称冷却,故按一半厚度作为模型进行计算2. δ=0.03m,初始温度t0=100℃,流体温度t∞=0℃;λ=40W/(m.K),h=1000W/(m2.K),Bi=h*△x/λ=0.25;3.设定Fo=0.25和Fo=1两种情况通过C语言编程(源程序文件见附件)进行数值分析计算;当Fo=0.25时,Fo<1/(2*(1+Bi)),理论上出现正确的计算结果;当Fo=1时,Fo>1/(2*(1+Bi)),Fo>0.5,理论上温度分布出现振荡,与实际情况不符。

三网格划分将无限大平面的一半划分为6个控制体,共7个节点。

△x=0.03/N=0.03/6=0.005,即空间步长为0.005m四节点离散方程绝热边界节点即i=1时,tij+1=2Fo△ti+1j+(1-2Fo△)tij 内部节点即0tij+1=tij(1-2Fo△Bo△-2Fo△)+2Fo△ti-1j+2Fo△Bo△tf五温度分布线图(origin)六结果分析1 空间步长,时间步长对温度分布的影响空间步长和时间步长决定了Bo和Fo,两者越小计算结果越精确,但同时计算所需的时间就越长。

2 Fo数的大小对计算结果的影响编程时对Fo=1及0.25的情况分别进行了计算,发现当Fo=1时,各点温度随时间发生振荡,某点的温度高反而会使下一时刻的温度变低,违反了热力学第二定律,因此在计算中对Fo的选取有限制。

为了保证各项前的系数均为正值,对于内节点,Fo>0.5;对于对流边界节点,Fo<1/(2*(1+Bi))。

3 备注在Fo=0.25时,为了反映较长时间后温度的分布,取T=600,并选取了其中部分时刻的温度输出进行画图。

图像显示,随着时间的增长,各点温度趋向一致。

而当Fo=1时由于结果会出现振荡,只取T=6观察即可。

数值分析期末大作业

数值分析期末大作业

一、问题提出设方程f(x)=x 3-3x-1=0有三个实根 x *1=1.8793 , x *2=-0.34727 ,x *3=-1.53209现采用下面六种不同计算格式,求 f(x)=0的根 x *1 或x *2 。

1、 x = 213xx + 2、x = 313-x3、 x = 313+x4、 x = 312-x 5、 x = x13+6、 x = x - ()1133123---x x x二、目的和意义1、通过实验进一步了解方程求根的算法;2、认识选择计算格式的重要性;3、掌握迭代算法和精度控制;4、明确迭代收敛性与初值选取的关系。

三、结构程序设计本程序实在matlab 软件上进行操作的。

首先建立一个空白的M-文件。

在编辑器中输入以下内容,并保存。

function [X1,m,n,q]=shizi1(p) x=zeros(100,1); x=double(x);x(1,1)=p;i=1;deltax=100;while (i<100 & deltax > 0.000001)x(i+1,1)=(3*x(i,1)+1)/x(i,1)^2deltax=abs(x(i+1,1)-x(i,1));i=i+1;endX1=x(1,1);m=i;n=x(i,1);q=deltax;以上是运行函数,下一步在建立一个执行M-文件,输入以下内容,并保存。

其中X1为初始值,m为迭代次数,n为最后得到的值,q为|x k+1-x k|。

clear all;clc;p=1.8;[X1,m,n,q]=shizi1(p)1、对第一个迭代公式,在执行文件中输入p=1.8;[X1,m,n,q]=shizi1(p)。

得到如下结果如下:初值为1.8,迭代100次,精度为10-6。

可见该迭代公式是发散的,将初值改为-1.5,其他均条件不变。

p=-1.5;[X1,m,n,q]=shizi1(p)改变初值后可以得到一个接近真值的结果x*3的结果ans=-1.5321。

数值计算B大作业

数值计算B大作业

课程设计课程名称:数值计算B设计题目:数值计算B大作业学号:姓名:完成时间:题目一:多项式插值某气象观测站在8:00(AM )开始每隔10分钟对天气作如下观测,用三次多项式插值函数(Newton )逼近如下曲线,插值节点数据如上表,并求出9点30分该地区的温度(x=10)。

二、数学原理假设有n+1个不同的节点及函数在节点上的值(x 0,y 0),……(x n ,y n ),插值多项式有如下形式:)())(()()()(n 10n 102010n x -x )(x -x x -x x P x x x x x x -⋯⋯-+⋯⋯+-++=αααα (1) 其中系数i α(i=0,1,2……n )为特定系数,可由插值样条i i n y x P =)((i=0,1,2……n )确定。

根据均差的定义,把x 看成[a,b]上的一点,可得f(x)= f (0x )+f[10x x ,](0x -x ) f[x, 0x ]= f[10x x ,]+f[x,10x x ,] (1x -x )……f[x, 0x ,…x 1-n ]= f[x, 0x ,…x n ]+ f[x, 0x ,…x n ](x-x n )综合以上式子,把后一式代入前一式,可得到:f(x)= f[0x ]+f[10x x ,](0x -x )+ f[210x x x ,,](0x -x )(1x -x )+…+ f[x, 0x ,…x n ](0x -x )…(x-x 1-n )+ f[x, 0x ,…x n ,x ])(x 1n +ω= N n (x )+)(x n R 其中N n (x )= f[0x ]+f[10x x ,](0x -x )+ f[210x x x ,,](0x -x )(1x -x )+…+ f[x, 0x ,…x n ](0x -x )…(x-x 1-n ) (2))(x n R = f(x)- N n (x )= f[x, 0x ,…x n ,x ])(x 1n +ω (3) )(x 1n +ω=(0x -x )…(x-x n ) Newton 插值的系数i α(i=0,1,2……n )可以用差商表示。

数值计算方法大作业

数值计算方法大作业

目录第一章非线性方程求根 (3)1.1迭代法 (3)1.2牛顿法 (4)1.3弦截法 (5)1.4二分法 (6)第二章插值 (7)2.1线性插值 (7)2.2二次插值 (8)2.3拉格朗日插值 (9)2.4分段线性插值 (10)2.5分段二次插值 (11)第三章数值积分 (13)3.1复化矩形积分法 (13)3.2复化梯形积分法 (14)3.3辛普森积分法 (15)3.4变步长梯形积分法 (16)第四章线性方程组数值法 (17)4.1约当消去法 (17)4.2高斯消去法 (18)4.3三角分解法 (20)4.4雅可比迭代法 (21)4.5高斯—赛德尔迭代法 (23)第五章常积分方程数值法 (25)5.1显示欧拉公式法 (25)5.2欧拉公式预测校正法 (26)5.3改进欧拉公式法 (27)5.4四阶龙格—库塔法 (28)数值计算方法第一章非线性方程求根1.1迭代法程序代码:Private Sub Command1_Click()x0 = Val(InputBox("请输入初始值x0"))ep = Val(InputBox(请输入误差限ep))f = 0While f = 0X1 = (Exp(2 * x0) - x0) / 5If Abs(X1 - x0) < ep ThenPrint X1f = 1Elsex0 = X1End IfWendEnd Sub例:求f(x)=e2x-6x=0在x=0.5附近的根(ep=10-10)1.2牛顿法程序代码:Private Sub Command1_Click()b = Val(InputBox("请输入被开方数x0"))ep = Val(InputBox(请输入误差限ep))f = 0While f = 0X1 = x0 - (x0 ^ 2 - b) / (2 * b)If Abs(X1 - x0) < ep ThenPrint X1f = 1Elsex0 = X1End IfWendEnd Sub例:求56的值。

传热学数值计算大作业

传热学数值计算大作业

传热学数值计算大作业传热学是研究物体内部和之间热量传递的科学,其应用范围广泛,例如在工程领域中,传热学的数值计算被广泛用于优化热传递过程,提高能源利用效率。

本文将介绍传热学数值计算的大作业,主要内容包括问题陈述、计算方法和结果分析等。

问题陈述:本次大作业的问题是研究一个热管的热传递特性。

具体来说,热管由内外两个半圆形的金属管组成,内管壁与外管壁之间是一种导热的传热介质。

问题要求计算热管内外壁的温度分布,并分析传热过程的效率和优化热管的设计。

计算方法:计算热传递过程需要运用一些热传导定律和传热方程。

首先,根据Fourier 热传导定律,可得到内外壁的温度梯度。

然后,使用热传导方程来描述热传递过程,其中包括热扩散项和传热源项。

在计算热传导时需要注意材料的热导率、导热介质的热传导性质等参数。

在计算中,可以使用一些数值方法来离散化热传导方程,例如有限差分法、有限元法等。

其中,有限差分法是一种常见的数值方法。

通过将热传导方程中的导数用差分表达式替代,可以将偏微分方程转化为代数方程。

然后,可以使用迭代方法求解代数方程,得到温度分布的数值解。

结果分析:通过数值计算,可以得到热管内外壁的温度分布。

根据温度分布,可以分析热传递过程中的热流分布和传热效果。

例如,可以计算内外壁之间的热传导率,评估热管的热传递效率。

同时,可以对热管的设计进行优化。

例如,可以通过改变热导率高低、加大导热介质的厚度等方式,来提高热传递效果。

此外,对于热管的材料选择和导热介质的设计,还可以进行参数敏感性分析。

通过改变各个参数的数值,可以研究其对热传递过程的影响程度。

这有助于优化热管的设计,并提供一些实际应用方面的建议。

总结:传热学的数值计算是研究热传递现象的重要工具,可以帮助我们深入了解传热过程,优化传热装置的设计。

通过本次大作业,我们可以学习和练习传热学数值计算的方法和技巧,提升对传热现象的理解和分析能力。

希望通过这次大作业,能够更好地应用所学知识,解决实际问题。

计算方法大作业(第一次)

计算方法大作业(第一次)

数值计算第一次大作业实验目的 以Hilbert 矩阵为例,研究处理病态问题可能遇到的困难。

内容 Hilbert 矩阵的定义是,()11/21/31/1/21/31/41/(1)1/31/41/51/(2)1/1/(1)1/(2)1/(21)n i j H h nn n n n n n =⎡⎤⎢⎥+⎢⎥⎢⎥=+⎢⎥⎢⎥⎢⎥++-⎣⎦它是一个对称正定矩阵,而且()n cond H 随着n 的增加迅速增加,其逆矩阵1,()n i j H α-=,这里,2(1)(1)!(1)!(1)[(1)!(1)!]()!()!i j i jn i n j i j i j n i n j α+-+-+-=+----- 1) 画出ln(())~n cond H n 之间的曲线(可以用任何的一种范数)。

你能猜出ln(())~n cond H n 之间有何种关系吗?提出你的猜想并想法验证。

用行范数for n=1:50 for i=1:n for j=1:nA(i,j)=1/(i+j-1);B(i,j)=factorial(n+i-1)*factorial(n+j-1)/((i+j-1)*(factorial(i-1)*factorial(j-1))^2*factorial(n-i )*factorial(n-j));end endresult1=0; for j=1:nresult1=result1+A(1,j); endresult1=log(result1); result2=0; for i=1:n for j=1:nresult2=B(i,j)+result2; endresult(i)=log(result2); endm=max(result);x(n)=result1+m; end plot([1:50],x)对于更大的n 值,由于Hilbert 逆矩阵中的元素过大,溢出,故在此取50以内的n 。

图1 ln(())~n cond H n 关系曲线图猜想ln(())~n cond H n 之间存在线性关系 验证:设ln(()n cond H an b ∞=+ 在以上程序基础上,再添加>>;>> y=x'; >> l=1:40; >> k=l';>> p=polyfit(k,y,1) %一次多项式拟合 p =3.5446 -3.0931% P=polyfit(k,y,2) %二次多项式拟合 p =-0.0008 3.5778 -3.3253 % P=polyfit(k,y,3) %三次多项式拟合0.0000 -0.0033 3.6198 -3.4777% P=polyfit(k,y,4) %四次多项式拟合-0.0000 0.0002 -0.0082 3.6654 -3.5815 % P=polyfit(k,y,5) %五次多项式拟合 p =0.0000 -0.0000 0.0007 -0.0156 3.7107 -3.6542 从上式可以看出,高次项系数相对于一次项和常数项系数要小很多, 所以取ln(() 3.5446 3.0931n cond H n ∞=-2)设D 是n H 的对角线元素开方构成的矩阵。

偏微分方程数值解第一次大作业

偏微分方程数值解第一次大作业

偏微分方程数值解——第一次大作业作业一:用有限差分法计算:()()()[]()()-,0,00d du a x c x u f x x L dx dx u u L ⎧⎛⎫+=∈⎪ ⎪⎝⎭⎨⎪==⎩要求:1)L 随机选择2)()(),a x c x 光滑(随机),且()()min max 0,0a a x a c x <≤≤<∞≥ 3)统计L 2-误差 4)规模尽可能大 根据题意:将线段0~L 均匀分成M 段,则网格步长/h L M =,节点分布为0,1,2,,M 共M+1个,k x kh =,可得原方程的差分形式:1111220,1,2,,10k k k k k k k k k M u u u u a a h h c u f k M h u u +-+---⎧-⎪⎪-+==-⎨⎪==⎪⎩ 其中,下标k 表示在k x 处取值,12k +(12k -)表示在k x 与1k x +(k x 与1k x -)中点处的取值。

化简上式可得:1111222211222,1,2,,1k k k k k k k k k aa a a u c u u f k M h h h --++-++⎛⎫⎪-++-==- ⎪ ⎪⎝⎭写成矩阵形式:AU g =,得()()13322212233552222222252253322222233122212211000000M M M M M M M M M M a a a c h h a a a a c h hha A haa a c hha a a c h h ---------⨯-+⎛⎫ ⎪+-⎪⎪+ ⎪ ⎪-+- ⎪ ⎪ ⎪=-⎪⎪+ ⎪ ⎪+- ⎪ ⎪+ ⎪ ⎪-+⎝⎭12211M M M u u U u u ---⎛⎫ ⎪ ⎪ ⎪= ⎪ ⎪ ⎪⎝⎭ ,12211M M M f f g f f ---⎛⎫⎪ ⎪ ⎪= ⎪ ⎪ ⎪⎝⎭计算时,取1L =,()x a x e =,()2x c x e =,()2f x =,可以解得原方程的解析解(精确解)为()3233111x x xe e e u x e e e e e ----=++--由于A 为对称三对角阵且主对角占优,可以用直接法求解此方程组。

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

数值计算大作业题目一、非线性方程求根1.题目假设人口随时间和当时人口数目成比例连续增长,在此假设下人口在短期内的增长建立数学模型。

(1)如果令()N t 表示在t 时刻的人口数目,β表示固定的人口出生率,则人口数目满足微分方程()()dN t N t dt β=,此方程的解为0()=tN t N e β; (2)如果允许移民移入且速率为恒定的v ,则微分方程变成()()dN t N t vdt β=+, 此方程的解为0()=+(1)t t vN t N e e βββ-;假设某地区初始有1000000人,在第一年有435000人移入,又假设在第一年年底该地区人口数量1564000人,试通过下面的方程确定人口出生率β,精确到410-;且通过这个数值来预测第二年年末的人口数,假设移民速度v 保持不变。

4350001564000=1000000(1)e e βββ+-2.数学原理采用牛顿迭代法,牛顿迭代法的数学原理是,对于方程0)(=x f ,如果)(x f 是线性函数,则它的求根是很容易的,牛顿迭代法实质上是一种线性化方法,其基本思想是将非线性方程0)(=x f 逐步归结为某种线性方程来求解。

设已知方程0)(=x f 有近似根k x (假定0)(≠'x f ),将函数)(x f 在点k x进行泰勒展开,有.))(()()(⋅⋅⋅+-'+≈k k k x x x f x f x f于是方程0)(=x f 可近似地表示为))(()(=-'+k k x x x f x f这是个线性方程,记其根为1k x +,则1k x +的计算公式为)()(1k k k k x f x f x x '-==+,,,2,1,0⋅⋅⋅=k这就是牛顿迭代法,简称牛顿法。

3.程序设计作出函数的图像,大概估计出根的位置fplot('1000*exp(x)+(435*x)*(exp(x)-1)-1564',[0 3]);grid大概估计出初始值x=0.5function [p1,err,k,y]=newton(f,df,p0,delta,max1) % f 是非线性系数 % df 是f 的微商 % p0是初始值% dalta 是给定允许误差 % max1是迭代的最大次数 % p1是牛顿法求得的方程近似解 % err 是p0误差估计 % k 是迭代次数 p0,feval('f',p0) for k=1:max1p1=p0-feval('f',p0)/feval('df',p0); err=abs(p1-p0); p0=p1;p1,err,k,y=feval('f',p1) if(err<delta)|(y==0), break,endp1,err,k,y=feval('f',p1) endfunction y=f(x)y=1000000*exp(x)+435000*(exp(x)-1)/x-1564000; function y=df(x)y=1000000*exp(x)+435000*(exp(x)/x-(exp(x)-1)/x^2);4.结果分析与讨论newton('f','df',1.2,10^(-4),10) 运行后得出结果 p0 =0.5000p1 =0.1679 err =0.3321 k =1 y =9.2415e+004 p1 =0.1031 err =0.0648 k =2 y =2.7701e+003 p1 =0.1010 err =0.0021 k =3 y =2.6953p1 =0.1010 err =2.0129e-006 k =4 y = 2.5576e-006 ans =0.1010运算后的结果为1010.0=β,通过这个数值来预测第二年年末的人口数,0.10100.1010435000f(t)=1000000(1)0.1010t te e +-t=2时候对于f ()2187945.865x =实践表明,当初始值难以确定时,迭代法就不一定收敛了,因此要根据问题实际背景或者二分法先得一个较好的初始值,然后再进行迭代;再者迭代函数选择不合适的话,采用不动点迭代法也有可能出现不收敛的情况;因此我采用的是牛顿法。

题目二:线性方程组求解1.题目假设一个物体可以位于1n +个等距点01,,,n x x x 的任意位置,当物体在i x位置时,它只能等可能的移动到1i x -或者+1i x ,而不能直接移动到其他任何位置,概率i p 表示物体从位置ix开始在到达右端点n x 之前到达左端点0x 的概率,显然01,0n p p ==,且有-1+111=+1,2,,122i i i p p p i n =-, 既有下面方程组:1211100211112221110221101221012n p p p-⎡⎤-⎢⎥⎢⎥⎢⎥--⎢⎥⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥--⎢⎥=⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎢⎥⎢⎥⎣⎦--⎢⎥⎢⎥⎢⎥-⎢⎥⎣⎦取10n =对方程组进行求解(迭代法或者直接法)。

2.数学原理在解微分方程的边值问题、热传导方程以及船体数学放样中建立的三次样条函数等工程技术问题时,经常遇到下面形式的线性方程组:⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡---n n n n n b a c b a b a c b 1112211 ⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡-n x x x x n 121 =⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡-n n d d d d 121 方程简记A x d =,该线性方程称为三对角线方程组,其系数矩阵A 满足条件110,,,0,2,,1i i i i i n n b c b a c a c i n b c >>≥+≠=->>所以为弱对角阵可以采用追赶法进行计算,利用三对角矩阵的LU 分解建立计算量更少的线性方程组求解公式。

将系数矩阵A 进行克劳特分解,即A 分解为下三角矩阵和单位上三角矩阵的乘积;A=⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡---n nn n n b a c b a b a c b 1112211=⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡--n n n n αγαγαγα11221 ⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡-1111121n βββ其中i α,i β,i γ为待定系数,直接利用矩阵乘法公式可得11α=b ,111βα=c , ii a γ=,ii i i b αβγ+=-1,,,,3,2n i ⋅⋅⋅=ii i c βα=,,1,,3,2-⋅⋅⋅=n i于是推得计算i α,i β,i γ的公式11b =α,111/b c =β;i i αγ=,1--=i i i i b βαα,,,,3,2n i =;i i i c αβ/=,n i ,,3,2 =;由此计算出L 和U 中的全部元素,完成了系数矩阵A 的克劳特分解。

求解线性方程组d Ax =等价于求解d Ly =和y Ux =。

因而得到解三对角线性方程组的追赶法公式 (1)计算i 的递推公式:()1111,,2,3,1i i i i i c b c b i n -==-=-(2)解Ly d =())11111,,2,3,i i i i i i i y d b y d a y b i n --==--=(3)解Ux y = 1,,1,,1n n i i ii x y x y x i n +==-=-我们将计算系数121n βββ-→→→和121n y y y -→→→称为追的过程,将计算方程组的解11n n x x x -→→→称为赶的过程。

整个过程为追赶法的思想。

3.程序设计function x=chase (a,b,c,f)%求解线性方程组Ax=f ,其中A 是三对角阵 %a 是矩阵A 的下对角线元素 a (1)=0 %b 是矩阵A 的对角线元素%c 是矩阵A 的上对角线元素 c (N )=0%f 是方程组的右端向量n=length(b);if n-1==length(a)for i=n-1:-1:1a(i+1)=a(i);endendc(1)=c(1)/b(1);f(1)=f(1)/b(1);for i=2:n-1b(i)=b(i)-a(i)*c(i-1);c(i)=c(i)/b(i);f(i)=(f(i)-a(i)*f(i-1))/b(i);endf(n)=(f(n)-a(n)*f(n-1))/(b(n)-a(n)*c(n-1));for i=n-1:-1:1 f(i)=f(i)-c(i)*f(i+1);endx=f;4.结果分析与讨论A的系数矩阵为A=[1,-0.5,0,0,0,0,0,0,0,0;-0.5,1,-0.5,0,0,0,0,0,0,0;0,-0.5,1,-0.5,0,0,0,0,0,0;0,0,-0.5,1,-0.5,0,0,0,0,0;...0,0,0,-0.5,1,-0.5,0,0,0,0;0,0,0,0,-0.5,1,-0.5,0,0,0;0,0,0,0,0,-0.5,1,-0.5,0,0;0,0,0,0,0,0,-0.5,1,-0.5,0;...0,0,0,0,0,0,0,-0.5,1,-0.5;0,0,0,0,0,0,0,0,-0.5,1;]所以在MATLAB命令窗口输入>> a=[-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,0]>> b=[1,1,1,1,1,1,1,1,1,1]>> c=[-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,0]>> f=[0.5,0,0,0,0,0,0,0,0,0]得到此题中的a,b,c,f矩阵:a =-0.5000 -0.5000 -0.5000 -0.5000 -0.5000 -0.5000 -0.5000 -0.5000 -0.5000b =1 1 1 1 1 1 1 1 1 1c =-0.5000 -0.5000 -0.5000 -0.5000 -0.5000 -0.5000-0.5000 -0.5000 -0.5000 0f =0.5000 0 0 0 0 0 0 0 0 0然后在MATLAB中调用之前保存的迭代法函数function,在命令窗口中输入:chase(a,b,c,f)回车得到结果:>> x=chase(a,b,c,f)x =0.9000 0.8000 0.7000 0.6000 0.5000 0.4000 0.3000 0.20000.1000 0追赶法为一种特殊的LU分解法。

相关文档
最新文档