数值计算方法实验指导(Matlab版)

合集下载

实验6 Matlab数值计算

实验6  Matlab数值计算

实验6 Matlab数值计算实验目的:1、掌握数据统计与分析的方法;2、掌握数据插值和曲线拟合的方法及其应用;3、掌握多项式的常用运算。

实验内容:1.利用randn函数生成符合正态分布的10×5随机矩阵A,进行如下操作:(1)求A的最大元素和最小元素;(2)求A的每行元素的和以及全部元素的和;(3)分别对A的每列元素按升序、每行元素按降序排列。

a=randn(10,5);am=max(max(a));ai=min(min(a));ah=sum(a,2);az=sum(ah);al=sort(a);ahj=-sort(-a,2); disp('随机矩阵为:');adisp('最大值:');amdisp('最小值:');aidisp('每行和:');ahdisp('总和:');azdisp('列升序:');aldisp('行降序:');ahj随机矩阵为:a =-0.4326 -0.1867 0.2944 -0.3999 -1. 6041-1.6656 0.7258 -1.3362 0.6900 0. 25730.1253 -0.5883 0.7143 0.8156 -1. 05650.2877 2.1832 1.6236 0.7119 1.4 151-1.1465 -0.1364 -0.6918 1.2902 -0. 80511.1909 0.1139 0.8580 0.6686 0.5 2871.1892 1.0668 1.2540 1.1908 0.2 193-0.0376 0.0593 -1.5937 -1.2025 -0.92190.3273 -0.0956 -1.4410 -0.0198 -2. 17070.1746 -0.8323 0.5711 -0.1567 -0. 0592最大值:am =2.1832最小值:ai =-2.1707每行和:ah =-2.3288-1.32870.01056.2215-1.48953.36024.9201-3.6964-3.3998-0.3025总和:az =1.9666列升序:al =-1.6656 -0.8323 -1.5937 -1.2025 -2. 1707-1.1465 -0.5883 -1.4410 -0.3999 -1.6041-0.4326 -0.1867 -1.3362 -0.1567 -1. 0565-0.0376 -0.1364 -0.6918 -0.0198 -0. 92190.1253 -0.0956 0.2944 0.6686 -0. 80510.1746 0.0593 0.5711 0.6900 -0.0 5920.2877 0.1139 0.7143 0.7119 0.2 1930.3273 0.7258 0.8580 0.8156 0.2 5731.1892 1.0668 1.2540 1.1908 0.5 2871.19092.1832 1.6236 1.2902 1.4 151行降序:ahj =0.2944 -0.1867 -0.3999 -0.4326 -1. 60410.7258 0.6900 0.2573 -1.3362 -1. 66560.8156 0.7143 0.1253 -0.5883 -1. 05652.1832 1.6236 1.4151 0.7119 0.2 8771.2902 -0.1364 -0.6918 -0.8051 -1. 14651.1909 0.8580 0.6686 0.5287 0.1 1391.2540 1.1908 1.1892 1.0668 0.2 1930.0593 -0.0376 -0.9219 -1.2025 -1. 59370.3273 -0.0198 -0.0956 -1.4410 -2. 17070.5711 0.1746 -0.0592 -0.1567 -0. 8323>>2.用3次多项式方法插值计算1-100之间整数的平方根。

MATLAB实验指导书(共5篇)

MATLAB实验指导书(共5篇)

MATLAB实验指导书(共5篇)第一篇:MATLAB实验指导书MATLAB 实验指导书皖西学院信息工程学院实验一 MATLAB编程环境及简单命令的执行一、实验目的1.熟悉MATLAB编程环境二、实验环境1.计算机2.MATLAB7.0集成环境三、实验说明1.首先应熟悉MATLAB7.0运行环境,正确操作2.实验学时:2学时四、实验内容和步骤1.实验内容(1)命令窗口的使用。

(2)工作空间窗口的使用。

(3)工作目录、搜索路径的设置。

(4)命令历史记录窗口的使用。

(5)帮助系统的使用。

(6)了解各菜单的功能。

