文档介绍:数值分析上机实习报告
姓名:
学号:
专业: 大地测量学与测量工程
电话:
序言
所用程序语言:本次数值分析上机实习采用Visual c#作为程序设计语言,利用Visual c#可视化的编程实现方法,采用对话框形式进行设计计算程序界面,并将结果用表格或文档的格式给出。
程序概述:
第一题是采用牛顿法和steffensen法分别对两个题进行分析,编好程序后分别带入不同的初值,观察与真实值的差别,分析出初值对结果的影响,分析两种方法的收敛速度。
第二题使用Visual c#程序设计语言完成了“松弛因子对SOR法收敛速度的影响”,通过在可视化界面下输入不同的n和w值,点击按钮直接可看到迭代次数及计算结果,观察了不同的松弛因子w对收敛速度的影响。
目录
,及牛顿-Steffensen法 3
1. 计算结果 3
2. 结果分析 5
3. 程序清单 5
8
1. 迭代次数计算结果 8
2. 计算X()结果 10
3. 对比分析 12
4. 程序清单: 12
14
实验课题(一)用牛顿法,及牛顿-Steffensen法
题目:分别用牛顿法,及牛顿-Steffensen法
求ln(x+sinx)=0的根。, 1,, 2, 4进行计算。
求sinx=0的根。初值x0分别取1,,, ,3进行计算。
分析其中遇到的现象与问题。
1、计算结果
由于比较多每种方法中只选取了其中两个的图片例在下面:
2、结果分析
通过对以上的牛顿法和steffensen法的练习,我发现在初值的选取很重要,好的初值选出后可以很快的达到预定的精度,要是选的不好就很慢,而且在有的时候得出的还是非数字,所以初始值的选取很重要。
编程实现程序清单如下所示:using System;
using ;
using ponentModel;
using ;
using ;
using ;
using ;
namespace 数值分析一
{
public partial class Form1 : Form
{
public Form1()
{
ponent();
}
private void button3_Click(object sender, EventArgs e)
{
();
}
private void button1_Click(object sender, EventArgs e)
{
if ()
{
try
{
int i = 0;
double[] x = new double[5];
x[0] = ();
();
for (i = 0; i < 4; i++)
{
x[i + 1] = x[i] - ((x[i] + (x[i]))) /
((1 + (x[i])) / (x[i] + (x[i])));
(x[i + 1].ToString());
}
}
catch (Exception ex)
{
();
}
}
else if ()
{
try
{
int i = 0;
double[] x = new double[5];
x[0] = ();
();
for (i = 0; i < 4; i++)
{
x[i + 1] = x[i] - (1 - (x[i]) - x[i]) * (1 - (x[i]) - x[i]) /
((1 - (1 - (x[i]))) - 2 * (1 -