欢迎来到装配图网! | 帮助中心 装配图网zhuangpeitu.com!
装配图网
ImageVerifierCode 换一换
首页 装配图网 > 资源分类 > DOCX文档下载
 

数值计算方法实验指导

  • 资源ID:193879571       资源大小:126.66KB        全文页数:51页
  • 资源格式: DOCX        下载积分:50积分
快捷下载 游客一键下载
会员登录下载
微信登录下载
三方登录下载: 微信开放平台登录 支付宝登录   QQ登录   微博登录  
二维码
微信扫一扫登录
下载资源需要50积分
邮箱/手机:
温馨提示:
用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
支付方式: 支付宝    微信支付   
验证码:   换一换

 
账号:
密码:
验证码:   换一换
  忘记密码?
    
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

数值计算方法实验指导

数值计算方法实验指导(Mat lab 版)肇庆学院数学与统计学学院计算方法课程组数值计算方法实验1报告班级:20xx 级 XXXXx 班学号:20xx2409xxxx姓名:XXX成绩:1. 实验名称实验1算法设计原则验证(之相近数相减、大数吃小数和简化计算步骤)2. 实验题目(1) 取z = 1016,计算-工和1/(tF + 5),验证两个相近的数相减会造成 有效数字的损失.(2) 按不同顺序求一个较大的数(123)与1000个较小的数(3x 10-15)的和,验证大 数吃小数的现象.(3) 分别用直接法和秦九韶算法计算多项式P(x) = a xn + a xn-1 + a x + a在x=1.00037处的值.验证简化计算步骤能减少运算时间.n +1 , 一对于第(3)题中的多项式P(x),直接逐项计算需要n + (n -1) + + 2 +1 = 一次乘 法和n次加法,使用秦九韶算法P(x) = (a x + a )x + a )x + a )x + a012n-1n则只需要n次乘法和n次加法.3. 实验目的验证数值算法需遵循的若干规则.4. 基础理论设计数值算法时,应避免两个相近的数相减、防止大数吃小数、简化计算步骤减少运算 次数以减少运算时间并降低舍入误差的积累.两相近的数相减会损失有效数字的个数,用一 个大数依次加小数,小数会被大数吃掉,乘法运算次数太多会增加运算时间.5. 实验环境操作系统:Windows xp;程序设计语言:Matlab6. 实验过程(1) 直接计算并比较;(2) 法1:大数逐个加1000个小数,法2:先把1000个小数相加再与大数加;(3) 将由高次项到低次项的系数保存到数组An中,其中n为多项式次数.7. 结果与分析(1)计算的 -云=, 1/g;7+T+云).分析:123逐次加1000个3 x 10-6的和是 ,先将1000个3 x10-6相加,再用这个和与123相加得.分析:(3)计算 次的多项式:直接计算的结果是,用时;用秦九韶算法计算的结果是,用时分析:8. 附录:程序清单(1) 两个相近的数相减.%*%* 程序名:ex1_1.m*%*程序功能:验证两个相近的数相减会损失有效数字个数*%*z=1e16;% x = Z + 1 Z ;% y = 1/('、: Z + 1 + Z );x,y(2)大数吃小数%*%* 程序名:ex1_2.m*%*程序功能:验证大数吃小数的现象.*%*%清屏clear all;format long;%释放所有内存变量%按双精度显示浮点数z=123;%大数t=3e-15;%小数x=z;%大数依次加小数 %重复1000次给x中加上ty=0;%先累加小数 %重复1000次给y中加上ty=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为多项式次数%直接计算 begintime=clock;%开始执行的时间P= 0;如F-1t= 1 ;鼬 k=l:iendp = p-A(n- i- 1);endendtime=clock;time1二etime(endtime,begintime);disp('直接计算,);disp('p(',num2str(x),') = ',num2str(p);%求x的i次幂%累加多项式的i次项%结束执行的时间%运行时间% 秦九韶算法计算 begintime=clock;for i = 0 : np = x* p-A(i- I) endendtime=clock;%累加秦九韶算法中的一项disp('运行时间:',num2str(time1),'秒');%开始执行的时间%结束执行的时间time2=etime(endtime,begintime);% 运行时间disp(' '); disp('秦九韶算法计算');disp('p(',num2str(x),') = ',num2str(p);disp(' 运行时间:',num2str(time2),'秒');数值计算方法实验1报告班级:20xx 级 XXXXx 班学号:20xx2409xxxx姓名:XXX成绩:1. 实验名称实验1算法设计原则验证(之数值稳定性)2. 实验题目计算定积分I 二1工*-1&,n = 0,1, 10,分别用教材例1-7推导出的算法A和B, n 0其中:算法A: TnI 0算法B: <=1 一 nIn-1r 0.6321I =-(1 -1 )-1n n110 0验证算法不稳定时误差会扩大.3. 实验目的验证数值算法需遵循的若干规则.4. 基础理论设计数值算法时,应采用数值稳定性好的算法.数值稳定的算法,误差不会放大,甚至 会缩小;而数值不稳定的算法会放大误差.5. 实验环境操作系统:Windows xp;程序设计语言:Matlab6. 实验过程分别用数组IA和IB保存两种算法计算的结果.8.附录:程序清单 %*%* 程序名:ex1_4.m*%*程序功能:验证数值稳定性算法可控制误差.*%*clc;%清屏clear all;%释放所有内存变量format long;%按双精度显示浮点数I = 0.63212055882856,0.36787944117144,0.26424111765712,0.20727664702865, . 0.17089341188538, 0.14553294057308,0.12680235656154,0.11238350406938, .0.10093196744492, 0.09161229300662,0.08387707010843;%保留14位小数的精确值,是Mat lab中的续行符 %算法AIA(1) = 0.6321;% Mat lab下标从1开始,所以要用IA(n+1)表示原问题中的I(n)forn= 1 : 10lA(n - 1) = 1 - n * lAn); end%算法B0; forn= 10 : -1 : 1IB(n)=(l -IB(n-l» n enddisp('n算法A算法B精确值');for n=1:11fprintf('%2d %14.6f %14.6f %14.6fn',n-1,IA(n),IB(n),I(n);end% n显示为2位整数,其它显示为14位其中小数点后显示6位的小数数值计算方法实验1报告班级:20xx 级 XXXXx 班学号:20xx2409xxxx姓名:XXX成绩:1. 实验名称实验1算法设计原则(除数绝对值不能太小)2. 实验题目将线性方程组增广矩阵利用初等行变换可化为(a11a12a22r a- r2aii1Ta12a22r r1 a22Tf a11°由此可解得尤=b '/a ,x11112分别解增广矩阵为f 10-16 1f 2 1 2110-16 1 1 /的方程组,验证除数绝对值远小于被除数绝对值的除法会导致结果失真.3. 实验目的验证数值算法需遵循的若干规则.4. 基础理论设计数值算法时,应避免除数绝对值远小于被除数绝对值的除法,否则绝对误差会被放 大,使结果失真.5. 实验环境操作系统:Windows xp;程序设计语言:Matlab6. 实验过程用二维数组A和B存放方程组的增广矩阵,利用题目所给初等行变换求解方程组.7. 结果与分析第1种顺序的方程组的解为x=, y=;第2种顺序的方程组的解为x=, y=. 分析:8. 附录:程序清单%*%* 程序名:ex1_5.m*%*程序功能:验证除数的绝对值太小可能会放大误差.*%*A=1e-16, 1, 1; 2, 1, 2;B=2, 1, 2; 1e-16, 1, 1;%方程组Am=-A(2,1);A(2? :)=A(2? :)-m + A(l;A(l; :)=A(1; :)-m + A(ZA(1;3)=A(1;3)/A(1: 1);A(2, 3)=2,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('');%方程组Bm =1) B(l: 1):职:)=阳:)-0B(L =1):B(2, 3) = B(2, 3) Bp% m = - 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. 实验题目用简单迭代法求方程尤3+ 4x2 -10 = 0在区间1,2内的一个实根,取绝对误差限为10 -4 .3. 实验目的掌握非线性方程的简单迭代法.4. 基础理论简单迭代法:将方程f (x) = 0改写成等价形式x =9 (x),从初值x 0开始,使用迭代公 式气+1 =9(气)可以得到一个数列,若该数列收敛,则其极限即为原方程的解.取数列中适 当的项可作为近似解.5. 实验环境操作系统:Windows xp;程序设计语言:Matlab6. 实验过程7. 结果与分析8. 附录:程序清单数值计算方法实验2报告班级:20xx 级 XXXXx 班学号:20xx2409xxxx姓名:XXX成绩:1. 实验名称实验2非线性方程的迭代解法(之Newton迭代法)2. 实验题目用Newton迭代法求方程沼+ 4*210 = 0在区间1,2内的一个实根,取绝对误差限为 10 -4 .3. 实验目的掌握求解非线性方程的Newton迭代法.4. 基础理论Newton迭代法:解方程/(*) = 0的Newton迭代公式为*= * - '".k+1k f (* )k5. 实验环境操作系统:Windows xp;程序设计语言:Matlab6. 实验过程7. 结果与分析8. 附录:程序清单数值计算方法实验2报告班级:20xx 级 XXXXx 班学号:20xx2409xxxx姓名:XXX成绩:1. 实验名称实验2非线性方程的迭代解法(之对分区间法)2. 实验题目用对分区间法求方程x3-x-1 = 0在区间1, 1.5内的一个实根,取绝对误差限为10 -4.3. 实验目的掌握求解非线性方程的对分区间法.4. 基础理论对分区间法:取a, b的中点p,若f(p) x 0或b - a< £,则p为方程f (x) = 0的近似解;若f(a) f(p) < 0,则说明根在区间取a, p中;否则,根在区间取p, b中.将新的有根 区间记为a1, b1,对该区间不断重复上述步骤,即可得到方程的近似根.5. 实验环境操作系统:Windows xp;程序设计语言:Matlab6. 实验过程用宏定义函数f(x);为了循环方便,得到的新的有根区间始终用a, b表示;由于新的有根区间可能仍以a为左端点,这样会反复使用函数值f(a),为减少运算次 数,将这个函数值保存在一个变量fa中;同样在判断新的有根区间时用到函数值f(p),若新的有根区间以p为左端点,则下一 次用到的f(a)实际上就是现在的f(p),为减少运算次数,将这个函数值保存在一个变量fp 中算法的伪代码描述:Input:区间端点a, b;精度要求(即误差限)£;函数f (x);最大对分次数NOutput :近似解或失败信息行号伪代码注释1n 1 ;对分次数计数器2fa - f (a);左端点的函数值3while n W N do4p - (a+b) / 2;区间中点5fp f(p);中点的函数值6if fp = 0 or (b-a)/2 < e then函数值为0或半区间长不超e7return p;输出近似解并退出程序8endif9n - n + 1 ;计数器加一10if fa - fp > 0 then若中点与左端点函数值同号11a p;新区间取右半区间12fa - fp;13else否则14b p;新区间取左右半区间15endif16enddo17return错误信息输出错误信息并仑吉束程序7. 结果与分析8. 附录:程序清单说明:源程序中带有数字的空行,对应着算法描述中的行号 %* %* 程序名:Bisection.m*%*程序功能:使用二分法求解非线性方程.%*f=inline('x"3-x-1');定义函数f(x)a=input('有根区间左端点:a='); b=input('右端点:b二'); epsilon=input('误差限:epsilona=')N=input('最大对分次数:N=');%对分次数计数器n置1%左端点的函数值给变量fafprintf('n kpfprintf(' b(k)f(p)b-an');%a(k)f(a(k)');显示表头fprintf('%2d%36.6f%12.6f%12.6f%12.6fn',0,a,fa,b,b-a);%占2位其中。位小数显示步数0,共12位其中小数6位显示各值while nW N 取区间中点p求p点函数值给变量fpfprintf('%2d%12.6f%12.6f',n,p,fp);%输出迭代过程中的中点信息P和f(p)6%如果f(p)=0或b-a的一半小于误差限£fprintf('nn近似解为:fn',p);%则输出近似根p (7)return;%并结束程序(7)89%计数器加110% 若 f(a)与 f(p)同号口 %则取右半区间为新的求根区间,即a 取作p12 %保存新区间左端点的函数值莒 %否则14 %左半区间为新的求根区间,即b取作p 15fprintf('%12.6f%12.6f%12.6f%12.6fn',a,fa,b,b-a);%显示新区间端点及左端函数值、区间长度 16fprintf('nn经过%d次迭代后未达到精度要求.n',N); %输出错误信息(行17)数值计算方法实验2报告班级:20xx 级 XXXXx 班学号:20xx2409xxxx姓名:XXX成绩:1. 实验名称实验2非线性方程的迭代解法(之Aitken-Steffensen加速法)2. 实验题目用Aitken-Steffensen加速法求方程尤3 + 4x2 -10 = 0在区间1,2内的一个实根,取绝对误差限为10-4 .3. 实验目的熟悉求解非线性方程的Aitken-Steffensen加速法.4. 基础理论将方程f (x) = 0改写成等价形式x =9 (x),得到从初值X0开始的迭代公式气+=甲(xk)后,基于迭代公式xk+1 =9 (xk)的Aitken-Steffensen加速法是通过“迭代- 再迭代-加速”完成迭代的,具体过程为J =9(x ),乙=93 ), x = x (七七* .k k k kk+1k z 2 y + x5. 实验环境操作系统:Windows xp;程序设计语言:Matlab6. 实验过程为了验证Aitken-Steffensen加速法可以把一些不收敛的迭代加速成迭代收敛,我们使 用将方程组变形为x = 1 <10 x3,取迭代函数9 (x) = 1 <10 x3,并利用宏定义出迭代 函数.由于不用保存迭代过程,所以用x0表示初值同时也存放前一步迭代的值,y和z是迭 代过程中产生的匕和zk, x存放新迭代的结果.算法的伪代码描述:Input :初值x。;精度要求(即误差限)£;迭代函数"(x);最大迭代次数NOutput :近似解或失败信息行号伪代码注释1n 1 ;迭代次数计数器2while n W N do3y "(x0);迭代4z "(y);再迭代5x x0 - (y-x0) 2 / (z - 2 y + x0)加速6ifx - x0 | < e then如果达到精度要求7return x;则输出近似值并退出程序8endif9n - n + 1 ;计数器加一10x0 卜 x;新近似值给x做下次的初值 011enddo12return错误信息输出错误信息并仑结束程序7. 结果与分析8. 附录:程序清单%*%* 程 序名:Aitken_Steffensen.m*%*程序功能:用Aitken-Steffensen加速法求方程.*%*clc;clear all;phi = inline('0.5 * sqrt( 10 - x"3)');% 迭代函数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初值及前一步的近似值,y和z是中间变量,x是下一步的近似值fprintf('%2d%18.6f%18.6f%18.6fn',n,y, z, x);%显示中间值和迭代近似值6%如果与上一步近似解差的绝对值不超过误差限fprintf('nn 近似解 xx(%d) %fn',n,x);%则输出近似根(7),可简略为:fprintf('nn近似解x=%f',x);return;8%并结束程序 相当于 endif9%计数器加110%新近似值x作为下一次迭代的初值11fprintf('n迭代%d次还不满足误差要求.nn',N);%输出错误信息(12)数值计算方法实验2报告班级:20xx 级 XXXXx 班学号:20xx2409xxxx姓名:XXX成绩:1. 实验名称实验2非线性方程的迭代解法(之Newton下山法)2. 实验题目用Newton下山法求方程沼+ 4*210 = 0在区间1,2内的一个实根,取绝对误差限为 10 -4 .3. 实验目的熟悉非线性方程的Newton下山法.4. 基础理论Newton 下山法:Newton 下山法公式为 * = * -%"",使 I /(* ) 1<1 /(* )1,k+1k k f'(* )k+1kk其中0人k < 1.5. 实验环境操作系统:Windows xp;程序设计语言:Matlab6. 实验过程定义函数f(x)和df(x),其中df(x)是f(x)的导函数.每步迭代时先取下山因子为1,尝试迭代,判断尝试结果是否满足下山因子,若满足则 作为这步的迭代结果;否则将下山因子减半,然后再尝试.为防止当前的xk是极小值点, 附近不会有满足下述条件的其它点,使尝试陷入死循环,同时计算机中能表示出的浮点数也 有下界,因此我们设置了最大尝试次数.当超过最大尝试次数时,不再进行下山尝试.由于反复尝试迭代且要判断下山条件,所以f(x0)和f (x0)会反复使用,为避免重复 计算浪费运行时间,将这两个值分别保存在变量fx0和dfx0.而尝试产生的节点,判断下山条件时要用到它的函数值,若尝试成功,这个点会作为 下一步的初值再使用,所以把该点的函数值也保存在变量fx中.算法的伪代码描述:Input:初值x。;精度要求(即误差限)£;函数及其导函数f (x)和f (x);最大 迭代次数N; K下山尝试最大次数Output :近似解或失败信息行号伪代码注释1n 1 ;迭代次数计数器2F0 f(x0);3while n W N do4F f (x );00_;5if F = 0 then 0若该点导数为06return False;贝IJ无法进行迭代,结束程序7endif8lambda - 1 ;下山因子入从1试起9k 1 ;尝试次数计数器10while k W K do11x x0 - lambda*F0 / F:Newton下山公式12Fx f(x);13if |Fx| < F0then判断下山条件14break;退出尝试循环15endif16lambda -lambda/2;下山因子减半17k k+1;尝试次数计数器加118endwhile19if k > K then如果因超过尝试次数退出循环20return False;则提示错误信息并仑结束程序21endif否则时尝试成功退出上边循环22if | x - x0 | < e then如果达到精度要求23return x;则输出近似值并退出程序24endif25x0 - x;新近似值给x0做下次的初值26F0 - Fx;所求函数值下次也用到27n n + 1 ;计数器加一28enddo29return错误信息输出错误信息并仑吉束程序7. 结果与分析8. 附录:程序清单%*%* 程 序名:NewtonDownhill.m*%*程序功能:用Newton下山法求解非线性方程.*%* clear all;f=inline('x"3-x-1');% 函数 f(x)df=inline('3*x"2-1');% 函数 f(x)的导函数x0=input('初值:x0 =');epsilon=input('误差限:epsilon=');N=input('最大迭代次数:N=');K=input('最大下山尝试次数:K=');1 %迭代次数计数器2 %存x0点函数值fprintf('nn nx(n)f(x(n)n');% 显示表头fprintf('%2d%14.6f%14.6fn',0,x0,fx0);% 2 位整数显示 0,共 14 位小数 6 位显示x0 和 fx03 % while n W Ndisp('');%换行显示下山尝试过程的表头disp('下山因子 尝试x(n) 对应f(x(n) 满足下山条件');disp('');4 %存x0点导数值,每次下山尝试不用重新计算if dfx0=0%导数为0不能迭代disp('无法进彳亍Newton迭代');return;endlambda=1.0;k=1;while k<=K%下山因子从1开始尝试% k下山尝试次数计数器%下山最多尝试K次%下山公式x = xO - lambda * feO dixO:fx=f(x);%函数值fprintf('%22.6f%14.6f%14.6f',lambda,x,fx);% 显示尝试结果if (abs(fx)<abs(fx0) fprintf(' 满足n'); break;elsefprintf(' 不满足n');endlambda=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位显示下步迭代结果22%达到精度要求否fprintf('nn 方程的近似解为:xx%fnn',x);% (23)return;%达到,则显示结果并结束程序(23)end% (24)%用x0,fx0存放前一步的近似值和它的函数值,进行循环迭代25262728fprintf('n迭代%d次还不满足误差要求.nn',N);数值计算方法实验2报告班级:20xx 级 XXXXx 班学号:20xx2409xxxx姓名:XXX成绩:1. 实验名称实验2非线性方程的迭代解法(之弦截法)2. 实验题目用弦截法求方程尤3 + 4X2 -10 = 0在区间1,2内的一个实根,取绝对误差限为10-4 .3. 实验目的熟悉非线性方程的弦截法.4. 基础理论将Newton迭代法中的导数用差商代替,得到弦截法(或叫正割法)公式X = X 一-k_'-k-1 f (X ).* 人 f (- ) - f (X ) kkk -15. 实验环境操作系统:Windows xp;程序设计语言:Matlab6. 实验过程不保存迭代过程,所以始终以x0和x1分别存放xk 1和xk,而x存放新产生的迭代值xk+1, 这样,下一次迭代时需要把上一步的x1 (即xk)赋值于x0 (做新的xk1).+这些点的函数值会重复用到,在迭代公式中也要用到上一步的作为下一步的x0也 会再一次用它的函数值,为减少重新计算该点函数值的运行时间,将x1点的函数值保存在 变量fx1中.算法的伪代码描述:Input:初值x。,x1;精度要求(即误差限)£函数f (x);最大迭代次数NOutput :近似解或失败信息行号伪代码注释1fx0 - f(x );0'初值点的函数值2fx1 f(x );1'3n 2;迭代次数计数器(从2开始)4while n W N do5x x - (x1-x0)*f(x1) / (f(x1 )-f(x ); 07迭代6if | x - x0< e then如果达到精度要求7return x;则输出近似值并退出程序8endif9x0 x1;(按顺序)最新的2个近似值, 分别做下次的初值x0, x110x, x;11fx0 fx1;下次初值点的函数值12fx1 f(x );1713n n+1;14enddo15return错误信息输出错误信息并仑吉束程序7. 结果与分析8. 附录:程序清单 %*%* 程 序名:SecantMethod.m*%*程序功能:用弦截法求解非线性方程.*%* clc; clear all;f=inline('2*x"3-5*x-1');%函数f(x)x0=input('第一初值:x0 x1 = input('第二初值:x1 epsilon=input('误差限: N=input('最大迭代次数:=');=');epsilon=');N=');fprintf('n nx(n)n');fprintf('%2d%14.6fn', 0, x0); 显示x0 fprintf('%2d%14.6fn', 1, x1); 显示x1%显示表头%占2位显示步数0,共14位其中小数6位%占2位显示步数1,共14位其中小数6位存x0点函数值存x1点函数值迭代计数器while n W Nx= xl - (xl - xO) * /(fel - fxO);%弦截法公式fprintf('%2d%14.6fn', n, x);6fprintf('nn方程的近似解为: return;8%显示迭代过程%达到精度要求否 x%fnn', x);%达到,则显示结果并结束程序910111213%原x1做x0为前两步的近似值%现x做x1为一两步的近似值% x0点函数值%计算x1点函数值,为下一次循环%计数器加114fprintf('n 迭代%d次还不满足误差要求.nn',N);数值计算方法实验3报告班级:20xx 级 XXXXx 班学号:20xx2409xxxx姓名:XXX成绩:1. 实验名称实验3解线性方程组的直接法(之Gauss消去法)2. 实验题目用Gauss消去法求解线性方程组3.'0.001-1.000厂 2.0002.0003.7121.0723.000卜 1 4.623 x25.643人 x3 JL000 =2.0000.000/实验目的掌握解线性方程组的Gauss消去法.4. 基础理论Gauss消去法是通过对增广矩阵的初等行变换,将方程组变成上三角方程组,然后通过 回代,从后到前依次求出各未知数.Gauss消去法的第k步心kWnT)消元:若九丰0,则依次将增广矩阵第k行的-七/ %倍加到第i行(k+1WiWn),将第k列对角线下的元素都化成0.5. 实验环境操作系统:Windows xp;程序设计语言:Matlab6. 实验过程7. 结果与分析8. 附录:程序清单数值计算方法实验3报告班级:20xx 级 XXXXx 班学号:20xx2409xxxx姓名:XXX成绩:1. 实验名称实验3解线性方程组的直接法(之Gauss列主元消去法)2. 实验题目用Gauss列主元消去法求解线性方程组'0.001-1.000厂 2.0002.0003.7121.0723.000卜 1 4.623 x25.643人 x3 JL000 =2.0000.000/3. 实验目的掌握解线性方程组的Gauss列主元消去法.4. 基础理论Gauss列主元消去法也是通过对增广矩阵的初等行变换,将方程组变成上三角方程组, 然后通过回代,从后到前依次求出各未知数.Gauss列主元消去法的第k步(1WkWn-1)消元:先在a以,a”, , a中找绝对值最大的,将它所在的行与第k行交换,然后将第k行的-a / a倍加到第i行(k+1WiWn), 将第k列对角线下的元素都化成0.5. 实验环境操作系统:Windows xp;程序设计语言:Matlab6. 实验过程7. 结果与分析8. 附录:程序清单数值计算方法实验3报告班级:20xx 级 XXXXx 班学号:20xx2409xxxx姓名:XXX成绩:1. 实验名称实验3解线性方程组的直接法(之Doolittle分解)2. 实验题目对矩阵A进行Doolittle分解,其中f621-1A =241°114-1"-1 ° -1 3)3. 实验目的掌握矩阵的Doolittle分解.4. 基础理论矩阵的Doolittle分解是指将矩阵A = (% )睡可以分解为一个单位下三角矩阵和一个上三角矩阵的乘积.若设f 1°°°)f uu u u )1112131nl 1° °°u u u2122232nL =l l 1 °, U =°° u u3132333n :.:""n 2 七31 nnn"°°°u J则可依如下顺序公式计算1u =a-如1*r=1j = k, k +1,,n11 =(a ikik J 1 u )/u , it tkkkt=1i = k +1, k + 2,,n其中k二1, 2,.,n.5.实验环境操作系统:Windows xp;程序设计语言:Matlab6. 实验过程(1) 按计算公式依次计算一行u同时计算一列l;(2) 因为计算完“J (或七)后,aid就不再使用,为节省存储空间,将计算的a。(和lid)仍存放在矩阵A中的相应位置;,J,J,J(3)使用L矩阵和U矩阵时需要根据元素所在位置取固定值或A中相应位置的值.L对角线上的元素为1,上三角部分为0,下三角部分为A中对应的元素;U的下三角部分为0, 上三角部分为A中对应的元素.算法的伪代码描述:Input:阶数n;矩阵AOutput :矩阵L和U (合并存储在数组A中)行号伪代码注释1for k - 1 to n2for j - k to n3u = a -歹11 u , kjkjkr rjr=1计算U的第k行 (计算结果存放在aij)4endfor5for i - k to n6l = (a -歹11 u )/u ikikit tkkkt=1计算L的第k列 (计算结果存放在aij)7endfor8endfor9return L, U输出L和U7. 结果与分析8. 附录:程序清单 %*% 程序名:Doolittle.m*%程序功能:矩阵LU分解中的Doolittle分解.*%*clc;clear all;n=4;%矩阵阶数A=6 2 1 -1;2 4 1 0; 1 1 4 -1; -1 0 -1 3 disp('A=');disp(A);% LU 分解(Doolittle 分解) for k=1:n%计算矩阵U的元素u_kj % (可参照下面l_ik的公式填写)如 i = k- 1 :nfa- i = 1 : k- 1_A(ik)=A(ik)-Ad:ij *A(j?k):% 计算矩阵 L 的元素endA(U) = A(U)/A(Kk); enddisp('分解结果:); disp('L='); for i=1:nfor j=1:nif i>jfprintf('elseif i=jfprintf('elsefprintf(' end% L在A下三角,U在上三角(对角线为1) end%在下三角部分,则取A对于的元素显示 %8.4f',A(i,j);%在对角线上,则显示1%8d',1);%在上三角部分,则显示0%8d',0);endfprintf('n');% 换行end disp('U=');for i=1:nfor j=1:nif i<=j%在上三角部分或对角线上,则取A对于的元素显示fprintf('%8.4f',A(i,j);else%在下三角部分,则显示0fprintf('%8d',0);endend fprintf('n');% 换行end数值计算方法实验3报告班级:20xx 级 XXXXx 班学号:20xx2409xxxx姓名:XXX成绩:1. 实验名称实验3解线性方程组的直接法(之LU分解法)2. 实验题目用LU分解(Doolittle分解)法求解线性方程组x + 2 x + 6 x = 1<2 x + 5 x +15 x = 36 x'+15 ; + 46【=10、1233. 实验目的熟悉解线性方程组LU分解法.4. 基础理论、若将矩阵A进行了 Doolittle分解,A =LU,则解方程组版=b可以分解求解两个三角方程组Ly = b和Ux = _ .它们都可直接代入求解,其中Ly = b的代入公式为y k=bk-云j =1k = 1,2,,n而ux = y的代入公式为xk = (yk一£u x )/u , kj jkkk = n, n -1,1.j=k +15. 实验环境操作系统:Windows xp;程序设计语言:Matlab6. 实验过程(1)Doolittle分解过程依次计算一行u同时计算一列l完成,并将计算的u(和*仍存放在矩阵A中的相应位置;,J ,J(2)求解方程组的代入公式中用到的u.和l.都直接在A的相应位置取值即可.算法的伪代码描述:,J ,JInput:阶数n;矩阵A;常数项向量bOutput:方程组Ax=b的解x行号伪代码注释1LU分解参加上一实验程序2for k - 1 to n3y = b - i-11 y , k = 1,2,n kkkj jj=1代入法求解Ly=b4endfor5for k - 1 to n6x = (y -才 u x )/u ,k = n,n -1, ,1 kkkj jkkj=k+1回代求解Ux=y7endfor8return x1,,x7. 结果与分析8. 附录:程序清单 %*% 程序名:LinearSystemByLU.m*%程序功能:利用LU分解(Doolittle分解)解方程组.*%*clc;clear all;n=3;%矩阵阶数A=1 2 6; 2 5 15; 6 15 46; b=1;3;10;% LU 分解(Doolittle 分解)for k=1:n%计算矩阵U的元素u_kj % (可参照下面l_ik的公式填写)fa- i = k - 1 : n%计算矩阵L的元素l_ik如j= 1 :k-1endA(i,k) = Ai,k)/A(kJk); endendfork=1:n y(k)=b(k);% L在A下三角,U在上三角(对角线为1)%用代入法求解下三角方程组Ly=b3% y = b -Y' l y , k = 1,2, , nj=133enddisp('方程组 Ly=b 的解:y=');disp(y');for k=n:-1:1%回代求解上三角方程组Ux=yx(k)=y(k);6% x = y - Y u x , k = n, n 一 1,1k kkj jj=k +1666enddisp('原方程组的解:x=');disp(x');数值计算方法实验3报告班级:20xx 级 XXXXx 班学号:20xx2409xxxx姓名:XXX成绩:1. 实验名称实验3解线性方程组的直接法(之Cholesky分解)2. 实验题目对矩阵A进行Cholesky分解,其中r621-r2410A =114-1-1V 10-13° J3. 实验目的理解矩阵的Cholesky分解.4. 基础理论矩阵的Cholesky分解是指将矩阵A = (a/似可以分解为一个下三角矩阵L和L转置的乘积,即A=LLT,其中L各元素可依如下顺序公式计算lkk =九_尤'<* r=1i = k +1, k + 2, , nl = (a -如l l )/1 ,ik ikit tk kkIt=1其中k = 1, 2,,n.5. 实验环境操作系统:Windows xp;程序设计语言:VC+6. 实验过程(1) 按计算公式依次先计算一列对角线上的元素lkk,再计算这列其他元素lik,且对称位置的元素也取同一个值;(

注意事项

本文(数值计算方法实验指导)为本站会员(d****1)主动上传,装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知装配图网(点击联系客服),我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!