数值计算方法试验指导Matlab版_第1页
数值计算方法试验指导Matlab版_第2页
数值计算方法试验指导Matlab版_第3页
数值计算方法试验指导Matlab版_第4页
数值计算方法试验指导Matlab版_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实用标准文案数值计算方法实验指导(Matlab 版)肇庆学院 数学与统计学学院计算方法课程组文档大全实用标准文案数值计算方法实验 1报告班级:20xx 级 XXXXX®学号:20xx2409xxxx姓名:XXX成绩:1 .实验名称实验1算法设计原则验证(之相近数相减、大数吃小数和简化计算步骤)2 .实验题目(1) 取z =1016,计算 衣有-JZ和1/( JZ而+Vz),验证两个相近的数相减会造成有效数字的损失.(2) 按不同顺序求一个较大的数(123)与1000个较小白勺数(3M 10/5)的和,验证大数吃小数的现象.(3) 分别用直接法和秦九韶算法计算多项式nn 1P(x) =

2、a0xax " “anx an在x=1.00037处的值.验证简化计算步骤能减少运算时间.n 1对于第(3)题中的多项式 P(x),直接逐项计算需要 n+(n 1)+2 + 1 = 次乘法和n次加法,使用秦九韶算法P(x) =(a°x a)x a2)xan)x - an则只需要n次乘法和n次加法.3 .实验目的验证数值算法需遵循的若干规则.4 .基础理论设计数值算法时,应避免两个相近的数相减、防止大数吃小数、简化计算步骤减少运算 次数以减少运算时间并降低舍入误差的积累.两相近的数相减会损失有效数字的个数,用一个大数依次加小数,小数会被大数吃掉,乘法运算次数太多会增加运算时间

3、.5 .实验环境操作系统:Windows xp ;程序设计语言:Matlab6 .实验过程(1) 直接计算并比较;(2) 法1:大数逐个加1000个小数,法2:先把1000个小数相加再与大数加;(3)将由高次项到低次项的系数保存到数组An中,其中n为多项式次数.7 .结果与分析(1) 计算的 Jz +1 - Jz = , 1 /(Jz + 1 + VZ).分析:(2) 123逐次力口 1000个3M 10"的和是 ,先将1000个3M10"相力口,文档大全实用标准文案再用这个和与123相加得.分析:(3) 计算 次的多项式:直接计算的结果是 ,用时;用秦九韶算法计算的结果是

4、 ,用时分析:8 .附录:程序清单(1) 两个相近的数相减.%*%* 程序名:ex1_1.m*%*程序功能:验证两个相近的数相减会损失有效数字个数 %* z=1e16;% x = Jz +1 - J z ;% y = 1/(. Z +1 +VZ);x,y(2)大数吃小数%*%* 程序名:ex1_2.m*%*程序功能:验证大数吃小数的现象.%*clc;%清屏clear all;%释放所有内存变量format long;%按双精度显示浮点数z=123;%段t=3e-15;%小数x=z;%人数依次加小数%重复1000次给x中加上t文档大全实用标准文案y=0;%先累加小数% 重复1000次给y中加上t

5、y=z + y; %再加到大数x,y(3)秦九韶算法%* %* 程序名:ex1_3.m%*程序功能:验证秦九韶算法可节省运行时间 %*clc; % clear all; % format long; %清屏释放所有内存变量按双精度显示浮点数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,6 5,55,80,78,77,98,56;A(10001)=0;%扩展到10001项,后面的都是分量0% A为多项式系数,从高次项到低次项x=1.00037;n=9000;% n为多项式次数%直接计算be

6、gintime=clock;%P = 0;旗:0t= 1 ;蒯k=1: i t = tF end p = p + A(n - i + 1) * t;endendtime=clock;%time1=etime(endtime,begintime); disp('直接计算); disp('p(',num2str(x),')=',num2str(p)D;开始执行的时间%求x的i次哥%累加多项式的i次项结束执行的时间%运行时间文档大全实用标准文案disp('运行时间:',num2str(time1),' 秒');%秦九韶算法计算b

7、egintime=clock;%p =。;'for 1 = 0 2 np-x*p + Ai+ 1);endendtime=clock;%time2=etime(endtime,begintime);%disp('');disp('秦九韶算法计算');disp('p(',num2str(x),')=',num2str(p);disp('运行时间:',num2str(time2),开始执行的时间%累加秦九韶算法中的一项结束执行的时间运行时间秒');文档大全实用标准文案数值计算方法实验 1报告班级:20x

