博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
追赶法_解线性方程组的直接解法
阅读量:4155 次
发布时间:2019-05-26

本文共 1376 字,大约阅读时间需要 4 分钟。

追赶法_解线性方程组的直接解法

标签:计算方法实验

#include 
const int maxn = 15;int main(){ /* 数据存储格式: a[]对角线上, b[]对角线, c[]对角线下, f[]右端常数 double a[N] = {0, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1}; double b[N] = {0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4}; double c[N] = {0, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0}; double f[N] = {7, 5, -13, 2, 6, -12, 14, -4, 5, -5}; double x[N] = {0}, u[N] = {0}, y[N] = {0}; */ freopen("zgf.txt", "r", stdin); freopen("ans.txt", "w", stdout); double a[maxn] = {
0}, b[maxn] = {
0}, c[maxn] = {
0}, f[maxn] = {
0}, x[maxn] = {
0}, u[maxn] = {
0}, y[maxn] = {
0}; int n, N; scanf("%d", &n); N = n + 1; //0列不使用 scanf("%lf %lf %lf", &b[1], &a[2], &f[1]); for(int i = 2; i < N - 1; i++) scanf("%lf %lf %lf %lf", &c[i - 1], &b[i], &a[i + 1], &f[i]); scanf("%lf %lf %lf", &c[N - 1], &b[N - 1], &f[N - 1]); //追 u[1] = c[1] / b[1]; //L1 == b[1] y[1] = f[1] / b[1]; for(int i = 2; i < N - 1; i++) { double l = b[i] - a[i] * u[i - 1]; //克洛特分解A = LU u[i] = c[i] / l; y[i] = (f[i] - a[i] * y[i - 1]) / l; } y[N - 1] = (f[N - 1] - a[N - 1] * y[N - 2]) / (b[N - 1] - a[N - 1] * u[N - 2]); //赶 x[N - 1] = y[N - 1]; for(int i = N - 2; i >= 1; i--) x[i] = y[i] - u[i] * x[i + 1]; for(int i = 1; i < N; i++) printf("x%d = %f\n", i, x[i]); return 0;}

数据文件

input
实验结果
output

你可能感兴趣的文章
高德地图js API实现鼠标悬浮于点标记时弹出信息窗体显示详情,点击点标记放大地图操作
查看>>
初始化VUE项目报错
查看>>
vue项目使用安装sass
查看>>
在osg场景中使用GLSL语言——一个例子
查看>>
laravel 修改api返回默认的异常处理
查看>>
laravel事务
查看>>
【JavaScript 教程】浏览器—History 对象
查看>>
这才是学习Vite2的正确姿势!
查看>>
7 个适用于所有前端开发人员的很棒API,你需要了解一下
查看>>
20种在学习编程的同时也可以在线赚钱的方法
查看>>
隐藏搜索框:CSS 动画正反向序列
查看>>
【视频教程】Javascript ES6 教程27—ES6 构建一个Promise
查看>>
【5分钟代码练习】01—导航栏鼠标悬停效果的实现
查看>>
127个超级实用的JavaScript 代码片段,你千万要收藏好(中)
查看>>
127个超级实用的JavaScript 代码片段,你千万要收藏好(下)
查看>>
Flex 布局教程:语法篇
查看>>
年薪50万+的90后程序员都经历了什么?
查看>>
2019年哪些外快收入可达到2万以上?
查看>>
【JavaScript 教程】标准库—Date 对象
查看>>
前阿里手淘前端负责人@winter:前端人如何保持竞争力?
查看>>