2.实验步骤(1)启动MATLAB,熟悉MATLAB的桌面。

(2)进入MATLAB7.0集成环境。

(3)在命令窗口执行命令完成以下运算,观察workspace的变化,记录运算结果。

1)(365-52⨯2-70)÷3 2)>>area=pi*2.5^2 3)已知x=3,y=4,在MATLAB中求z:x2y3 z=2(x-y)4)将下面的矩阵赋值给变量m1,在workspace中察看m1在内存中占用的字节数。

⎡162313⎤⎢511108⎥⎥m1=⎢⎢97612⎥⎢⎥414151⎣⎦执行以下命令>>m1(2 , 3)>>m1(11)>>m1(: , 3)>>m1(2 : 3 , 1 : 3)>>m1(1 ,4)+ m1(2 ,3)+ m1(3 ,2)+ m1(4 ,1)5)执行命令>>helpabs 查看函数abs的用法及用途,计算abs(3 + 4i)6)执行命令>>x=0:0.1:6*pi;>>y=5*sin(x);>>plot(x,y)7)运行MATLAB的演示程序,>>demo,以便对MATLAB有一个总体了解。

五、思考题1、以下变量名是否合法?为什么?(1)x2(2)3col(3)_row (4)for2、求以下变量的值,并在MATLAB中验证。

数值计算方法matlab 第二章 求根

数值计算方法matlab 第二章 求根

1第二章作业问题描述:不同温度的两种流体进入混合器混合,流出时具有相同的温度。

流体A 和B 的热容(单位:cal/(mol ·K))分别为:2623.381 1.80410 4.30010pA c T T --=+⨯-⨯ 1528.592 1.29010 4.07810pB c T T --=+⨯-⨯焓变(单位:cal/mol )为21T p T H c dT ∆=⎰。

A 进入混合器的温度为400℃,B 进入混合器的温度为700℃,A 的量(mol )是B 的量(mol )的两倍,试确定流体离开混合器的温度。

问题分析: 初始情况下,气体A 的温度比气体B 的温度低,故在混合过程中,气体A 温度升高,气体B 温度降低。

由于没有外界加热或者做功,混合气体整体的焓变应该为零。

