fortran高斯消元
时间: 2023-09-28 20:04:25 浏览: 86
下面是Fortran语言实现高斯消元算法的代码:
```
program gauss_elimination
implicit none
integer, parameter :: n = 3 ! 矩阵维度
real :: a(n,n+1), x(n) ! 矩阵及其解向量
integer :: i, j, k ! 循环计数器
real :: factor ! 消元系数
! 输入矩阵
a = reshape([2, 1, -1, 8, -5, 2, 1, 2, 4, 3, -1, 2], [n,n+1])
! 高斯消元
do k = 1, n-1
do i = k+1, n
factor = a(i,k) / a(k,k)
do j = k+1, n+1
a(i,j) = a(i,j) - factor * a(k,j)
end do
end do
end do
! 回带求解
do i = n, 1, -1
x(i) = a(i,n+1)
do j = i+1, n
x(i) = x(i) - a(i,j) * x(j)
end do
x(i) = x(i) / a(i,i)
end do
! 输出解向量
write(*,*) "Solution vector:"
do i = 1, n
write(*,*) x(i)
end do
end program gauss_elimination
```
这个程序实现了对一个3阶方程组的求解,其中矩阵A的元素为:
```
| 2 1 -1 | | x1 | | 8 |
| 8 -5 2 | | x2 | = | -3 |
| 1 2 4 | | x3 | | 27 |
```
程序中的注释已经解释了每一行代码的作用,这里就不再赘述了。需要注意的是,在Fortran中数组下标是从1开始的,因此在程序中的循环计数器也是从1开始的。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)