杜利特尔分解法Doolittle(LU分解法)_解线性方程组的直接解法
杜利特尔分解法Doolittle(LU分解法)_解线性方程组的直接解法
标签:计算方法实验
#include <stdio.h>
#include <math.h>const int maxn = 15;int main(){double a[maxn][maxn], b[maxn], y[maxn], x[maxn], l[maxn][maxn], u[maxn][maxn];int i, j, k, r, n, sum;freopen("lu.txt", "r", stdin);scanf("%d", &n);for(int i = 1; i <= n; i++){for(int j = 1; j <= n; j++) scanf("%lf", &a[i][j]);scanf("%lf", &b[i]);}/*打印数据文件for(int i = 1; i <= n; i++){for(int j = 1; j <= n; j++) printf("%10f", a[i][j]);printf("%10f\n", b[i]);}*/for(i = 1; i <= n; i++) u[1][i] = a[1][i]; //U的第一行元素for(i = 1; i <= n; i++) l[i][1] = a[i][1] / u[1][1]; //L的第一列元素for(k = 2; k <= n; k++){for(j = k; j <= n; j++){ //计算U的第k行元素for(r = 1, sum = 0; r <= k - 1; r++) sum += (l[k][r] * u[r][j]);u[k][j] = a[k][j] - sum;}for(i = k; i <= n; i++){ //计算L的第k列元素for(r = 1, sum = 0; r <= k - 1; r++) sum += (l[i][r] * u[r][k]);l[i][k] = (a[i][k] - sum) / u[k][k];}}/*打印L Ufor(i = 1; i <= n; i++){for(j = 1; j <= n; j++) printf("%10f", l[i][j]);printf("\t\t");for(k = 1; k <= n; k++) printf("%10f", u[i][k]);printf("\n");}*/y[1] = b[1]; //求解Ly = bfor(i = 2; i <= n; i++){for(k = 1, sum = 0; k <= i - 1; k++) sum += (l[i][k] * y[k]);y[i] = b[i] - sum;}x[n] = y[n] / u[n][n]; //求解Ux = yfor(i = n - 1; i >= 1; i--){for(k = i + 1, sum = 0; k <= n; k++) sum += (u[i][k] * x[k]);x[i] = (y[i] - sum) / u[i][i];}for(int i = 1; i <= n; i++) printf("%10f\n", x[i]);return 0;
}
数据文件
实验结果
杜利特尔分解法Doolittle(LU分解法)_解线性方程组的直接解法相关推荐
- 紧凑存储的杜利特尔分解法Doolittle(LU分解法)_解线性方程组的直接解法
紧凑存储的杜利特尔分解法Doolittle(LU分解法)_解线性方程组的直接解法 标签:计算方法实验 /* 紧凑存储的杜利特尔分解法Doolittle:如果初始矩阵不要求保留的话,可以紧凑存储.因为每 ...
- 杜利特尔 (Doolittle)矩阵分解法求线性方程组的解
简介 若方阵 A 可以分解为一个下三角矩阵 L 和一个上三角矩阵 U的乘积,即 A = LU,则这种分解称为 A 的一种三角分解或 LU分解.如果 L 为单位下三角矩阵,则称为杜利特尔 (Doolit ...
- 数值分析-杜利特尔分解法C语言代码
直接三角分解法 如果方程组的系数矩阵可以分解为一个下三角矩阵和一个上三角矩阵的乘积,即:A=LU. Doolittle(杜利特尔)分解 在对系数矩阵进行三角分解时,如果L为单位下三角矩阵(主对角线系数 ...
- 平方根法 乔累斯基分解Cholesky_解线性方程组的直接解法
平方根法 乔累斯基分解Cholesky_解线性方程组的直接解法 标签:计算方法实验 #include <stdio.h> #include <math.h>const int ...
- Doolittle分解法(LU分解法)的Python实现
在解一般的非奇异矩阵线性方程组的时候,或者在迭代改善算法中,需要使用LU分解法. 对于一个一般的非奇异矩阵A=(a11, a12,-,a1n,a21,-ann),可分解为一个下三角矩阵L和一个上三角矩 ...
- 乔利斯基三角分解_杜利特尔及乔利斯基三角分解
/**********改进乔利斯基三角分解**********/ void Improved_Cholesky() { int i,j,k; float t; L=(float **)malloc(s ...
- 计算方法:列主元消去法,LU分解法, 雅可比迭代法,高斯塞德尔迭代法 解线性方程(C++)
Matrix.h包括矩阵类Matrix的定义,Matrix.cpp包括该类成员函数的实现,LinearEqu.h包括线性方程类LinearEqu的定义,继承自Matrix类,其中solve()方法为列 ...
- Matlab | Lab4——用LU 分解法、 Jacobi 迭代、 Gauss-Seidel 迭代 解线性病态方程组(系数矩阵为Hilbert矩阵)
1.要求 考虑线性方程组Hx=b,其中H为n阶Hilbert矩阵,即 通过先给定解(例如取x的各个分量为1),再计算出右端向量b的办法给出一个精确解已知的问题. (1)分别编写Doolittle LU ...
- 解线性方程组之LU分解算法实现
一:实验目的: 1. 掌握LU分解算法原理: 2. 使用C语言编程实现LU分解算法. 二:实验要求 用LU分解算法求解给定的线性方程组 . 函数接口定义: bool Direct( int n, do ...
- 数值计算方法第三章—线性方程组的数值解法知识点总结
线性方程组的数值解法 本文参考书为马东升著<数值计算方法> 高斯消去法 顺序高斯消去法 通过初等变换消去方程组系数矩阵主对角线以下的元素,而使方程组化为等价的上三角形方程组 列主元高斯消去 ...
最新文章
- VSTO之旅系列(一):VSTO入门
- 爬虫爬取链接中文字_使用爬虫技术爬取图片链接并下载图片
- kill -0 pid是做什么用的?
- 幕后常驻嘉宾配音小姐姐的2021年度总结
- 工业级千兆以太网光纤收发器产品介绍
- php环境苹果搭建,mac下搭建php环境
- 用于故障诊断的残差收缩网络
- Go 编码建议——项目布局
- 实现在线预览word文档
- python爬虫简单示例
- 百度关键词模拟点击破解版 SEO排名优化神器
- 排序算法——鸡尾酒排序
- Practical Test Reminders, Character Arrays, C-Strings
- 企业如何进行客户细分 客户细分的方法和类型
- 看代码解读CenterNet :Objects as Points
- 导出富文本格式word
- 数据中心机房精密空调制冷量的估算
- python爬虫实例教程-Python网络爬虫实例教程(视频讲解版)
- 【渝粤教育】电大中专电子商务网站建设与维护 (18)作业 题库
- 不错的一个麦肯锡信任公式