设A 有2mol ,B 有1mol ,根据焓变公式计算得到:21-262400-22632= 6.762+3.608108.60010)6.762 1.80410 2.867105407.712T TA pA T H c dT T T dTT T T --∆=⨯-⨯=+⨯-⨯-⎰⎰(21-152700-1253=+1.29010 4.07810)0.64510 1.3591032958.030T TB pB T H c dT T T dTT T T --∆=⨯-⨯=+⨯-⨯-⎰⎰(8.5928.592而0A B H H ∆+∆=,故该问题最后变成求解方程2263()15.3548.2541016.4571038365.742f T T T T --=+⨯-⨯-的根的问题。

接下来将采用二分法、试位法以及牛顿法进行改方程的求解。

方程保存为f.m ,可在压缩文件中找到。

一、 二分法二分法的基本思想为,确定有根区间,然后不断将区间二等分,通过判断f(x)的符号,逐步将区间缩小,直到有根区间足够小,便可满足精度要求的近似根。

本例中,可以清楚的得到有根区间为(400,700)。

计算方法matlab实验指导

计算方法matlab实验指导

计算方法上机实验指导一、非线性方程求解(一)问题的指出 二分法 1.方法概要假定()f x 在[,]a b 上连续,()()0f a f b <且()f x 在(,)a b 内仅有一实根*x 取区间中点c ,若()0f c =,则c 恰为其根,否则,根据()()0f a f c <是否成立,可判断出根所属的新的有根子区间(,)a c 或(,)c b ,为节省内存,仍称其为(,)a b 。

运算重复进行,直到满足精度要求为止,即*||c x b a ε-<-<。

式中,a b 为新的有根子区间的端点。

2.计算框图Nowton 迭代法 1.方法概要0x 为初始猜测,则由递推关系1()()k k k k f x x x f x +=-' 产生逼近解*x 的迭代序列{}k x ,这个递推公式就是Newton 法。

当0x 距*x 较近时,{}k x 很快收敛于*x 。

但当0x 选择不当时,会导致{}k x 发散。

故我们事先规定迭代的最多次数。

若超过这个次数,还不收敛,则停止迭代另选初值。

2.计算框图(二)目的掌握二分法与牛顿法的基本原理及应用 (三)要求1.用二分法计算方程2sin 02x x -=在(1,2)内的根的近似值 2.用二分法计算方程310x x --=在(1,1.5)内的根的近似值5(0.510)ε-=⨯。

3.用牛顿法求下列非线性方程的近似根。

① 10x xe -= 00.5x = ② 310x x --= 01x =③ 2(1)(21)0x x --= 00.45x = 00.65x = 4.用改进的牛顿法12()()k k k k f x x x f x +=-'计算方程20(1)(21)00.55x x x --==的近似根,并与要求3.中的③的结果进行比较。

二、Gauuss 列主元消去法(一)问题的提出由地一般线性方程组在使用Gauss 消去法求解时,从求解过程中可以清楚地看到,若(1)0k kk a -=,必须施以行交换的手续,才能使消去过程继续下去。

实验五+MATLAB数值计算(含实验报告)

实验五+MATLAB数值计算(含实验报告)

实验五 MATLAB 数值计算一、实验目的1.掌握求数值导数和数值积分的方法。

2.掌握代数方程数值求解的方法。

3.掌握常微分方程数值求解的方法。

二、实验的设备及条件计算机一台(带有MATLAB7.0以上的软件环境)。

设计提示1.参考本节主要内容,学习并理解相关函数的含义及调用方法。

三、实验内容1.线性系统方程:分别使用左除(\)和求逆(inv )求解下面系统方程的解:⎪⎩⎪⎨⎧=+=+=++377251463c b b a c b a2. 数值积分:使用quad 和trapz 求解⎰-503/dx xe x 的数值积分,并与其解析解9243/5+--e 相比较;3. 请完成教材P154页中实验指导环节的实验内容第2题4. 请完成教材P155页中思考练习的第3题(1),并绘制解在该求解区间(即[0,5])上的图像;。

5、请完成教材P164页实验指导环节的实验内容第5题。

(提示:该函数的符号导数,可以通过函数diff 求得。

首先定义符号变表达式,如求sin(x)的一阶符号导数,可以先定义f=’sin(x)’;df=diff(f);可求得df=cos(x)。

其中df 即为函数f 的一阶符号导数)。

四、实验报告要求(包含预习报告要求和最终报告要求)1.实验名称2.实验目的3.实验设备及条件4.实验内容及要求5.实验程序设计指程序代码。

6.实验结果及结果分析实验结果要求必须客观,现象。

结果分析是对实验结果的理论评判。

7.实验中出现的问题及解决方法8. 思考题的回答五、实验报告的提交方式Word文档,命名方式:实验号_你的学号_姓名例如本次实验:实验一_000000001_张三.doc(信息101提交报告邮箱):E_mail: *******************(网络工程101提交作业邮箱):E_mail: *******************(注意网络班的M是大写的)下一次课前提交,过期不收!六、参考文献参考教材和Matlab帮助文件。

数值计算方法实验指导书

数值计算方法实验指导书

3) 特殊的三维图形函数 * [x,y,z]=sphere(n) % 画球,n 默认值 20 例: >> [a,b,c]=sphere(40); >> surf(a,b,c) >> axis('equal'); >> axis('square'); * [x,y,z]=cylinder(R,N) 格数 例: >> >> >> >> x=0:pi/20:pi*3; r=5+cos(x); [a,b,c]=cylinder(r,30); mesh(a,b,c) %R 母线向量,N 分
-1-
数值计算方法实验指导书
电子与信息工程系
-2-
数值分析实验< 数值分析实验<一> ---- Matlab 绪论 一\ 实验目的 1) 熟悉 Matlab 的运行环境及各种窗口 2) 掌握 Matlab 的矩阵变量类型,矩阵输入和矩阵的基本运算 3) 掌握命令及函数文件的作用及区别,并编写简单的 M 文件 4) 能熟练的向查寻目录中添加新目录,掌握常用的 Matlab 系统命令 二\ 实验内容 一> Matlab 启动与环境设置 1)启动 双击桌面图标 开始>程序>Matlab 安装目录>bin>matlab 2)环境设置 命令窗口(Command Window) 执行命令行,Matlab 主窗口; 窗口颜色及字体 File>Preferences.. 当前目录(Current Directory) File>Set Path 用于将新文件夹加入搜索路径,设置当前文件默 认目录; 3)Matlab 常用命令 上下箭头 调出最新用过的命令,重新执行 cd+目录名 改变当前目录 help 显示当前搜索路径中所有目录名称 help+函数(类)名 查找函数(类),给出函数用法及参数 lookfor+函数关键字 查询根据关键字搜索到的相关函数 exist+变量名 变量检验函数 what 目录中文件列表 who 内存变量列表 whos 内存变量详细信息 which 确定文件位置 clc 清屏 ! 调用 Dos 命令 4)联机演示系统 Help>Demos.. 输入命令:intro 二>Matlab 基本运算操作 1)数据类型 变量 区分大小写,长度不超过 31,字母开头 常量 i,j 虚单位,定义 sqrt(-1) pi 圆周率 eps 浮点运算的相对精度 exp(-52) NaN Not-a-Number,表示不定值

