用c语言把单元刚度矩阵矩阵组装成整体刚度矩阵的程序
时间: 2023-05-18 07:04:18 浏览: 544
以下是一个用 C 语言将单元刚度矩阵组装成整体刚度矩阵的程序:
```c
#include <stdio.h>
#define MAX_NODES 100
int main() {
int n, m, i, j, k;
int node[MAX_NODES];
double ke[MAX_NODES][MAX_NODES], k_global[MAX_NODES][MAX_NODES];
// 读入节点数和单元数
scanf("%d %d", &n, &m);
// 读入每个节点的编号
for (i = 0; i < n; i++) {
scanf("%d", &node[i]);
}
// 初始化整体刚度矩阵
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
k_global[i][j] = 0.0;
}
}
// 读入每个单元的刚度矩阵
for (k = 0; k < m; k++) {
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
scanf("%lf", &ke[i][j]);
}
}
// 将单元刚度矩阵组装到整体刚度矩阵中
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
k_global[node[i]][node[j]] += ke[i][j];
}
}
}
// 输出整体刚度矩阵
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
printf("%lf ", k_global[i][j]);
}
printf("\n");
}
return 0;
}
```
这个程序假设每个节点都有一个唯一的编号,节点编号从 0 开始,单元刚度矩阵和整体刚度矩阵都是实数矩阵。程序首先读入节点数和单元数,然后读入每个节点的编号,接着初始化整体刚度矩阵,然后读入每个单元的刚度矩阵,最后将单元刚度矩阵组装到整体刚度矩阵中,并输出整体刚度矩阵。
阅读全文