版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数值分析上机实习报告姓名: 学号: 专业: 大地测量学与测量工程 : 序 言所用程序语言:本次数值分析上机实习采用Visual c#作为程序设计语言,利用Visual c#可视化的编程实现方法,采用对话框形式进行设计计算程序界面,并将结果用表格或文档的格式给出。程序概述:第一题是采用牛顿法和steffensen法分别对两个题进行分析,编好程序后分别带入不同的初值,观察与真实值的差别,分析出初值对结果的影响,分析两种方法的收敛速度。第二题使用Visual c#程序设计语言完成了“松弛因子对SOR法收敛速度的影响” ,通过在可视化界面下输入不同的n和w值,点击按钮直接可看到迭代次数及计算结果,观察
2、了不同的松弛因子w对收敛速度的影响。目 录 TOC o 1-3 h z u HYPERLINK l _Toc185758631 一用牛顿法,及牛顿-Steffensen法 PAGEREF _Toc185758631 h 3 HYPERLINK l _Toc185758632 1. 计算结果 PAGEREF _Toc185758632 h 3 HYPERLINK l _Toc185758635 2. 结果分析5 HYPERLINK l _Toc185758636 3. 程序清单5 HYPERLINK l _Toc185758639 二松弛因子对SOR法收敛速度的影响8 HYPERLINK l _
3、Toc185758640 1. 迭代次数计算结果8 HYPERLINK l _Toc185758641 2. 计算X()结果10 HYPERLINK l _Toc185758641 3. 对比分析12 HYPERLINK l _Toc185758647 4. 程序清单:12 HYPERLINK l _Toc185758648 三实习总结14实验课题(一)用牛顿法,及牛顿-Steffensen法 题目:分别用牛顿法,及牛顿-Steffensen法 求ln(x+sinx)=0的根。初值x0分别取0.1, 1,1.5, 2, 4进行计算。求sinx=0的根。初值x0, 1.8,3进行计算。分析其中遇
4、到的现象与问题。1、计算结果由于比较多每种方法中只选取了其中两个的图片例在下面: 2、结果分析 通过对以上的牛顿法和steffensen法的练习,我发现在初值的选取很重要,好的初值选出后可以很快的达到预定的精度,要是选的不好就很慢,而且在有的时候得出的还是非数字,所以初始值的选取很重要。3.程序清单编程实现程序清单如下所示:using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using
5、System.Windows.Forms;namespace 数值分析一 public partial class Form1 : Form public Form1() InitializeComponent(); private void button3_Click(object sender, EventArgs e) this.Close(); private void button1_Click(object sender, EventArgs e) if (radioButton1.Checked) try int i = 0; double x = new double5; x0
6、 = double.Parse(textBox1.Text); listBox1.Items.Clear(); for (i = 0; i 4; i+) xi + 1 = xi - (System.Math.Log(xi + System.Math.Sin(xi) / (1 + System.Math.Cos(xi) / (xi + System.Math.Sin(xi); listBox1.Items.Add(xi + 1.ToString(); catch (Exception ex) MessageBox.Show(ex.Message); else if (radioButton2.C
7、hecked) try int i = 0; double x = new double5; x0 = double.Parse(textBox1.Text); listBox1.Items.Clear(); for (i = 0; i 4; i+) xi + 1 = xi - (1 - System.Math.Sin(xi) - xi) * (1 - System.Math.Sin(xi) - xi) / (1 - System.Math.Sin(1 - System.Math.Sin(xi) - 2 * (1 - System.Math.Sin(xi) + xi); listBox1.It
8、ems.Add(xi + 1.ToString(); catch (Exception ex) MessageBox.Show(ex.Message); private void button2_Click(object sender, EventArgs e) if (radioButton3.Checked) try int i = 0; double x = new double5; x0 = double.Parse(textBox2.Text); listBox1.Items.Clear(); for (i = 0; i 4; i+) xi + 1 = xi - System.Mat
9、h.Sin(xi)/System.Math.Cos(xi); listBox1.Items.Add(xi + 1.ToString(); catch (Exception ex) MessageBox.Show(ex.Message); else if(radioButton4.Checked) try int i = 0; double x = new double5; x0 = double.Parse(textBox2.Text); listBox1.Items.Clear(); for (i = 0; i 4; i+) xi + 1 = xi - (System.Math.Asin(S
10、ystem.Math.Tan(xi) - xi) * (System.Math.Asin(System.Math.Tan(xi) - xi) / (System.Math.Asin(System.Math.Tan(System.Math.Asin(System.Math.Tan( xi) -2*(System.Math.Asin(System.Math.Tan( xi)+xi); listBox1.Items.Add(xi + 1.ToString(); catch (Exception ex) MessageBox.Show(ex.Message); 实验课题(二) 松弛因子对SOR法收敛速
11、度的影响二、编写一个用SOR法解方程组得计算机程序,其中 要求程序中不存系数矩阵A,分别对不同的阶数取w=1.1, 1.2, .,1.9进行迭代,记录近似解x(k)达到|x(k)-x(k-1)|10-6时所用的迭代次数k,观察松弛因子对收敛速度的影响,并观察当w0或w2会有什么影响?迭代次数计算结果(1)当n=10时,w=1.3,1.4,1.5,1.6,1.7,1.8由于太多仅列出其中四个,所求的迭代次数结果如下: (2)当n=20时,求其迭代次数方法如上,只写出当时的迭代次数,计算结果如下: 2、计算x()结果(1)当n=10,由于松弛因子较多,在此取松弛因子分别为1.1、1.的情况下迭代后
12、的x()的值,所求的x()的结果分别如下所示: (2)当n=20,由于松弛因子较多,在此取松弛因子分别为1.1、1.的情况下迭代后的x()的值,所求的x()的结果分别如下所示 对比分析分析对比实验结果可得:w=0或2时,不进行迭代,迭代次数结果直接为0,松弛法迭代不收敛;当0w2时,松弛法迭代收敛;当0w1,当矩阵阶数一定时,松弛因子越大,收敛越快;当1w2,当矩阵阶数一定时,松弛因子越小,收敛越快;对于相同的松弛因子,阶数越大时,迭代次数越多。当w2时,程序计算结果返回迭代次数,求得的x()的值显示为非数字,表明当w2时,松弛法迭代是不收敛的。程序清单利用C#编程实现程序清单如下所示:pub
13、lic string SOR(double, a, double b, double x0, int n, double w) int i = 0; int j = 0; int k = 0; int M = 0; double x = new doublen + 1; string YYY = null; double err = 0; double XI = new doublen + 1; double e = 1E-06; double Item1 = new; double Item2 = new; double Item3 = new; double Item4 = new dou
14、blen + 1; for (i = 0; i = n; i+) x(i) = x0(i); k = 1; while (k = 10000) err = 0; for (i = 0; i = n; i+) XI(i) = x(i); Item1(i) = (1 - w) * x(i); Item2(i) = w * b(i) / a(i, i); for (j = 0; j = i - 1; j+) Item3(i) += w * a(i, j) * x(j) / a(i, i); for (j = i + 1; j = n; j+) Item4(i) += w * a(i, j) * x(
15、j) / a(i, i); x(i) = Item1(i) + Item2(i) - Item3(i) - Item4(i); Item1(i) = 0; Item2(i) = 0; Item3(i) = 0; Item4(i) = 0; if (err Abs(XI(i) - x(i) err = Abs(XI(i) - x(i); if (err e) for (i = 0; i = n; i+) YYY += x( + (string)i + 1 + )= + (string)x(i) + + Strings.Chr(10) + Strings.Chr(13); return YYY;
16、else k += 1; private void button1_Click(object sender, EventArgs e)int n = 0; double w = 0; n = 19; w = 1.9; double, a = new doublen + 1, n + 1; double b = new doublen + 1; double x0 = new doublen + 1; int M = 0; int i = 0; int j = 0; for (i = 1; i = n - 1; i+) a(0, 0) = -4; a(0, 1) = 1; a(n, n) = -4; a(n, n - 1) = 1; a(i, i) = -4; a(i, i - 1) = 1; a(i, i + 1) = 1; for (i = 1; i = n - 1; i+) b(0) = -3; b(n) = -3; b(i) = -2; for (i = 0; i = n; i+) x0(i) = 0; Console.Write(SOR(a, b, x0, n, w); Console.Read();三实习总结:通过这次上机实习我知道了数值分析在计算中的重要性,我从实践的角度更为深入地掌握了雅格比法、高斯塞德尔迭代法以及解方程组中松弛因子对SOR法收
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 川崎病护理工作压力与应对策略
- 耳尖放血疗法临床应用指南解读课件
- 尿管护理中的护理记录规范
- 引流管护理相关法律法规解读
- 康复护理中的健康教育新方法
- 康复护理:让生活重新绽放光彩
- 2025-2030年任务分配与进度追踪工具行业深度调研及发展战略咨询报告
- 2025-2030年全植物基鸡肉卷推广行业跨境出海战略分析研究报告
- 2025-2030年定制化针织窗帘解决方案企业制定与实施新质生产力战略分析研究报告
- 2025-2030年热处理含氰废物治理服务行业商业模式创新分析研究报告
- 2024年福建烟草海晟投资管理有限公司招聘笔试参考题库附带答案详解
- 人教版小学四年级信息技术上册知识点整理与归纳
- 2024年新华文轩出版传媒股份有限公司招聘笔试参考题库含答案解析
- 小学语文文言文教学策略
- 《肿瘤分子生物学》课件
- 四年级监测音乐复习提纲
- 记账凭证封面直接打印模板
- 混凝土道路工程施工设计方案
- 治安管理处罚法一本通
- 急性创面的评估和处置讲义
- 头针疗法幻灯片
评论
0/150
提交评论