文章目录

  • 前言
  • 主要仪器设备及耗材
  • 一、用C语言实现几个多项式插值的程序。(Lagrange插值、Newton插值)
    • 实验内容描述
    • 实验基本原理与设计
    • 分析与设计
    • 实验结果
  • 二、用C语言实现几个求常微分方程初值问题解的程序。(Euler方法及其改进、龙格-库塔(Runge-Kutta)方法)
    • 实验内容描述
    • 实验基本原理与设计
    • 分析与设计
    • 实验结果
  • 三、用C语言实现几个非线性方程求根的程序。(二分法、迭代法、迭代过程的加速)
    • 实验内容描述
    • 实验基本原理与设计
    • 分析与设计
    • 实验结果
  • 四、用C语言实现几个求线性方程组解的程序。(Gauss消去法)
    • 实验内容描述
    • 实验基本原理与设计
    • 分析与设计
    • 实验结果
  • 总结

前言

数值分析课内实验采用程序设计的思想去实现有关数值分析的计算思维,不仅加深了对课上知识的巩固,而且锻炼了自身的编程能力。

主要仪器设备及耗材

  1. PC机
  2. VS 2019开发环境

以下是本篇文章正文内容,下面案例可供参考

一、用C语言实现几个多项式插值的程序。(Lagrange插值、Newton插值)

实验内容描述

拉格朗日插值法,运用多个插值点求根号115的近似值。

实验基本原理与设计

分析与设计

#include<iostream>
using namespace std;
double lagrange(int n,double x[],double y[],double xx)
{double t;double yy = 0;for (int k = 0; k < n; k++){ t= 1;for (int j = 0; j <n ; j++){if (j != k)t *= (xx - x[j]) / (x[k] - x[j]);}yy += t*y[k];}return yy;
}
void main()
{int n;double x[100], y[100];double xx, yy;cout << "Please enter n:";cin >> n;for (int i = 0; i < n; i++){cout << "x"<<i<<":";cin >> x[i];}cout << endl;for (int i = 0; i < n; i++){cout << "y" << i << ":";cin >> y[i];}cout << "Please enter xx:";cin >> xx;yy = lagrange(n, x, y, xx);cout << "Result is:" << yy << endl;}

实验结果

二、用C语言实现几个求常微分方程初值问题解的程序。(Euler方法及其改进、龙格-库塔(Runge-Kutta)方法)

实验内容描述

利用四阶龙格-库塔方法计算常微分方程初值f(x, y)=y-2*x/y , y(0)=1的问题。

实验基本原理与设计

分析与设计

#include<iostream>
using namespace std;
void RK()
{double h = 0.2;int n;double k1, k2, k3, k4;double x[100], y[100];x[0] = 0;y[0] = 1;cout << "请输入计算的次数n:(步长为0.2)";cin >> n;for (int i = 1; i <= n; i++){k1 = y[i - 1] - 2 * x[i - 1] / y[i - 1];k2 = (y[i - 1] + h / 2 * k1) - 2 * (x[i - 1] + h / 2) / (y[i - 1] + h / 2 * k1);k3=(y[i - 1] + h / 2 * k2)- 2 * (x[i - 1] + h / 2) / (y[i - 1] + h / 2 * k2);k4= (y[i - 1] + h * k3) - 2 * (x[i - 1] + h ) / (y[i - 1] + h  * k3);y[i] = y[i - 1] + h /6* (k1+2*k2+2*k3+k4);x[i] = x[i - 1] + h;cout << x[i] << "\t" << y[i] << endl;}
}
int main()
{RK();return 0;
}

实验结果

三、用C语言实现几个非线性方程求根的程序。(二分法、迭代法、迭代过程的加速)

实验内容描述

埃特金算法的实现(x=f(x),f(x)=sin(x)+0.5)。

实验基本原理与设计

分析与设计