《数学建模》实验指导4_matlab数值计算

《数学建模》实验指导4_matlab数值计算

《数学建模》实验指导4_matlab数值计算实验:matlab 数值计算实验目的:1. 掌握用matlab 进行插值、拟合、方程求解等数值计算的方法。

实验内容:1. 某气象观测站测得某日6:00-18:00之间每隔2小时的温度如下:时间 6 8 10 12 14 16 18 温度 18 20 22 25 30 28 24 试用三次样条插值求出该日6:30,8:30,10:30,12:30,14:30,16:30的温度。

2. 已知lg(x)在[1,101]区间11个整数采样点x=1:10:101的函数值lg(x),试求lg(x)的5次拟合多项式p(x),并分别绘制出lg(x)和p(x)在[1,101]区间的函数曲线。

提示: 对数表示: 以e 为底的是log() 以10为底的是log10() 以2为底的是log2()3. 求以下非线性方程组的解:1212122x x x x e x x e --?-=?-+=? 4. 求以下有约束最值:22min (,)120f x y x yx y x y =+?+≤?-≥?5.求0.6220.611/0.60.6y dy --?的值,画出被积函数在[-0.6,0.6]内的函数图形。

提示:绘制已经定义的函数的命令为:ezplot('fun',[a,b]).提示:● 一维插值:Y1=interp1(X,Y,X1,'method')1. 函数根据X 、Y 的值,计算函数在X1处的值。

X 、Y 是两个等长的已知向量,分别描述采样点和样本值,X1是一个向量或标量,描述欲插值的点,Y1是一个与X1等长的插值结果。

method 是插值方法,允许的取值有'linear'(线性插值)、'nearest'(最近插值)、'spline'(三次样条插值)、'cubic'(三次多项式插值),缺省值是'linear'。

数值计算方法-实验指导书-8学时

数值计算方法-实验指导书-8学时

本科生实验报告实验课程数值计算方法学院名称机电工程学院专业名称机械工程学生姓名学生学号指导教师实验地点实验成绩二〇二三年十一月二〇二三年十二月目录实验1 MATLAB的基本运算 (1)实验2 MALTAB多项式运算 (14)实验3 图形的可视化及修饰处理 (16)实验4 SIMULINK仿真实验 (19)实验1 MATLAB的基本运算一、实验目的基本掌握MATLAB向量、矩阵、数组的生成及其基本运算(区分数组运算和矩阵运算)、常用的数学函数、以及字符串的操作。