8、x 级 XXXXX®学号:20xx2409xxxx姓名:XXX成绩:1 .实验名称实验1算法设计原则验证(之数值稳定性)2 .实验题目1计算定积分In =仆'%* = 0,1,10 ,分别用教材例1-7推导出的算法 A和B, 其中:算法A:1n = 1 - nI n _1Io % 0.63211算?tb:In=n(1 -In)110:" 0验证算法不稳定时误差会扩大.3 .实验目的验证数值算法需遵循的若干规则.4 .基础理论设计数值算法时,应采用数值稳定性好的算法.数值稳定的算法, 会缩小;而数值不稳定的算法会放大误差.5 .实验环境操作系统:Windows xp

9、;程序设计语言:Matlab误差不会放大,甚至6 .实验过程分别用数组IA口和旧口保存两种算法计算的结果.7 .结果与分析n算法A算法B精确值012345678910运行结果:(或拷屏)分析:文档大全实用标准文案8.附录:程序清单 %*%* 程序名:ex1_4.m*%*程序功能:验证数值稳定性算法可控制误差.%*clc; % clear all; % format long; %清屏释放所有内存变量按双精度显示浮点数I=0.63212055882856,0.36787944117144,0.26424111765712,0.20727664702865, 0.17089341188538, 0

10、.14553294057308, 0.12680235656154, 0.11238350406938, . 0.10093196744492, 0.09161229300662, 0.08387707010843;% 保留14位小数的精确值,是Matlab中的续行符%算法AIA(1) = 0.6321; % Matlab 下标从1开始,所以要用IA(n+1)表示原问题中的I(n )for n = 1 : 10IA(n + 1) = 1 - n * lA(n); end%算法Bfor 10: -1 : 1= (1 - IB(n +1) n; enddisp('n算法A算法B精确值

11、9;);for n=1:11fprintf('%2d %14.6f %14.6f %14.6fn',n-1,IA(n),旧(n),I(n); end% n显示为2位整数,其它显示为14位其中小数点后显示6位的小数文档大全实用标准文案数值计算方法实验 1报告班级:20xx 级 XXXXX®学号:20xx2409xxxx姓名:XXX成绩:1 .实验名称实验1算法设计原则(除数绝对值不能太小)2 .实验题目将线性方程组增广矩阵利用初等行变换可化为aiia2iai2bi12-a21riaiiai2biri一a227 r2aiia22b2 ') T 1 0 a22

12、9;b2'jT 1 0a22 ' b2 ';由此可解得Xi =bi'/aii,X2 =b2'/a22.分别解增广矩阵为,i0A6 i i L r 2 i 2)和 161 2 12,0,6 1 1 /的方程组,验证除数绝对值远小于被除数绝对值的除法会导致结果失真.3 .实验目的验证数值算法需遵循的若干规则.4 .基础理论设计数值算法时,应避免除数绝对值远小于被除数绝对值的除法, 大,使结果失真.5 .实验环境操作系统:Windows xp ;程序设计语言:Matlab否则绝对误差会被放6 .实验过程用二维数组A和B存放方程组的增广矩阵,利用题目所给初等行变

13、换求解方程组.7 .结果与分析第1种顺序的方程组的解为 x=, y=第2种顺序的方程组的解为 x=, y=分析:8.附录:程序清单%*%*程序名:exi 5.m%*程序功能:验证除数的绝对值太小可能会放大误差%*文档大全实用标准文案clc;A=1e-16, 1, 1; 2, 1,2;B=2, 1,2; 1e-16, 1, 1;%方程组Am = -A(Z 1)/A" 1);'AQ1:)=A(2, :) + m* A(lr :);m =2) - A(2 2);A(l? :)=A(17 >m*A(Z -);A(1S3)=A(L3)/A(1S 1);A(2, 3) = A(2S

14、 3 Aft 2);增广矩阵% m = - a_21/a_11 是第2行加第1行的倍数%消去 a_21% m = - a_12/a_22 是第1行加第2行的倍数%消去a_12,系数矩阵成对角线%未知数x1的值%未知数x2的值disp(' 方程组 A 的解:x1=',num2str(A(1,3),', x2=',num2str(A(2,3); disp('');%方程组B m =1)1);B(2C, :) + m*B<U:);2) /2);B(L:)工Bd.3)-B(t3) B(LD;B(2, 3) =3) / B(i 2);% m = -