#include<iostream>
#include<math.h>
using namespace std;
double f(double x)
{double f;f = sin(x) + 0.5;return f;
}
void aitejin()
{double x[100],xx[100],xxx[100];x[0] = 1.0;double t = 0;for (int i = 1; i < 100; i++) {xx[i] = f(x[i - 1]);xxx[i] = f(xx[i]);x[i] = xxx[i] - pow((xxx[i] - xx[i]), 2) / (xxx[i] - 2 * xx[i] + x[i - 1]);cout << "x" << i << ":" << "\t" << x[i] << endl;if (x[i] - x[i - 1] < pow(10, -6)) {t = x[i];break;}}cout << "近似根为" << t << endl;
}
int main() {aitejin();return 0;
}

实验结果

四、用C语言实现几个求线性方程组解的程序。(Gauss消去法)

实验内容描述

用高斯消去法计算10 - 5 x1 + x2 = 1 x1 + x2 = 2方程组问题。

实验基本原理与设计

分析与设计

#include<iostream>
#include<iomanip>
#include<cmath>
using namespace std;
bool gauss(int n, double a[][10])
{int k, i, j;for (k = 0; k < n - 1; k++){// 判断是否非奇异矩阵if (a[k][k] == 0)return false;for (i = k + 1; i < n; i++){// 直接用 a[i][k] 来存储下面的表达式的值a[i][k] = a[i][k] / a[k][k];for (j = k + 1; j < n + 1; j++)a[i][j] -= a[i][k] * a[k][j]; // 对第 i 行元素进行一次消元}}// 判断 Xn 是否为有唯一解,否则返回错误if (a[n - 1][n - 1] == 0)return false;// 回代求解for (k = n - 1; k >= 0; k--){for (j = k + 1; j < n; j++)a[k][n] -= a[k][j] * a[j][n];a[k][n] /= a[k][k];}return true;
}
int main(){int i, j, n;double a[10][10];cout << " 请输入方程组的未知数的个数 n:" << endl;cin >> n;cout << " 请输入方程组的系数和和: " << endl;for (i = 0; i < n; i++){for (j = 0; j <= n; j++)cin >> a[i][j];}if (gauss(n, a)){cout << " 方程组的解是: " << endl;for (i = 0; i < n; i++)cout << setw(5) << a[i][n] << " ";cout << endl;}elsecout << " 方程不能用此方法解出 " << endl;
}

实验结果


总结

数值分析实验报告只要求写一种方法,但是我写了其他的方法,详情可参考以下链接
链接:冲冲冲~
提取码:1kvi
复制这段内容后打开百度网盘手机App,操作更方便哦

武汉理工大学数值分析课内实验相关推荐

  1. 武汉理工大学操作系统 课内实验

    文章目录 前言 主要仪器设备及耗材 一.动态分区管理 实验内容描述 实验基本原理与设计 二.磁盘调度 实验内容描述 实验基本原理与设计 总结 前言 操作系统课内实验有两个,验收的学姐人贼好,只看了验收 ...

  2. matlab武汉理工大学数值分析线性函数拟合实验_「首席架构师推荐」数值计算库精选...

    这是一个著名的数值库列表,这些库用于软件开发中执行数值计算.它不是一个完整的列表,而是一个包含Wikipedia上文章的数字库列表,很少有例外. 典型库的选择取决于一系列不同的需求,例如:期望的特性( ...

  3. matlab武汉理工大学数值分析线性函数拟合实验_10数值分析第七章数值微积分大学数学云课堂...

    相关内容 1第二章数值分析的基本概念之有效数字与秦九韶算法 1数值分析第二章基本概念作业答疑大学数学云课堂 2数值分析第三章线性代数方程组的直接法大学数学云课堂 2数值分析第三章线性方程组直接法解题注 ...

  4. matlab武汉理工大学数值分析线性函数拟合实验_11数值分析第七章数值微积分龙贝格积分大学数学云课堂...

    数值分析基础入门所有知识点相关内容,请按照前面数字依次学习 1第二章数值分析的基本概念之有效数字与秦九韶算法 1数值分析第二章基本概念作业答疑大学数学云课堂 2数值分析第三章线性代数方程组的直接法大学 ...

  5. 【数据库系统原理】数据库课内实验

    说明:这是武汉理工大学计算机学院[数据库系统原理]课程课内实验. >>点击查看武汉理工大学计算机专业课程资料汇总 >>点击查看WUTer计算机专业实验汇总 谨记:纸上得来终觉浅 ...

  6. webservice-UML课内实验报告实验三

    1.webservice 现将网上关于webservice的讲解提炼出来,通过一个最简单使用并且方便的例子,告诉大家什么是webservice. 简单来说,webservice就是远程调用技术,也叫X ...

  7. 武汉理工大学软件测试重点,软件测试实验报告书(武汉理工大学).docx

    学生学号 0121310880112 实验课成绩 武汉理工大学 学 生 实 验 报 告 书 实验课程名称 软件质量保证与测试 开 课 学 院 计算机科学与技术学院 指导老师姓名 王云华 ___ 学 生 ...

  8. 武汉理工大学计算机网,武汉理工大学计算机基础综合实验

    [实例简介] 武汉理工大学软件工程专业计算机基础综合实验(c实验),计费管理系统.基本功能加部分扩展功能实现,经过验收合格. [实例截图] [核心代码] 计算机基础综合实验 └── AMS ├── A ...

  9. 计算机组成与结构课内实验:16位模型机的设计

    我们当时是有两个实验的.一个是计组课内的实验:16位模型机的设计.还有一个是计组的最终大课设:计算机组成与结构综合实验,另一篇文章我将给出综合实验的报告 第一个是课内的设计实验: 引言 1.1 设计目 ...

最新文章

  1. 春节奖励“玩套路”?饿了么致歉!
  2. java对象的状态,Java编程菜鸟课程:状态对象
  3. C#游戏开发快速入门 2.1 构建游戏场景
  4. hust sci列表
  5. input输入框获取焦点时,光标置于最右
  6. 计算机网络标准体系,计算机网络标准体系结构实验报告.doc
  7. 无限流量手机怎样改服务器,无限流量手机服务器
  8. 智能手机操作系统安全性简评
  9. css中的伪类与伪元素的区别
  10. Simulink里的S函数介绍(Matlab-1)
  11. 如何在水经注微图中加载地形地貌图进行道路设计
  12. 论证可行性有哪几个方面
  13. 闰秒及其对计算机系统影响,闰秒原理及其对计算机系统影响
  14. 昨晚,谷歌发布了一个可怕的人工智能!
  15. android手势_您可能不知道的七个Android手势
  16. AUTOCAD——复制命令、镜像命令
  17. 【2.skynet c gate服务中databuffer解析(解包)】
  18. Java-分布式锁的实现方式
  19. 软文标题怎么写?这8种标题写法你用对了吗
  20. 用词误导:无症状指的是无肺炎症状,发烧40度、很疼痛都是无症状

热门文章

  1. js根据日期区间获取天数
  2. 软考初级程序员易错题:在统一建模语言 (UML)中,( )展现了 一组对象以及它们之间的关系, 给出了系统的静态设计视图或静态进程视图,描述了( )中所建立的事物 实例的静态快照。
  3. 【GitHub】GItHub 克隆速度非常慢的解决方法。
  4. Pixhawk(APM固件) ArduPilot的遥控器读取及油门转换
  5. JAVA classpath设置方式启动详解:java class名、java -jar
  6. 32android好看的样式及demo汇总
  7. python3.6 str.replace() 字符串替换方法
  8. STM32状态机编程实例——全自动洗衣机(上)
  9. 搭建私人网络硬盘、个人网盘,百度网盘——Seafile安装部署指南
  10. java-多态和递归