二、实验内容1向量的生成和运算;2矩阵的创建、引用和运算;3多维数组的创建及运算;4字符串的操作。

三、实验步骤1.向量的生成和运算(1) 向量的生成①直接输入法:>> A=[1;2;3;4;5]②冒号生成发:>> A=1:2:10 ,B=1:10 ,C=10:-1:1函数生成法:linspace( )是线性等分函数,logspace( )是对数等分函数。

>> A=linspace(1,10)B=linspace(1,30,10)>> A=logspace(0,4,5)(2) 向量的运算维数相同的行向量只可以相加减,维数相同的列向量也可以相加减,标量可以与向量直接相乘除。

>> A=[1 2 3 4 5], B=3:7,>> AT=A', BT=B',>> E1=A+B, E2=A-B>> F=AT-BT,>> G1=3*A, G2=B/3,②向量的点积与叉积运算。

>> A=ones(1,10);B=1:10; BT=B';>> E1=A*BT2.矩阵的创建、引用和运算(1)矩阵的创建和引用m 元素构成的矩阵结构,行向量和列向量是矩阵的特殊形式。

矩阵是由n①直接输入法:>> A=[1 2 3;4 5 6]>> B=[ 1 4 72 5 83 6 9 ]>> A(1)>> A(4:end)>> B(:,1)>> B(:)>> B(5)抽取法>> clear>> A=[1 2 3 4;5 6 7 8;9 10 11 12;13 14 15 16] >> B=A(1:3,2:3)>> C=A([1 3],[2 4])>> A([1 3;2 4])③函数法:>> A=ones(3,4)>> B=zeros(3)>> C=eye(3,2)>> D=magic(3)(2) 矩阵的运算①矩阵的加减、数乘与乘法已知矩阵:>> A=[1 23 -1],>> B=[-1 01 2]>> A+B >> 2*A >> 2*A-3*B >> A*B②矩阵的逆矩阵>> format rat;A=[1 0 1;2 1 2;0 4 6] >> A1=inv(A)>> A*A1③矩阵的除法>> a=[1 2 1;3 1 4;2 2 1],b=[1 1 2],d=b'>> c1=b*inv(a),c2=b/a>> c3=inv(a)*d, c4=a\d3.多维数组的创建及运算数组运算用小圆点加在运算符的前面表示,以区分矩阵的运算。

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

