求解线性方程组的方法组

求解线性方程组
system of linear equations
用部分选主元的高斯消去法并行求解线性方程组,免费工学论文,免费论文网,免费计算机科学技术论文 关键词: 高斯消去法;求解线性方程组;并行 [gap=1299]keywords: gsystem of linear equations ;parallel
基于10个网页-
文章利用近似逆矩阵构造了一类求解线性方程组的并行迭代算法。
In this paper, a parallel iterative algorithm for linear equations is given by approximating inverse of a matrix.
分层快速多极算法被用来加速用迭代法求解线性方程组时的矩阵向量乘积的运算。
Multilevel fast multipole method is used to fast calculate the matrix-vector product when we solve the linear system by iterative method.
当输入层和隐层之间的权值计算出来后,就可以通过求解线性方程组得到隐层和输出层之间的权值。
The complex-valued weights between hidden and output layer are updated by solving linear system based on finding the complex-valued weights between input and hidden layer.
$firstVoiceSent
- 来自原声例句
请问您想要如何调整此模块?
感谢您的反馈,我们会尽快进行适当修改!
请问您想要如何调整此模块?
感谢您的反馈,我们会尽快进行适当修改!C语言 解线性方程组_百度知道
C语言 解线性方程组
求C语言解线性方程组的代码。另外,在网上找了不少编好的程序,运行总有问题。其中有很多都是提示这个错误:error C2447: missing function header (old-style formal list?请问这是哪方面的错误?
我有更好的答案
#include&&stdio.h&#include&&string.h&#include&&math.h&#include&&stdlib.h&#define&N&20/*以下程序为不选主元的三角分解法(Doolittle)*/main(){ int&i,j,k,s; float&a[N][N]={0},L[N][N]={0},U[N][N]={0},sigma1,sigma2,b[N],y[N],x[N]; /*为L主对角线元素赋1*/ for(i=0;i&N;i++) {
L[i][i]=1; } /*输入矩阵a*/ for(i=0;i&N;i++) {
printf(&请输入矩阵第%d行元素:\n&,i+1);
for(j=0;j&N;j++)
scanf(&%f&,&a[i][j]); } /*计算U第一行的元素和L第一列的元素*/ for(i=0;i&N;i++) {
U[0][i]=a[0][i];
L[i][0]=a[i][0]/U[0][0]; } for(k=1;k&N;k++) {
/*计算矩阵U*/
for(j=k;j&N;j++)
for(s=0;s&=k-1;s++)
sigma1+=L[k][s]*U[s][j];
U[k][j]=a[k][j]-sigma1;
/*计算矩阵L*/
for(i=k;i&N;i++)
for(s=0;s&=k-1;s++)
sigma2+=L[i][s]*U[s][k];
L[i][k]=(a[i][k]-sigma2)/U[k][k];
} } /*输出矩阵L、U*/ printf(&a矩阵为:\n&); for(i=0;i&N;i++) {
for(j=0;j&N;j++)
printf(&%5.1f&&,a[i][j]);
printf(&\n&); } printf(&L矩阵为:\n&); for(i=0;i&N;i++) {
for(j=0;j&N;j++)
printf(&%5.1f&&,L[i][j]);
printf(&\n&); } printf(&U矩阵为:\n&); for(i=0;i&N;i++) {
for(j=0;j&N;j++)
printf(&%5.1f&&,U[i][j]);
printf(&\n&); } printf(&请输入b矩阵\n&,i+1); for(i=0;i&N;i++) scanf(&%f&,&b[i]); /*回代法求解方程组Ly=b*/
for(i=0;i&N;i++) {
for(k=0;k&=i-1;k++)
sigma1+=L[i][k]*y[k];
y[i]=b[i]-sigma1; } for(i=N-1;i&=0;i--) {
for(k=i+1;k&N;k++)
sigma2+=U[i][k]*x[k];
x[i]=(y[i]-sigma2)/U[i][i]; } printf(&x为:\n&); for(i=0;i&N;i++) printf(&%5.1f&&,x[i]); printf(&\n&);}
采纳率:65%
来自团队:
给,下面的代码已经编译运行确认,肯定好用了,试试吧:)#include&conio.h& #include&stdio.h& #include&math.h&#include&stdlib.h&#define NUMBER 20#define Esc
0x1b#define Enter 0x0dfloat A[NUMBER][NUMBER+1] ,int flag,n;void exchange(int r,int k);float max(int k);void message();int main(){
float x[NUMBER];
/*此数组用于存放方程解*/
int k,i,j;
system(&cls&);
printf(&\n用Gauss列主元消元法解线性方程组&);
printf(&\n1.解方程组请按Enter.&);
printf(&\n2.退出程式请按Esc.&);
celect=getch();
if(celect==Esc)
printf(&\n 输入方程组的维数:n=&);
scanf(&%d&,&n);
printf(&\n现在输入系数矩阵A和向量b:&);
for(i=1;i&=n;i++)
printf(&\n请输入a%d1--a%d%d系数和向量b%d: \n&,i,i,n,i);
/*实现将每一行中的系数和向量一次性输入,数之间用空格格开,输完后回车确定*/
for(j=1;j&=n+1;j++)
/*将刚才输入的数存入数组*/
scanf(&%f&,&A[i][j]);
for(k=1;k&=n-1;k++)
ark=max(k);
if(ark==0)
/*判断方程是否为线性方程,即是否合法*/
printf(&\n此方程组不合法!&);message();
else if(flag!=k)
exchange(flag,k);
for(i=k+1;i&=n;i++)
for(j=k+1;j&=n+1;j++)
A[i][j]=A[i][j]-A[k][j]*A[i][k]/A[k][k];
x[n]=A[n][n+1]/A[n][n];
for( k=n-1;k&=1;k--)
float me=0;
for(j=k+1;j&=n;j++)
me=me+A[k][j]*x[j];
x[k]=(A[k][n+1]-me)/A[k][k];
for(i=1;i&=n;i++)
printf(&\nx%d=%f&,i,x[i]);
message();
return 1;}void exchange(int r,int k)
/*交换行的矩函数*/{
for(i=1;i&=n+1;i++)
A[0][i]=A[r][i];
for(i=1;i&=n+1;i++)
A[r][i]=A[k][i];
for(i=1;i&=n+1;i++)
A[k][i]=A[0][i];}float max(int k)
/*比校系数大小的函数*/{
float temp=0;
for(i=k;i&=n;i++)
if(fabs(A[i][k])&temp)
temp=fabs(A[i][k]);
}}void message()
/*实现菜单选择的函数*/{
printf(&\n 继续运算按 Enter ,退出程式按 Esc!&);
switch(getch())
case Enter: main();
case Esc: exit(0);
default:{printf(&\n不合法的输入!&);message();}
本回答被提问者采纳
Input a liner system with exactly one solution.
Work out the roots using elimination
Example Input:
(x1 + x2 == 2, x1 - x2 == 0)
x1 = 1.000000
x2 = 1.000000
which are the solution */#include&stdio.h&#include&math.h&#include&algorithm&const int maxn = 100;const double eps = 1e-8;double a[maxn][maxn],b[maxn];void getinfo(){ scanf(&%d&,&n); for(int i=0;i&n;i++) {
for(int j=0;j&n;j++)
scanf(&%lf&,&a[i][j]);
scanf(&%lf&,&b[i]); }}void process(){ for(int i=0;i&n;i++) {
int p = -1;
for(int j=i;j&n && p==-1;j++)
if(fabs(a[j][i])&eps)
printf(&Cannot determine the roots.\n&);
for(int j=i;j&n;j++) swap(a[i][j],a[p][j]);
swap(b[i],b[p]);
for(int j=0;j&n;j++)
if(j!=i && fabs(a[j][i])&eps)
double u = -a[j][i] / a[i][i];
for(int k=0;k&n;k++)
a[j][k] += a[i][k] *
b[j] += b[i] *
} } for(int i=0;i&n;i++) printf(&x%d = %lf\n&,i,b[i]/a[i][i]);}int main(){ getinfo(); process(); return 0;}
对,把你运行有问题的代码粘上来
把代码贴出来
其他2条回答
为您推荐:
其他类似问题
线性方程组的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。Python线性方程组求解运算示例
转载 &发布时间:日 11:18:39 & 作者:Furious7
这篇文章主要介绍了Python线性方程组求解运算,涉及Python使用scipy.linalg.solve进行方程组求解运算的相关操作技巧,需要的朋友可以参考下
本文实例讲述了Python线性方程组求解运算。分享给大家供大家参考,具体如下:
求解线性方程组比较简单,只需要用到一个函数(scipy.linalg.solve)就可以了。比如我们要求以下方程的解,这是一个非齐次线性方程组:
3x_1 + x_2 - 2x_3 = 5
x_1 - x_2 + 4x_3 = -2
2x_1 + 3x_3 = 2.5
代码如下:
# coding=utf-8
import numpy as np
from scipy.linalg import solve
a = np.array([[3, 1, -2], [1, -1, 4], [2, 0, 3]])
b = np.array([5, -2, 2.5])
x = solve(a, b)
print("脚本之家测试结果:")
输出结果:
PS:这里再为大家推荐几款计算工具供大家进一步参考借鉴:
在线一元函数(方程)求解计算工具:
科学计算器在线使用_高级计算器在线计算:
在线计算器_标准计算器:
更多关于Python相关内容感兴趣的读者可查看本站专题:《》、《》、《》、《》、《》及《》
希望本文所述对大家Python程序设计有所帮助。
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具第三节 线性方程组的解
第三节 线性方程组的解
3. AB=(Ab)
3.13.23.13.2
R(A)= R(B)=3
R(A)=1 R(B)=2
R(A)= R(B)=2
Distant Education College, Jilin University您当前的位置:&>&
线性方程组求解在线计算器
发布时间: 12:36:59&来源:懒人计算器&作者:老壶&
线性方程组求解在线计算器 线性方程组求解器
输入矩阵解决
例如,解3次方程和3个未知数:
x + 2y + 3z = 9
这将是输入上文的矩阵:
3更新:135&&&&&
&看不清楚,点击刷新

我要回帖

更多关于 求解线性方程组的方法 的文章

 

随机推荐