15、b_21/b_11是第2行加第1行的倍数%消去 b_21% m = - b_12/b_22是第1行加第2行的倍数%消去b_12,系数矩阵成对角线%未知数x1的值%未知数x2的值disp(' 方程组 B 的解:x1=',num2str(B(1,3),', x2=',num2str(B(2,3);文档大全实用标准文案数值计算方法实验2报告班级:20xx 级 XXXXX®学号:20xx2409xxxx姓名:XXX成绩:1 .实验名称实验2非线性方程的迭代解法(之简单迭代法)2 .实验题目用简单迭代法求方程X3 +4x2 -10=0在区间1,2内的一个实根,取

16、绝对误差限为410 .3 .实验目的掌握非线性方程的简单迭代法.4 .基础理论简单迭代法:将方程f(x) =0改写成等价形式x =邛(x),从初值x0开始,使用迭代公式xk4 =中(xk)可以得到一个数列,若该数列收敛,则其极限即为原方程的解.取数列中适当的项可作为近似解.5 .实验环境操作系统:Windows xp ;程序设计语言:Matlab6 .实验过程7 .结果与分析8 .附录:程序清单文档大全实用标准文案数值计算方法实验 2报告班级: 20xx 级 XXXXxW姓名: XXX学号:成绩:20xx2409xxxx1 .实验名称实验2非线性方程的迭代解法(之Newton迭代法)2 .实验

17、题目用Newton迭代法求方程x3 +4x2 -10 =0在区间1,2内的一个实根,取绝对误差限为10 .3 .实验目的掌握求解非线性方程的Newton迭代法.4 .基础理论Newton迭代法:解方程f(x) = 0 的 Newton 迭代公式为 xk = xk f冈)f'(xk)5 .实验环境操作系统:Windows xp ;程序设计语言:Matlab6 .实验过程7 .结果与分析8 .附录:程序清单文档大全实用标准文案数值计算方法实验 2报告班级:20xx 级 XXXXX®学号:20xx2409xxxx姓名:XXX成绩:1 .实验名称实验2非线性方程的迭代解法(之对分区间

18、法)2 .实验题目用对分区间法求方程x3-X-1=0在区间1,1.5 内的一个实根,取绝对误差限为103 .实验目的掌握求解非线性方程的对分区间法.a < £ ,则p为方程f (x) =04 .基础理论对分区间法:取a, b的中点p,若f(p)0或b 的近似解;若f(a) f (p) < 0 ,则说明根在区间取a, p中;否则,根在区间取p, b中.将新的有根 区间记为a1, b1,对该区间不断重复上述步骤,即可得到方程的近似根.5 .实验环境操作系统:Windows xp ;程序设计语言:Matlab6 .实验过程用宏定义函数f(x);为了循环方便,得到的新的有根区间始

19、终用a, b表示;由于新的有根区间可能仍以a为左端点,这样会反复使用函数值f(a),为减少运算次数,将这个函数值保存在一个变量fa中;同样在判断新的有根区间时用到函数值f(p),若新的有根区间以 p为左端点,则下一次用到的f(a)实际上就是现在的f(p),为减少运算次数,将这个函数值保存在一个变量fp1算法的伪代码描述:Input :区间端点a, b;精度要求(即误差限)e;函数 f (x);最大对分次数 N Output :近似解或失败信息4J勺伪代码注释1n 1 ;对分次数计数器2fa f (a);左端点的函数值3while n < N do4p (a+b) / 2 ;区间中点5fp

20、 - f(p);中点的函数值6if fp = 0 or (b-a)/2 <ethen函数值为0或半区间长不超e7return p;输出近似解并退出程序8endif9n - n + 1 ;计数器加一文档大全实用标准文案10if fa- fp > 0 then若中点与左端点函数值问号11a p ;新区间取右半区间12fa fp ;13else否则14b p ;新区间取左右半区间15endif16enddo17return 错误信息输出错误信息并结束程序7.结果与分析8.附录:程序清单说明:源程序中带有数字的空行,对应着算法描述中的行号%*%* 程序名:Bisection.m*%*程序功

21、能:使用二分法求解非线性方程.*%*f=inline('xA3-x-1');%定义函数f(x)a=input('有根区间左端点:a=');b=input('右端点:b=');epsilon=input(' 误差限:epsilona=');对分次数计数器 n置1%左端点的函数值给变量 faN=input('最大对分次数:N=');1 %2 fprintf('n k p f(p) a(k) f(a(k)');fprintf(' b(k) b-an');%显示表头fprintf('

22、%2d%36.6f%12.6f%12.6f%12.6fn',0afa,b,b-a);% 占2位其中0位小数显示步数 0,共12位其中小数6位显示各值% while nW N%取区间中点p%输出迭代过程中的中点信息 p和f(p)%求p点函数值给变量fpfprintf('%2d%12.6f%12.6f,n,p,fp);文档大全实用标准文案6fprintf('nn近似解为:fn',p);return;89 %如果f(p)=0或b-a的一半小于误差限e%则输出近似根p (7)%并结束程序(7)计数器加1%若f(a)与f(p)同号%则取右半区间为新的求根区间,即%保存新区

23、间左端点的函数值%否则左半区间为新的求根区间,即b取作p1011取作p121314%15fprintf('%12.6f%12.6f%12.6f%12.6fn'afa,b,b-a);%显示新区间端点及左端函数值、区间长度16fprintf('nn经过d次迭代后未达到精度要求.n',N);%输出错误信息(行17)文档大全实用标准文案数值计算方法实验 2报告班级:20xx 级 XXXXX®学号:20xx2409xxxx姓名:XXX成绩:1 .实验名称实验2 非线性方程的迭代解法(之Aitken-Steffensen加速法)2 .实验题目用Aitken-Ste

24、ffensen加速法求方程 x3 +4x210=0在区间1,2内的一个实根, 取绝对误差限为10 H.3 .实验目的熟悉求解非线性方程的 Aitken-Steffensen加速法.4 .基础理论将方程f(x) =0改写成等价形式x=p(x),得到从初值x0开始的迭代公式xk+ =邛他卜后,基于迭代公式 xk4 =中仪的Aitken-Steffensen加速法是通过“迭代-(yk - Zk)Zk -2yxk再迭代-加速”完成迭代的,具体过程为yk = (xk), zk = (yk ), xk 1 = xk5 .实验环境操作系统:Windows xp ;程序设计语言:Matlab6 .实验过程为了

25、验证Aitken-Steffensen加速法可以把一些不收敛的迭代加速成迭代收敛,我们使1 1用将万程组变形为 x = -v10-x3 ,取迭代函数 邛(x)=410-x3 ,并利用宏定义出迭代2 2函数.由于不用保存迭代过程,所以用 x0表示初值同时也存放前一步迭代的值,y和z是迭代过程中产生的yk和Zk, x存放新迭代的结果.算法的伪代码描述:Input :初值x°精度要求(即误差限)e ;迭代函数()( x);最大迭代次数 NOutput :近似解或失败信息4J勺伪代码注释1n 1 ;迭代次数计数器2while n < N do3y -()(xo);迭代4z 4 (y);

26、再迭代5x x 0 - (y-x 0)2 / (z - 2 y + x°)加速6if | x- x 0 | < e then如果达到精度要求7return x ;则输出近似值并退出程序8endif文档大全实用标准文案9n - n + 1 ;计数器加一|10x0 x ;新近似值给x。做下次的初值11enddo12return 错误信息输出错误信息并结束程序7.结果与分析8.附录:程序清单%*%* 程序名:Aitken Steffensen.m %*程序功能:用 Aitken-Steffensen 加速法求方程.%* clc;迭代函数clear all;phi=inline(

27、9;0.5 * sqrt( 10 - xA3)');% x0=input(' 初值:x0 =');epsilon=input(' 误差限:epsilon=');N=input('最大迭代次数:N=');disp(' n 迭代中间值y(n-1)再迭代结构z(n-1)加速后的近似值x(n)');fprintf('%2d%54.6fn',0,x0);% 占2位整数显示步数 0,为了对齐,占54位小数6位显示x01% n是计数器2% while n<=Ny=3;%迭代z=3;%再迭代x=3;%加速% x0初值

28、及前一步的近似值,y和z是中间变量,x是下一步的近似值fprintf('%2d%18.6f%18.6f%18.6fn',n,y,z,x);%显示中间值和迭代近似值6%如果与上一步近似解差的绝对值不超过误差限fprintf('nn近似解 x =x(%d) "%fn',n,x);%则输出近似根,可简他各为:fprintf('nn 近似解x=%f,x);return;%并结束程序计数器加1新近似值x作为下一次迭代的初值.nn',N); % 输出错误信息(12)8 % 相当于endif9 %10%11fprintf('n 迭代%d次还不

29、满足误差要求文档大全实用标准文案数值计算方法实验2报告班级:20xx 级 XXXXX®学号:20xx2409xxxx姓名:XXX成绩:1 .实验名称实验2非线性方程的迭代解法(之 Newton下山法)2 .实验题目用Newton下山法求方程x3 +4x2 -10 =0在区间1,2内的一个实根,取绝对误差限4为10 .3 .实验目的熟悉非线性方程的 Newton下山法.4 .基础理论f(x.)Newton下山法:Newton下山法公式为 xy=xk -4,使 | f (xk书)|<| f (xk) |,f'(xk)其中0 M1 .5 .实验环境操作系统:Windows x

30、p ;程序设计语言:Matlab6 .实验过程定义函数f(x)和df(x),其中df(x)是f(x)的导函数.每步迭代时先取下山因子为 1,尝试迭代,判断尝试结果是否满足下山因子,若满足则作为这步的迭代结果;否则将下山因子减半,然后再尝试.为防止当前的xk是极小值点,附近不会有满足下述条件的其它点,使尝试陷入死循环,同时计算机中能表示出的浮点数也有下界,因此我们设置了最大尝试次数.当超过最大尝试次数时,不再进行下山尝试.由于反复尝试迭代且要判断下山条件,所以f(x0)和f '(x。)会反复使用,为避免重复计算浪费运行时间,将这两个值分别保存在变量fx0和dfx0 .而尝试产生的节点,判

31、断下山条件时要用到它的函数值,若尝试成功,这个点会作为下一步的初值再使用,所以把该点的函数值也保存在变量仪中.算法的伪代码描述:Input :初值x°精度要求(即误差限)e ;函数及其导函数f (x)和f' (x);最大迭代次数N; K下山尝试最大次数Output :近似解或失败信息4J勺伪代码注释1n 1 ;迭代次数计数器2F0 f(x 0);3while n < N do4F0 ' f ' (x 0);5if F 0' = 0 then若该点导数为06return False;则无法进行迭代,结束程序7endif文档大全实用标准文案8lamb

32、da - 1 ;下山因子入从1试起9k 1 ;尝试次数计数器10while k < K do11x x o - lambda*F0 / F o'Newton下山公式12Fx f(x);13if |Fx| < |Fo| then判断下山条件14break;退出尝试循环15endif16lambda lambda/2 ;下山因子减半17k - k+1 ;尝试次数计数器加118endwhile19if k > K then如果因超过尝试次数退出循环一20return False;则提示错误信息并结束程序21endif否则时尝试成功退出上边循环22if | x- x o |

33、< e then如果达到精度要求23return x ;则输出近似值并退出程序24endif25x o x ;新近似值给xo做下次的初值26Fo Fx ;所求函数值卜次也用到27n - n + 1 ;计数器加一n28enddo29return 错误信息输出错误信息并结束程序7 .结果与分析8 .附录:程序清单%*%* 程序名:NewtonDownhill.m*%*程序功能:用Newton下山法求解非线性方程.*%*clc;clear all;f=inline('xA3-x-1');%函数 f(x)df=inline('3*xA2-1');%函数 f(x)的

34、导函数x0=input(' 初值:x0 =');epsilon=input(' 误差限:epsilon=');N=input('最大迭代次数:N=');K=input('最大下山尝试次数:K=');文档大全实用标准文案1 %2 %fprintf('nn n x(n) f(x(n)n');fprintf('%2d%14.6f%14.6fn',0,x0,仅0);x0 和 fx0迭代次数计数器存x0点函数值%显示表头%2位整数显示0,共14位小数6位显示3 % while n< Ndisp('

35、;');%换行显示下山尝试过程的表头disp('下山因子 尝tx(n)对应f(x(n) 满足下山条件');disp('');4%存x0点导数值,每次下山尝试不用重新计算if dfx0=0%导数为0不能迭代disp('无法进行Newton迭代');return;endlambda=1.0;k=1;while k<=Kx - xO - lambda * fxO dfxO;fx=f(x);fprintf('%22.6f%14.6f%14.6f,lambda,x,fx);if (abs(fx)<abs(fx0)fprintf(

36、'满足 n');break;elsefprintf('不满足 n');end%下山因子从1开始尝试% k下山尝试次数计数器%下山最多尝试K次%下山公式%函数值%显示尝试结果%判断是否满足下山条件%是,则退出下山尝试的循环lambda=lambda/2;k=k+1;endif k>K fprintf('n下山条件无法满足return;end%不是,则下山因子减半%计数器加1迭代失败.nn');fprintf('%2d%14.6f%14.6fn',n,x,fx);% 2位整数显示步数 n,共14位小数6位显示下步迭代结果文档大全

37、实用标准文案22%达到精度要求否fprintf('nn方程的近似解为:x =%fnn',x);% (23)return;%达到,则显示结果并结束程序(23)end% (24)%用x0,fx0存放前一步的近似值和它的函数值,进行循环迭代25262728fprintf('n迭代%d次还不满足误差要求.nn',N);文档大全实用标准文案数值计算方法实验 2报告班级: 20xx 级 XXXXxW姓名: XXX学号:成绩:20xx2409xxxx1 .实验名称实验2非线性方程的迭代解法(之弦截法)2 .实验题目用弦截法求方程x3 +4x2 -10 =0在区间1,2内的一个

38、实根,取绝对误差限为10” .3 .实验目的熟悉非线性方程的弦截法.4 .基础理论将Newton迭代法中的导数用差商代替,得到弦截法(或叫正割法)公式xk 1 = xkf(xk).xk - xkf (xj - f (xk j)5 .实验环境操作系统:Windows xp ;程序设计语言:Matlab6 .实验过程不保存迭代过程,所以始终以x。和Xi分别存放xk-1和xk,而x存放新产生的迭代值 xk+1, 这样,下一次迭代时需要把上一步的X1 (即Xk)赋值于X0 (做新的Xk-1).这些点的函数值会重复用到,在迭代公式中也要用到,上一步的X1作为下一步的X0也会再一次用它的函数值,为减少重新

39、计算该点函数值的运行时间,将X1点的函数值保存在变量仅1中.算法的伪代码描述:Input :初值X0, X1;精度要求(即误差限)e ;函数 f (x);最大迭代次数 NOutput :近似解或失败信息4J勺伪代码注释1仅0 f(x 0);初值点的函数值2仅1 f(x 1);3n 2 ;迭代次数计数器(从2开始)4while n < N do5x x 1 - (x 1-X 0)*f(X 1)/ (f(x1 )-f(x 0);迭代6if | x- x 0 | < e then如果达到精度要求一7return x ;则输出近似值并退出程序8endif9X0 X 1 ;(按顺序)最新的2

40、个近似值,10X1 x ;分别做下次的初值X0, X111fx0 - fx1 ;下次初值点的函数值12fx1 - f(x 1);13n - n+1 ;14enddo文档大全实用标准文案15return 错误信息输出错误信息并结束程序7.结果与分析 8.附录:程序清单%* %* 程序名:SecantMethod.m%*程序功能:用弦截法求解非线性方程 %* clc;%函数f(x)显示表头占2位显示步数0,共14位其中小数6位占2位显示步数1,共14位其中小数6位clear all;f=inline('2*xA3-5*x-1');x0=input(' 第一初值:x0 =&#

41、39;);x1=input(' 第二初值:x1 ='); epsilon=input(' 误差限:epsilon='); N=input('最大迭代次数:N=');fprintf('n n x(n)n');%fprintf('%2d%14.6fn', 0, x0);%显示x0fprintf('%2d%14.6fn', 1, x1);%显示x1fprintf('%2d%14.6fn', n, x);%6fprintf('nn方程的近似解为return;%89%10%1112%1

42、3显示迭代过程%达到精度要求否x =%fnn', x);达到,则显示结果并结束程序原x1做x0为前两步的近似值现x做x1为一两步的近似值% x0点函数值计算x1点函数值,为下一次循环%计数器加112%存x0点函数值%存x1点函数值3%4迭代计数器% while n & Nxl -(xl - xO)&0X%弦截法公式文档大全实用标准文案14fprintf('n 迭代%d次还不满足误差要求.nn',N);文档大全实用标准文案数值计算方法实验 3报告班级:20xx 级 XXXXX®学号:20xx2409xxxx姓名:XXX成绩:1 .实验名称实验3解

43、线性方程组的直接法(之Gauss消去法)2 .实验题目用Gauss消去法求解线性方程组0.0012.000 3.000 丫x1) ,.000、-1.000 3.712 4.623 卜2 = 2.000 .2.000 1.072 5.643人 x3j <3.000,3 .实验目的掌握解线性方程组的 Gauss消去法.4 .基础理论Gauss 消去法是通过对增广矩阵的初等行变换,将方程组变成上三角方程组,然后通过 回代,从后到前依次求出各未知数.Gauss消去法的第 k步(1 wkwn-1)消元:若akk #0 ,则依次将增广矩阵第k行的aik/akk倍加到第i行(k+1wi wn),将第k

44、列对角线下的元素都化成0.5 .实验环境操作系统:Windows xp ;程序设计语言:Matlab6 .实验过程7 .结果与分析8 .附录:程序清单文档大全实用标准文案数值计算方法实验 3报告班级: 20xx 级 XXXXxW姓名: XXX学号:成绩:20xx2409xxxx1 .实验名称实验3解线性方程组的直接法(之Gauss列主元消去法)2 .实验题目用Gauss列主元消去法求解线性方程组'0.001-1.0002.0002.0003.7121.0723.000* '4.623 i x2 =5.643 13 ,1.000、2.000©000 ,3 .实验目的掌握

45、解线性方程组的 Gauss列主元消去法.4 .基础理论Gauss 列主元消去法也是通过对增广矩阵的初等行变换,将方程组变成上三角方程组, 然后通过回代,从后到前依次求出各未知数.Gauss列主元消去法的第k步(1 wkw n-1)消元:先在akk,ak,a k中找绝对值最kk k 1,kI Ik大的,将它所在的行与第k行交换,然后将第k行的-aik/akk倍加到第i行(k+1<i <n),将第k列对角线下的元素都化成0.5 .实验环境操作系统:Windows xp ;程序设计语言:Matlab6 .实验过程7 .结果与分析8 .附录:程序清单文档大全实用标准文案数值计算方法实验 3

46、报告班级:20xx 级 XXXXX®学号:20xx2409xxxx姓名:XXX成绩:1 .实验名称实验3解线性方程组的直接法(之Doolittle 分解)2 .实验题目对矩阵A进彳T Doolittle 分解,其中1-1104-1-133 .实验目的掌握矩阵的Doolittle 分解.4 .基础理论矩阵的Doolittle分解是指将矩阵 A = (aj)nM可以分解为一个单位下三角矩阵和一个上三角矩阵的乘积.若设J则可依如下顺序公式计算100 . 0、Uiu12u13 "u2110 -L 00u22u23u31l321 ". 0, U =00u33u9ma+ .a

47、aa+ .n1l n2ln3 "1 h<000 -u1nl2nL =l3nnnk 1u kj 二 akjlik =(aik-lkrurj ,r 1k 二- lit utk ) /ukk , t 1j =k,k 1, ,ni =k 1,k 2, ,n5 .实验环境操作系统:Windows xp ;程序设计语言:Matlab6 .实验过程(1)按计算公式依次计算一行u同时计算一列l ;(2)因为计算完uij (或l ij )后,aj就不再使用,为节省存储空间,将计算的uij (和lij )仍存放在矩阵 A中的相应位置;(3)使用L矩阵和U矩阵时需要根据元素所在位置取固定值或A中相应位置的值.L对角线上的元素为1,上三角部分为0,下三角部分为 A中对应的元素;U的下三角部分为0, 上三角部分为A中对应的元素.文档大全实用标准文案算法的伪代码描述:Input :阶数n;矩阵AOutput :矩阵L和U (合并存储在数组 A中)4J

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论