matlab,mathematica,maple都可以,maple很好上手,我就在用这个。这里可以给你个下载地址,然后进去以后帮助会告诉你怎么解方程组之类。
(其实你只要对矩阵进行操作就可以了,这样反而简单)
http://www.verycd.com/topics/2788587/
另外说实话,克莱默法则是解线性方程组最方便的东西了。。在网上找计算器的话也都是用克莱默法则去消矩阵。google或者百度一下“矩阵计算器”或者“matrix calculator”,很方便的。
用数学软件帮我解一下这个线性方程组,谢谢。在线等
>> syms x1 x2 x3
f1='7*x1+18.2*x2+43.03*x3=48.79';
f2='18.2*x1+45.03*x2+190.472*x3=144.661';
f3='43.03*x1+190.472*x2+677.8756*x3=488.9851';
[x1,x2,x3]=solve(f1,f2,f3)
x1 =
2.651814995704870955594634762305
x2 =
1.0526500813748260520128146341261
x3 =
0.25724061234125189784346572909063
>>更多
对不起,刚才数据有误第一个系数是8,不是7.我知道答案和算法,我用LU分解法答案不对
我重新计算了 发不上来 ...........
是不是1.7、0.9、0.3?
求解大型非线性方程组有什么软件
MATLAB里面本来就是有函数调用的 叫fslove
这是本人的一个函数例子 也是解方程组的
mfunction q=myfun(p)
a(1)=4.04;
a(2)=2.2525;
a(3)=1.4422;
b(1)=20.2;
b(2)=50.5;
b(3)=72.108;
x(1)=p(1);
x(2)=p(2);
x(3)=p(3);
x(4)=p(4);
x(5)=p(5);
x(6)=p(6);
q(1)=x(1)*sin(x(2))-a(1)*x(5);
q(2)=x(1)*sin(x(3))-a(2)*x(5);
q(3)=x(1)*sin(x(4))-a(3)*x(5);
q(4)=x(1)*cos(x(2))-a(1)*x(6)-b(1);
q(5)=x(1)*cos(x(3))-a(2)*x(6)-b(2);
q(6)=x(1)*cos(x(4))-a(3)*x(6)-b(3);
% x=fsolve(#39;myfun#39;,[0.5 0.5 0.5 0.5 0.5 0.5]#39;,optimset(#39;Display#39;,#39;off#39;));
用什么软件求解线性方程组比较好
用Matlab可以求,不过有点大材小用
C语言程序解线性方程组
来,给你个LU分解法解方程的c程序
#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++)
{
sigma1=0;
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++)
{
sigma2=0;
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++)
{
sigma1=0;
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--)
{
sigma2=0;
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");
}
a[i][j]中包括常数项么
不包括,运行之后根据提示来就行。其实可以再matlab里边直接用A矩阵的逆矩阵,左乘b矩阵,就得出结果。方法是先定义好A(10*10)矩阵,定义好b(10*1)矩阵,命令inv(A)*b得到结果
线性代数有几种解线性方程组的方法?
第一种 消元法 ,此法 最为简单,直接消掉只剩最后一个未知数,再回代求余下的未知数,但只适用于未知数个数等于方程的个数,且有解的情况。
第二种 克拉姆法则, 如果行列式不等于零,则用常数向量替换系数行列式中的每一行再除以系数行列式,就是解;
第三种 逆矩阵法, 同样要求系数矩阵可逆,直接建立AX=b与线性方程组的关系,X=A^-1.*b就是解
第四种 增光矩阵法, 利用增广矩阵的性质(A,b)通过线性行变换,化为简约形式,确定自由变量,(各行中第一个非零元对应的未知数除外余下的就是自由变量),对自由变量进行赋值,求出其它未知数,然后写成基础解析的形式,最后写出通解。
这种方法需要先判别: 增广矩阵的秩是否等于系数矩阵的秩,相等且小于未知数个数,则无穷多解;等于未知数个数,唯一解。 秩不想等,无解。
第五种 计算机编程,随便用个软件,譬如Matlab,输入密令,直接求解。
目前这5中教为适用,适合一切齐次或者非齐次线性方程组。
在MATLAB软件下,如何求解超定线性方程组
使用solve命令吧, 用来解普通方程组的
dsolve是用来解微分方程组
求一个能解方程组的软件
百度百科:
wolframalpha
找到网址。
再输入方程组。
如:
1.2x+5.6+23z=1, 234x+22y+11z=0, 232x+13y+88z=22
注意:
(1) 中间用逗号,而且要加个空格。
否则它把1,234 当成1234了。
用分号的话,它只显示最后一条方程。
(2) 如果系数都是整数,那么在Solution 那里,
点击 Approximate form 或 Exact form,
可以在分数和小数之间切换。
(3) 如果以后用来解无理方程,log(x) 在里面指 ln x .
转载请注明出处51数据库 » 线性方程组求解软件 有没有可以解线性方程组的软件啊
回眸一声吼