第一范文网 - 专业文章范例文档资料分享平台

1200710222+李卫康+数值分析试验一

来源:用户分享 时间:2025/6/15 9:04:34 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

附 录Ⅰ 实验报告的一般格式

桂林电子科技大学

数学与计算科学学院实验报告

实验室: 实验日期: 年 月 日 数学与计算科学学院 院(系) 年级、专业、班 1200710222 姓名 李卫康 成绩 课程 名称 数值分析 实验项目 名 称 指导 教师 一 ,实验目的 通过实验加深理解线性方程组的雅可比迭代法,高斯-赛德尔迭代法和SOR迭代法的算法思想,掌握三个迭代法Matlab程序的编写和使用。 二,实验原理 Matlab中有三个内置函数可以提取矩阵中的部分元素, >> D = diag(A) 当A为方阵时,输出D为向量,它由A的对角线元素构成;当A为向量时,输出D为对角阵,它以A为对角线元素。 >> L = tril(A,k) 输入A为方阵,k为对角线序号,主对角线k=0,向右上移动依次k递增1,向左下移动k依次递减1,输出L为第k条对角线及其以下元素构成的三角阵。 >> U = triu(A,k) 输入A为方阵,k为对角线序号,输出U为第k条对角线及其以上元素构成的三角阵。 根据线性方程组的雅可比迭代法的迭代公式 x?编写Matlab程序 k?1??k???k??1?1?D?1?b?L?Ux?DL?Ux?Db ??????function [x,k]=jacobi(A,b,x0,e,n) %输入 A为系数矩阵,b为常数的列向量,x0为迭代初始向量,n为最大迭代次数. %输出为解x和迭代次数k. format long; D=diag(diag(A)); L=(-1).*tril(A,-1); U=(-1).*triu(A,1); k=0; x=D\\(L+U)*x0+D\\b; while norm(x-x0)>=e x0=x; x=D\\(L+U)*x0+D\\b; k=k+1; disp([k,x(1),x(2),x(3)]); if k>n break; end end 三,使用仪器,材料 Matlab编译器 四,实验内容与步骤 1. 编写高斯-赛德尔迭代法和SOR迭代法的Matlab程序。 a)function [x,k]=gaosisaide(A,b,x0,e,n) %输入 A为系数矩阵,b为常数的列向量,x0为迭代初始向量,n为最大迭代次数. %输出为解x和迭代次数k. format long; D=diag(diag(A)); L=(-1).*tril(A,-1); U=(-1).*triu(A,1); k=0; x=(D-L)\\U*x0+(D-L)\\b; while norm(x-x0)>=e x0=x; x=(D-L)\\U*x0+(D-L)\\b; k=k+1; disp([k,x(1),x(2),x(3)]); if k>n break; end end >> A=[20 2 3;1 8 1;2 -3 15]; b=[24 12 30]'; x0=[0 0 0]'; >> [x,k]=gaosisaide(A,b,x0,0.00001,100) 1.00000000000000 0.74850000000000 1.14268750000000 2.12873750000000 2.00000000000000 0.76642062500000 1.13810523437500 2.12543163020833 3.00000000000000 0.76737473203125 1.13839920472005 2.12536321000651 4.00000000000000 0.76735559802702 1.13841014899581 2.12536795006223 5.00000000000000 0.76735379259109 1.13840978216834 2.12536811742152 x = 0.76735379259109 1.13840978216834 2.12536811742152 k = 5 b)function [x,k]=sor(A,b,x0,e,n) %输入 A为系数矩阵,b为常数的列向量,x0为迭代初始向量,n为最大迭代次数. %输出为解x和迭代次数k. format long; w=1.5; D=diag(diag(A)); L=(-1).*tril(A,-1); U=(-1).*triu(A,1); k=0; x=(D-w*L)\\(((1-w)*D+w*U)*x0+w*b); while norm(x-x0)>=e x0=x; x=(D-w*L)\\(((1-w)*D+w*U)*x0+w*b); k=k+1; disp([k,x(1),x(2),x(3)]); if k>n break; end end >> A=[20 2 3;1 8 1;2 -3 15]; b=[24 12 30]'; x0=[0 0 0]'; [x,k]=sor(A,b,x0,0.00001,100) 1.00000000000000 -0.10996875000000 0.71179101562500 1.62865605468750 2.00000000000000 1.38176811035156 1.32964996124268 2.30821333895874 3.00000000000000 0.39032044937210 1.07919993406663 2.09158922086620 4.00000000000000 0.97235221050906 1.13591101458382 2.10050825184024 5.00000000000000 0.67082288589384 1.16241990438295 2.16430726821600 6.00000000000000 0.80325643604704 1.11237185325921 2.09090663466036 7.00000000000000 0.76106201118902 1.15906995227364 2.15005526611411 8.00000000000000 0.76184606668877 1.12448352396264 2.10994821079398 9.00000000000000 0.77566609063257 1.14670555650120 2.13390434342685 10.00000000000000 0.76003264393749 1.13403403661859 2.12125151048465 11.00000000000000 0.77259698267942 1.14038638922244 2.12697076498852 12.00000000000000 0.76407512815451 1.13773570042446 2.12502030200218 13.00000000000000 0.76917251290859 1.13847099699200 2.12519664551480 14.00000000000000 0.76647384875608 1.13857628382821 2.12567979263985 15.00000000000000 0.76769867970376 1.13820339452147 2.12508138609576 16.00000000000000 0.76727683909835 1.13858113551537 2.12557827978706 17.00000000000000 0.76731929717143 1.13829113656260 2.12523434164096 18.00000000000000 0.76741895406068 1.13848193877464 2.12544361999978 19.00000000000000 0.76729341765351 1.13837083605269 2.12533075728521 20.00000000000000 0.76739824537617 1.13842789397465 2.12538334047455 21.00000000000000 0.76732544160895 1.13840315637202 2.12536418835254 22.00000000000000 0.76736986336040 1.13841078711781 2.12536716928699 23.00000000000000 0.76734583716255 1.13841091773180 2.12537052324353 24.00000000000000 0.76735707602916 1.13840811627047 2.12536575805354 25.00000000000000 0.76735294898280 1.13841118429545 2.12536988646530 x = 0.76735294898280 1.13841118429545 2.12536988646530 k = 25 >> 2. 利用高斯-赛德尔迭代法的Matlab程序计算线性方程组 ?20x1?2x2?3x3?24? ?x1?8x2?x3?12?2x?3x?15x?3023?1并且在同样误差条件下和算例的雅可比迭代法比较收敛速度。 >> A=[20 2 3;1 8 1;2 -3 15]; >> b=[24 12 30]'; >> x0=[0 0 0]'; >> [x,k]=gaosisaide(A,b,x0,0.00001,100) 1.00000000000000 0.74850000000000 1.14268750000000 2.12873750000000 2.00000000000000 0.76642062500000 1.13810523437500 2.12543163020833

搜索更多关于: 1200710222+李卫康+数值分析试验一 的文档
1200710222+李卫康+数值分析试验一.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c16y5x5eve06m3qp9y5t6_1.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top