《数值计算方法》实验指导(Matlab 版)肇庆学院数学与统计学学院计算方法课程组1. 实验名称实验1 算法设计原则验证(之相近数相减、大数吃小数和简化计算步骤) 2.实验题目有效数字的损失.123 )与1000个较小的数(3 1015)的和,验证大数吃小数的现象.(3)分别用直接法和秦九韶算法计算多项式P(x) a 0x n a 1x n 1在x =1.00037 处的值•验证简化计算步骤能减少运算时间.n 1 对于第(3)题中的多项式P (x ),直接逐项计算需要n (n 1) 2 1次乘法和n 次加法,使用秦九韶算法P(x) (((a °x ajx a 2)xa .则只需要n 次乘法和n 次加法.3.实验目的验证数值算法需遵循的若干规则. 4.基础理论设计数值算法时,应避免两个相近的数相减、防止大数吃小数、简化计算步骤减少运算 次数以减少运算时间并降低舍入误差的积累.两相近的数相减会损失有效数字的个数,用一《数值计算方法》实验 1报告班级: 20xx 级 XXXXx 班学号: 20xx2409xxxx姓名: XXX 成绩:⑴取 z 1016,计算z 1 Z 和 1/(、z 1Z),验证两个相近的数相减会造成(2)按不同顺序求一个较大的数(an 1X a n个大数依次加小数,小数会被大数吃掉,乘法运算次数太多会增加运算时间.5.实验环境操作系统:Win dows xp ;程序设计语言:Matlab6.实验过程(1)直接计算并比较;(2)法1 :大数逐个加1000个小数,法2 :先把1000个小数相加再与大数加;(3)将由高次项到低次项的系数保存到数组A[n]中,其中n为多项式次数.7.结果与分析(1)计算的~1V Z = _______________________________ ,1/( ~1 < z) ____________________ . 分析:(2)123逐次加1000个3 10 6的和是_________________________ ,先将1000个3 10 6相加,再用这个和与123相加得_______________________ .分析:(3)计算__________ 次的多项式:直接计算的结果是___________________ ,用时___________________ ;用秦九韶算法计算的结果是____________________ ,用时 ___________________分析:8.附录:程序清单(1)两个相近的数相减.°%*************************************************************%* 程序名:ex1_1.m°%*程序功能:验证两个相近的数相减会损失有效数字个数Q%************************************************************* z=1e16;x,y(2)大数吃小数Q%*************************************************************%程序名:ex1_2.m%*程序功能:验证大数吃小数的现象• °%************************************************************* 0clc; %清屏clear all; %释放所有内存变量format Io ng; %按双精度显示浮点数z=123; %大数t=3e-15; %小数大数依次加小数x=z; %% 重复1000次给x中加上ty=0; %先累加小数% 重复1000次给y中加上t y=z + y; %再加到大数x,y(3)秦九韶算法 °%*************************************************************%* 程序名:ex1_3.m°%* 程序功能:验证秦九韶算法可节省运行时间•Q%*************************************************************clc;%清屏clear all;%释放所有内存变量A=[8,4,-1,-3,6,5,3,2,1,3,2,-1,4,3,1,-2,4,6,8,9,50,-80,12,35,7,-6,42,5,6,23,74,65,55,80,78 ,77,98,56];A(10001)=0;%扩展到10001项,后面的都是分量 0% A 为多项式系数,从高次项到低次项x=1.00037;n=9000;% n 为多项式次数%直接计算begi ntime=clock;format Io ng;%按双精度显示浮点数%开始执行的时间%累加多项式的i 次项 en dtime=clock; time 仁etime(e ndtime,begi ntime); disp('直接计算'); disp(['p(', nu m2str(x),')=' ,n um2str(p)]); disp([' 运行时间:’,num2str(time1),' 秒']); %结束执行的时间%运行时间%秦九韶算法计算 begi ntime=clock; %开始执行的时间累加秦九韶算法中的一项en dtime=clock; time2=etime(e ndtime,begi ntime); disp(''); disp('秦九韶算法计算'); disp(['p(', nu m2str(x),')=' ,n um2str(p)]);%结束执行的时间%运行时间运行时间:',num2str(time2),'秒']); disp(['1.实验名称实验1 算法设计原则验证(之数值稳定性)2. 实验题目计算定积分I n;x n e x1dx,n 0,1, 10 ,分别用教材例1-7推导出的算法 A 和B ,其中:I n 1 nl n 1I _ 算法A :nn 1算法B : ln 1I o 0.6321l110验证算法不稳定时误差会扩大.3.实验目的验证数值算法需遵循的若干规则. 4.基础理论设计数值算法时,应采用数值稳定性好的算法•数值稳定的算法, 误差不会放大,甚至会缩小;而数值不稳定的算法会放大误差.5.实验环境操作系统:Win dows xp ; 程序设计语言:Matlab6.实验过程分别用数组IA[]和IB[]保存两种算法计算的结果.《数值计算方法》实验 1报告班级: 20xx 级 XXXXx 班学号: 20xx2409xxxx姓名: XXX 成绩:1-(1 I n ) n 07.结果与分析运行结果:(或拷屏)分析:8.附录:程序清单°%************************************************************* %*程序名:ex1_4.m °%*程序功能:验证数值稳定性算法可控制误差°%*************************************************************%清屏%释放所有内存变量%按双精度显示浮点数I=[0.63212055882856, 0.36787944117144, 0.26424111765712,0.20727664702865, ...0.17089341188538, 0.14553294057308, 0.12680235656154,0.11238350406938, ...0.10093196744492, 0.09161229300662, 0.08387707010843];%保留14位小数的精确值,…是Matlab 中的续行符%算法AIA(1) = 0.6321;% Matlab 下标从1开始,所以要用IA(n+1)表示原问题中的l(n )for n — 1 : 10lA(n -1) - 1 - n*IA(n.);%算法Bclc;clear all;format Io ng;disp('n 算法A 算法B 精确值');for n=1:11fprintf('%2d %14.6f %14.6f %14.6f\n',n-1,IA(n),IB(n),l(n));end% n显示为2位整数,其它显示为14位其中小数点后显示6位的小数《数值计算方法》实验 1报告班级: 20xx 级 XXXXx 班学号: 20xx2409xxxx姓名:XXX成绩:1.实验名称实验i 算法设计原则(除数绝对值不能太小) 2.实验题目将线性方程组增广矩阵利用初等行变换可化为1 2 i 2 和2 和 i0 i6i i的方程组,验证除数绝对值远小于被除数绝对值的除法会导致结果失真. 3.实验目的验证数值算法需遵循的若干规则. 4.基础理论设计数值算法时,应避免除数绝对值远小于被除数绝对值的除法, 大,使结果失真. 5.实验环境操作系Win dows xp ; 程序设计语言:Matlab6.实验过程a iia2ia 2ipi aii0 3i2b i a 22' b 2'r i9i2 07 r2aii0 b ;a 22'b 2'由此可解得X ib i / an, X 2分别解增广矩阵为i0i6 i否则绝对误差会被放用二维数组A和B存放方程组的增广矩阵,利用题目所给初等行变换求解方程组.7.结果与分析第1种顺序的方程组的解为x= ____________________________ ,y= ___________________________ 第2种顺序的方程组的解为x= ____________________________ ,y= ___________________________ 分析:8.附录:程序清单°%************************************************************* %*程序名:ex1_5.m%* 程序功能:验证除数的绝对值太小可能会放大误差Q%*************************************************************clc;A=[1e-16, 1, 1; 2, 1,2];B=[2, 1,2; 1e-16, 1, 1]; %增广矩阵%方程组A%消去a_{12},系数矩阵成对角线%未知数x1的值%未知数x2的值disp(['方程组 A 的解:x 仁',num2str(A(1,3)),',x2=',num2str(A(2,3))]);disp('');%方程组Bdisp(['方程组 B 的解:x 仁',num2str(B(1,3)),',% m = - a_{21}/a_{11}是第2行加第1行的倍数丄2)/A(Z 蹑A(l :1Q = A(l J ;) + m *A(2>:); A(1:3)=A^13) A(L1); 沁 3) 'AC1 2);% 消去 a_{21}% m = - a_{12}/a_{22}是第1行加第2行的倍数% m = - b_{21}/b_{11}是第2行加第1行的倍数2) B(2 2):BC1,% 消去 b_{21}BCL 3)-B(l 33) 8(1,1);B(2I 3) = B(Z 3) B(2,2X% m = - b_{12}/b_{22}是第1行加第2行的倍数%消去b_{12},系数矩阵成对角线%未知数x1的值%未知数x2的值x2=', nu m2str(B(2,3))]);《数值计算方法》实验2报告班级:20xx 级XXXXx 班学号:20xx2409xxxx成绩:1.实验名称姓名:XXX实验2 非线性方程的迭代解法(之简单迭代法)2.实验题目用简单迭代法求方程X3 4x2 10 0在区间[1,2]内的一个实根,取绝对误差限为10 4.3.实验目的掌握非线性方程的简单迭代法.4.基础理论简单迭代法:将方程f (x) 0改写成等价形式X (x),从初值X o开始,使用迭代公式X k 1 (X k )可以得到一个数列,若该数列收敛,则其极限即为原方程的解. 取数列中适当的项可作为近似解.5.实验环境操作系统:Win dows xp ; 程序设计语言:Matlab6.实验过程7.结果与分析8.附录:程序清单1.实验名称实验2 非线性方程的迭代解法(之Newton 迭代法)2. 实验题目用Newton 迭代法求方程x 34x 210 0在区间[1,2]内的一个实根,取绝对误差限为 10 4.3.实验目的掌握求解非线性方程的 Newto n 迭代法.4.基础理论Newt on 迭代法:解方程 f(x) 0的Newton 迭代公式为x k 1 x k5.实验环境操作系Win dows xp ; 程序设计语言:Matlab6.实验过程7.结果与分析8.附录:程序清单《数值计算方法》实验 2报告班级: 20xx 级 XXXXx 班学号: 20xx2409xxxx姓名: XXX 成绩:f (X k )f'(X k )《数值计算方法》实验2报告班级:20xx 级XXXXx 班学号:20xx2409xxxx姓名:XXX 成绩:1.实验名称实验2 非线性方程的迭代解法(之对分区间法)2.实验题目用对分区间法求方程X3 x 1 0在区间[1, 1.5]内的一个实根,取绝对误差限为10 4.3.实验目的掌握求解非线性方程的对分区间法.4.基础理论对分区间法:取[a, b]的中点p,若f(p) ~ 0或b - a < 则p为方程f (x) 0的近似解;若f(a) f(p) < 0,则说明根在区间取[a, p]中;否则,根在区间取[p, b]中•将新的有根区间记为[a1, b1],对该区间不断重复上述步骤,即可得到方程的近似根.5.实验环境操作系统:Win dows xp ; 程序设计语言:Matlab6.实验过程用宏定义函数f(x);为了循环方便,得到的新的有根区间始终用[a, b]表示;由于新的有根区间可能仍以a为左端点,这样会反复使用函数值f(a),为减少运算次数,将这个函数值保存在一个变量fa中;同样在判断新的有根区间时用到函数值f(p),若新的有根区间以p为左端点,则下一次用到的f(a)实际上就是现在的f(p),为减少运算次数,将这个函数值保存在一个变量fp 中.算法的伪代码描述:In put :区间端点a, b ;精度要求(即误差限)「函数 f (x);最大对分次数NOutput :近似解或失败信息7.结果与分析8.附录:程序清单说明:源程序中带有数字的空行,对应着算法描述中的行号°%**********************************************************%*程序名:Bisection.m%* 程序功能:使用二分法求解非线性方程.°%**********************************************************f=inline(W3-x-1'); %定义函数f(x)a=i nput('有根区间左端点:a='); b=in put ('右端点:b=');epsilon=input(' 误差限:epsilona=');N=i nput(' 最大对分次数:N=');1 %对分次数计数器n置12 %左端点的函数值给变量fafprin tf('\nk p f(p) a(k) f(a(k))');fprintf(' b(k) b-a\n');%显示表头fprin tf('%2d%36.6f%12.6f%12.6f%12.6f\n',O,a,fa,b,b-a);%占2位其中0位小数显示步数0,共12位其中小数6位显示各值3 % while n < N4 %取区间中点p5 %求p点函数值给变量fpfprin tf('%2d%12.6f%12.6f, n,p,fp);%输出迭代过程中的中点信息p和f(p)6 % 如果f(p)=0 或b-a的一半小于误差fprintf('\n\n 近似解为:%f\n',p); %则输出近似根p (7)return; %并结束程序(7)89 %计数器加115fprin tf('%12.6f%12.6f%12.6f%12.6f\n',a,fa,b,b-a);%显示新区间端点及左端函数值、区间长度16fprintf('\n\n经过%d 次迭代后未达到精度要求.\n',N); %输出错误信息(行17)1011取作p12 1314% 若f(a)与f(p)同号%则取右半区间为新的求根区间,即a%保存新区间左端点的函数值 %否则%左半区间为新的求根区间,即b 取作p1.实验名称 实验2非线性方程的迭代解法(之Aitken-Steffensen加速法)2. 实验题目32用Aitken-Steffensen 加速法求方程 x 4x 10 0在区间[1,2]内的一个实根,取绝对误差限为10 4•3.实验目的熟悉求解非线性方程的 Aitke n-Steffe nsen加速法.4.基础理论将方程f (x) 0改写成等价形式 x (x),得到从初值 X 。

相关文档
最新文档