请问这个二元一次方程组组的系数是怎么来的,用简图说明一下,谢谢。

帮我解一下这个数学应用 谢谢! 用方程,发来的最好是图片 非常感谢!_百度知道
帮我解一下这个数学应用 谢谢! 用方程,发来的最好是图片 非常感谢!
///zhidao/pic/item/a71ea8d3fd1f4c0261f95cad0c85ead&/zhidao/wh%3D450%2C600/sign=eded384d7a310a55c471d6ff/a71ea8d3fd1f4c0261f95cad0c85ead.jpg" esrc="/zhidao/wh%3D600%2C800/sign=034f0f98ca009ff3d3fd1f4c0261f95cad0c85ead.baidu.baidu.hiphotos://c.jpg" target="_blank" title="点击查看大图" class="ikqb_img_alink"><img class="ikqb_img" src="<a href="http://c
提问者采纳
设有龟x只4x+(40-x)*2=1122x=32x=16只有鹤=40-16=24只
把那个方程的过程写详细点好吗?谢谢
快点好吗?
过程写详细一点
龟有x只,鹤就是40-x 只龟有四条腿鹤有2条腿
啊啊啊啊啊
方程的过程
你就写了三部
风中的过程
设有龟x只4x+(40-x)*2=1124x+80-2x=1122x=112-802x=32x=16只有鹤=40-16=24只
还搞不清楚?没学过方程?
提问者评价
太给力了,你的回答完美地解决了我的问题,非常感谢!
其他类似问题
按默认排序
其他1条回答
2=5-16=24,龟有16只,56-40=16
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁请问如何用卡西欧ClassPad300图形计算器解二元二次方程组,如:x^2-y^=1,x+5y=9,谢谢!_百度知道
请问如何用卡西欧ClassPad300图形计算器解二元二次方程组,如:x^2-y^=1,x+5y=9,谢谢!
x^2-y=1,看不懂,x,谢谢请问如何用卡西欧ClassPad300图形计算器解二元二次方程组:哪里能得到该型号计算器的中文说明书啊,y)执行后出现无效语法提示(Invalid Syntax),手里只有一本英文的说明书!另!在Main中输入:solve(x^2-y=1 and x+5y=9,谢谢各位好心人的帮助,x+5y=9,我刚刚学习图形计算器的使用,请把过程写清楚一些,如?谢谢
我有更好的答案
x,y)执行即可在Main中输入:solve(x^2-y=1 and x+5y=9
其他类似问题
您可能关注的推广
二元二次方程组的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁&& 查看话题
如何用Matlab求解方程组
求解如图所示的两个方程,只有x1和X2未知,其余均已知,如何表达出x1和x2的表达式
QQ截图01.jpg
这种问题的例子已经很多了,可以参见:
http://emuch.net/bbs/viewthread.php?tid=6150808&authorid=1122189 本文来自百度文库:
用MATLAB解方程的三个实例
1、对于多项式p(x)=x3-6x2-72x-27,求多项式p(x)=0的根,可用多项式求根函数roots(p),其中p为多项式系数向量,即
& & 1.00 -6.00 -72.00 -27.00
p是多项式的MATLAB描述方法,我们可用poly2str(p,'x')函数,来显示多项式的形式:
&&px=poly2str(p,'x')
px =x^3 - 6 x^2 - 72 x - 27
多项式的根解法如下:
&& format rat %以有理数显示
&& r=roots(p)
& &-648/113
& &-769/1980
2、在MATLAB中,求解用符号表达式表示的代数方程可由函数solve实现,其调用格式为:solve(s,v):求解符号表达式s的代数方程,求解变量为v。
例如,求方程(x+2)x=2的解,解法如下:
&& x=solve('(x+2)^x=2','x')
得到符号解,具有缺省精度。如果需要指定精度的解,则:
&& x=vpa(x,3)
3、使用fzero或fsolve函数,可以求解指定位置(如x0)的一个根,格式为:x=fzero(fun,x0)或x=fsolve(fun,x0)。例如,求方程0.8x+atan(x)-&#61552;=0在x0=2附近一个根,解法如下:
&& fu=@(x)0.8*x+atan(x)-
&& x=fzero(fu,2)
& & 2.4482
&& x=fsolve('0.8*x+atan(x)-pi',2)
& & 2.4482
________________________________________
当然了,对于该方程也可以用第二种方法求解:
&& x=solve('0.8*x+atan(x)-pi','x')
& & 2.0497668
对于第一个例子,也可以用第三种方法求解:
&& F=@(x)x^3-6*x^2-72*x-27
& &@(x)x^3-6*x^2-72*x-27
&& x=fzero(F,10)
& & 12.1229
对于第二个例子,也可以用第三种方法:
&& FUN=@(x)(x+2)^x-2
& & @(x)(x+2)^x-2
&& x=fzero(FUN,1)
& & 0.6983
最近有多人问如何用matlab解方程组的问题,其实在matlab中解方程组还是很方便的,例如,对于代数方程组Ax=b(A为系数矩阵,非奇异)的求解,MATLAB中有两种方法:
(1)x=inv(A)*b — 采用求逆运算解方程组;
(2)x=A\b — 采用左除运算解方程组。
2x1+3x2=13
&&x=inv(A)*b
即二元一次方程组的解x1和x2分别是2和3。
对于同学问到的用matlab解多次的方程组,有符号解法,方法是:先解出符号解,然后用vpa(F,n)求出n位有效数字的数值解.具体步骤如下:
第一步:定义变量syms x y z ...;
第二步:求解=solve('eqn1','eqn2',...,'eqnN','var1','var2',...'varN');
第三步:求出n位有效数字的数值解x=vpa(x,n);y=vpa(y,n);z=vpa(z,n);...。
如:解二(多)元二(高)次方程组:
x^2+3*y+1=0
y^2+4*x+1=0
解法如下:
&&=solve('x^2+3*y+1=0','y^2+4*x+1=0');
&&x=vpa(x,4);
&&y=vpa(y,4);
& & 1.635+3.029*i
& & 1.635-3.029*i
& & 1.834-3.301*i
& & 1.834+3.301*i
& & -.3600
& &-3.307。
二元二次方程组,共4个实数根;
还有的同学问,如何用matlab解高次方程组(非符号方程组)?举个例子好吗?
解答如下:
基本方法是:solve(s1,s2,…,sn,v1,v2,…,vn),即求表达式s1,s2,…,sn组成的方程组,求解变量分别v1,v2,…,vn。
具体例子如下:
x^2 + x*y + y = 3
x^2 - 4*x + 3 = 0
&&&&= solve('x^2 + x*y + y = 3','x^2 - 4*x + 3 = 0')
运行结果为
& &&&1 -3/2
即x等于1和3;y等于1和-1.5
&& = solve('x^2 + x*y + y = 3','x^2 - 4*x + 3= 0','x','y')
& &&&1 -3/2
结果一样,二元二方程都是4个实根。
通过这三个例子可以看出,用matlab解各类方程组都是可以的,方法也有多种,只是用到解方程组的函数,注意正确书写参数就可以了,非常方便。 发现刚刚给错了,这份才是方程组的,也是百度文库的,sorry!
用matlab解线性方程组
一。高斯消去法
1.顺序高斯消去法
直接编写命令文件
for k=1:n-1
a(k+1:n, k:c)=a(k+1:n, k:c)-(a(k+1:n,k)/ a(k,k))*a(k, k:c);& &&&%消去
x='& && && && && && && && && && && && && && && && & %回带
x(n)=a(n,c)/a(n,n);
for g=n-1:-1:1
x(g)=(a(g,c)-a(g,g+1:n)*x(g+1:n))/a(g,g)
2.列主高斯消去法
*由于“=max(abs(a(k:n,k)))”返回的行是“k:n,k”内的第几行,所以要通过修正来把m 改成真正的行的值。该程序只是演示程序,真正机器计算不需要算主元素所在列以下各行应为零的值。
直接编写命令文件
a(:,c)=d;& && && && && && && && && && && && && && && && && &%(增广)
for k=1:n-1
=max(abs(a(k:n,k)));& && && && && && && && && && && & %选主
m=m+k-1;& && && && && && && && && && && && && && && & %(修正操作行的值)
& &if(a(m,k)~=0)& && && && && && && && && && && && &
a(,:)=a(,:);& && && && && && && && && && && &%换行
end& & & &
a(k+1:n, k:c)=a(k+1:n, k:c)-(a(k+1:n,k)/ a(k,k))*a(k, k:c);& && &%消去
end& & & &
end& & & &
x='& && && && && && && && && && && && && && && && &&&%回带
x(n)=a(n,c)/a(n,n);
for g=n-1:-1:1
x(g)=(a(g,c)-a(g,g+1:n)*x(g+1:n))/a(g,g)
3.分别用顺序高斯消去法和列主高斯消去法解方程组a*x=d,并比较结果
顺序高斯消去法:提示“Warning: Divide by zero.” x =NaN NaN NaN NaN
列主高斯消去法:x =-1.6 5.9
由此可见列主高斯消去法可以解决顺序高斯消去法所不能解决的问题。
4. 将上述矩阵中的“2”改为2.05,“34”改为“34.6”,“15.5”改为“15.57”,“124”改为“124.7”再用列主高斯消去法计算,与上述结果比较。
& && && && && && &&&x =-0.6 3.7
& &很明显虽然系数矩阵只有很小的变化但结果的变化却很大,所以系数矩阵是病态的。
这是因为系数矩阵的条件数很大:cond(a)=2.
二。迭代法
x=;& && && && && && && & %初始向量
stop=1.0e-4& && && && && && && &%迭代的精度
L=-tril(a,-1)
U=-triu(a,1)& & & &
D=inv(diag(diag(a)))
X=D*(L+U)*x+D*d;& && && && & % J迭代公式
while norm(X-x,inf)&=stop& && && &% 时迭代中止否则继续
x=X;& & & &
X=D*(L+U)*x+D*d;
G-S迭代公式
x=;& && && && && && && && &%初始向量
stop=1.0e-4
L=-tril(a,-1)
U=-triu(a,1)& & & &
D=(diag(diag(a)))
X=inv(D-L)*U*x+inv(D-L)*d;& && & % G-S迭代公式
while norm(X-x,inf)&= stop& && && & % 时迭代中止否则继续
x=X;& & & &
X=inv(D-L)*U*x+inv(D-L)*d;
SOR迭代公式
x=;& && && && && && && &&&%初始向量
stop=1.0e-4
w=1.44;& && && && && && && && & %松弛因子
L=-tril(a,-1)
U=-triu(a,1)& & & &
D=(diag(diag(a)))
X=inv(D-w*L)*((1-w)*D+w*U)*x+w*inv(D-w*L)*d& &% SOR迭代公式
while norm(X-x,inf)&=stop& && && &% 时迭代中止否则继续
X=inv(D-w*L)*((1-w)*D+w*U)*x+w*inv(D-w*L)*d;
3.& & a*x=d& && & a=& &d=
(1)考察用J、G-S及SOR解此方程组的收敛性.
(2)分别用雅可比迭代法、高斯-赛德尔迭代法及逐次超松弛迭代法解此方程组。要求 时迭代中止,观察收敛速度。
(1)& & J迭代矩阵的谱半径:max(abs(eig(D*(L+U))))= 0.506
& & G-S迭代矩阵的谱半径:max(abs(eig(inv(D-L)*U)))= 0.2000
SOR迭代矩阵的谱半径:max(abs(eig(inv(D-w*L)*((1-w)*D+w*U))))=0.9756
所以用J、G-S及SOR均收敛(且有 )。
J:& && && && && & X =-4.0 2.0000& && &&&n =18
G-S:& && && && && & X =-4.0 2.0000& && &&&n =8
SOR( ):& &&&X =-4.0 2.0000& && &&&n =482
可见高斯-赛德尔迭代法要比雅可比迭代公式的收敛速度快。同时,如果超松弛迭代法的 选取不当不但不会加速收敛还会对收敛速度造成很恶劣的结果。
线性方程组求解
Gauss消元法:
function x=DelGauss(a,b)
% Gauss消去法
nb=length(b);
det=1;%存储行列式值
x=zeros(n,1);
for k=1:n-1
& & for i=k+1:n
& && &&&if a(k,k)==0
& && && && &return
& && &&&end
& &&&m=a(i,k)/a(k,k);
& &&&for j=k+1:n
& && && &a(i,j)=a(i,j)-m*a(k,j);
& &&&b(i)=b(i)-m*b(k);
det=det*a(k,k);
det=det*a(n,n);
for k=n:-1:1&&%回代
& & for j=k+1:n
& && &&&b(k)=b(k)-a(k,j)*x(j);
& & x(k)=b(k)/a(k,k);
&& x=DelGauss(A,b)
& & 0.9739
& &-0.0047
& & 1.0010
列主元Gauss消去法:
function x=detGauss(a,b)
% Gauss列主元消去法
nb=length(b);
det=1;%存储行列式值
x=zeros(n,1);
for k=1:n-1
& & amax=0;% 选主元
& & for i=k:n
& && &&&if abs(a(i,k))&amax
& && && && &amax=abs(a(i,k));r=i;
& && &&&end
& & if amax&1e-10
& & if r&k&&%交换两行
& && &&&for j=k:n
& && && && &z=a(k,j);a(k,j)=a(r,j);a(r,j)=z;
& && &&&end
& && &&&z=b(k);b(k)=b(r);b(r)=z;det=-
& & for i=k+1:n& &%进行消元
& && &&&m=a(i,k)/a(k,k);
& && &&&for j=k+1:n
& && && && &a(i,j)=a(i,j)-m*a(k,j);
& && &&&end
& && &&&b(i)=b(i)-m*b(k);
& & det=det*a(k,k);
det=det*a(n,n);
for k=n:-1:1&&%回代
& & for j=k+1:n
& && &&&b(k)=b(k)-a(k,j)*x(j);
& & x(k)=b(k)/a(k,k);
&& x=detGauss(A,b)
& & 0.9739
& &-0.0047
Gauss-Jordan消去法:
function x=GaussJacobi(a,b)
% Gauss-Jacobi消去法
nb=length(b);
x=zeros(n,1);
& & amax=0;% 选主元
& & for i=k:n
& && &&&if abs(a(i,k))&amax
& && && && &amax=abs(a(i,k));r=i;
& && &&&end
& & if amax&1e-10
& & if r&k&&%交换两行
& && &&&for j=k:n
& && && && &z=a(k,j);a(k,j)=a(r,j);a(r,j)=z;
& && &&&end
& && &&&z=b(k);b(k)=b(r);b(r)=z;
& &&&%进行消元
& &&&b(k)=b(k)/a(k,k);
& && &&&for j=k+1:n
& && && && &a(k,j)=a(k,j)/a(k,k);
& && &&&end
& && &&&for i=1:n
& && && && &if i~=k
& && && && && & for j=k+1:n
& && && && && && &&&a(i,j)=a(i,j)-a(i,k)*a(k,j);
& && && && && & end
& && && && && & b(i)=b(i)-a(i,k)*b(k);
& && && && &end
& && &&&end
& & for i=1:n
& && &&&x(i)=b(i);
&& x=GaussJacobi(A,b)
& & 0.9739
& &-0.0047
& & 1.0010
LU分解法:
function =lu(a)
n=length(a);
u=zeros(n);
& & u(1,i)=a(1,i);
& & l(i,1)=a(i,1)/u(1,1);
& & for i=r:n
& && &&&uu=0;
& && &&&for k=1:r-1
& && && && &uu=uu+l(r,k)*u(k,i);
& && &&&end
& && &&&u(r,i)=a(r,i)-
& & for i=r+1:n
& && &&&ll=0;
& && & for k=1:r-1
& && && && && & ll=ll+l(i,k)*u(k,r);
& && && && &end
& && && && &l(i,r)=(a(i,r)-ll)/u(r,r);
& && &&&end
function x=lusolv(a,b)
%LU分解求解线性方程组aX=b
if length(a)~=length(b)
& & error('Error in inputing!')
n=length(a);
y(1)=b(1);
& & for k=1:i-1
& && &&&z=z+l(i,k)*y(k);
& & y(i)=b(i)-z;
x(n)=y(n)/u(n,n);
for i=n-1:-1:1
& & for k=i+1:n
& && &&&z=z+u(i,k)*x(k);
& & x(i)=(y(i)-z)/u(i,i);
&& x=lusolv(A,b)
& & 0.9739& &-0.0047& & 1.0010
对称正定矩阵之Cholesky分解法:& && && && && && && && && &
function L=Cholesky(A)
%对对称正定矩阵A进行Cholesky分解
n=length(A);
L=zeros(n);
& & delta=A(k,k);
& & for j=1:k-1
& && &&&delta=delta-L(k,j)^2;
& & if delta&1e-10
& & L(k,k)=sqrt(delta);
& & for i=k+1:n
& && &&&L(i,k)=A(i,k);
& && &&&for j=1:k-1
& && && && &L(i,k)=L(i,k)-L(i,j)*L(k,j);
& && &&&end
& && &&&L(i,k)=L(i,k)/L(k,k);
function x=Chol_Solve(A,b)
%利用对称正定矩阵之Cholesky分解求解线性方程组Ax=b
n=length(b);
l=Cholesky(A);
x=ones(1,n);
y=ones(1,n);
& & for k=1:i-1
& && &&&z=z+l(i,k)*y(k);
& & y(i)=(b(i)-z)/l(i,i);
for i=n:-1:1
& & for k=i+1:n
& && &&&z=z+l(k,i)*x(k);
& & x(i)=(y(i)-z)/l(i,i);
&& x=Chol_Solve(a,b)
1.8333& & 1.0833& & 0.7833
对称正定矩阵之LDL’分解法:
function =LDL_Factor(A)
%对称正定矩阵A进行LDL'分解
n=length(A);
D=zeros(n);
d=zeros(1,n);
T=zeros(n);
& & d(k)=A(k,k);
& & for j=1:k-1
& && &&&d(k)=d(k)-L(k,j)*T(k,j);
& & if abs(d(k))&1e-10
& & for i=k+1:n
& & T(i,k)=A(i,k);
& & for j=1:k-1
& && &&&T(i,k)=T(i,k)-T(i,j)*L(k,j);
& & L(i,k)=T(i,k)/d(k);
D=diag(d);
function x=LDL_Solve(A,b)
%利用对对称正定矩阵A进行LDL'分解法求解线性方程组Ax=b
n=length(b);
=LDL_Factor(A);
y(1)=b(1);
& & for k=1:i-1
& && &&&z=z+l(i,k)*y(k);
& & y(i)=b(i)-z;
x(n)=y(n)/d(n,n);
for i=n-1:-1:1
& & for k=i+1:n
& && &&&z=z+l(k,i)*x(k);
& & x(i)=y(i)/d(i,i)-z;
&& x=LDL_Solve(a,b)
& & 1.8333& & 1.0833& & 0.7833
Richardson迭代法:
function =richason(A,b,x0,eps,M)
%Richardson法求解线性方程组 Ax=b
%方程组系数矩阵:A
%方程组之常数向量:b
%迭代初始向量:X0
%e解的精度控制:eps
%迭代步数控制:M
%返回值线性方程组的解:x
%返回值迭代步数:n
if(nargin == 3)
& & eps = 1.0e-6;
& && &M = 200;
elseif(nargin == 4)
& && &M = 200;
I =eye(size(A));
x=(I-A)*x0+b;
while(norm(x-x1)&eps)
& & x=(I-A)*x1+b;
& & n = n + 1;
& & if(n&=M)
& && &&&disp('Warning: 迭代次数太多,现在退出!');
&& b=';x0=';
&& =richason(A,b,x0)
& & 0.9739
& &-0.0047
& & 1.0010
Jacobi迭代法:
function =jacobi(A,b,x0,eps,varargin)
if nargin==3
& & eps= 1.0e-6;
& & M&&= 200;
elseif nargin&3
& & return
elseif nargin ==5
& & M&&= varargin{1};
D=diag(diag(A));& & %求A的对角矩阵
L=-tril(A,-1);& && &%求A的下三角阵
U=-triu(A,1);& && & %求A的上三角阵
B=D\(L+U);
n=1;& && && && && && &%迭代次数
while norm(x-x0)&=eps
& &&&x=B*x0+f;
& & n=n+1;
& & if(n&=M)
& && &&&disp('Warning: 迭代次数太多,可能不收敛!');
&& =Jacobi(A,b,x0)
& & 0.9739
& &-0.0047
& & 1.0010
Gauss-Seidel迭代法:
function =gauseidel(A,b,x0,eps,M)
if nargin==3
& & eps= 1.0e-6;
& & M&&= 200;
elseif nargin == 4
& & M&&= 200;
elseif nargin&3
D=diag(diag(A));& & %求A的对角矩阵
L=-tril(A,-1);& && &%求A的下三角阵
U=-triu(A,1);& && & %求A的上三角阵
G=(D-L)\U;
f=(D-L)\b;
n=1;& && && && && && &%迭代次数
while norm(x-x0)&=eps
& & x=G*x0+f;
& & n=n+1;
& & if(n&=M)
& && &&&disp('Warning: 迭代次数太多,可能不收敛!');
&& =gauseidel(A,b,x0)
& & 0.9739
& &-0.0047
& & 1.0010
超松驰迭代法:
function =SOR(A,b,x0,w,eps,M)
if nargin==4
& & eps= 1.0e-6;
& & M&&= 200;
elseif nargin&4
& & return
elseif nargin ==5
& & M&&= 200;
if(w&=0 || w&=2)
D=diag(diag(A));& & %求A的对角矩阵
L=-tril(A,-1);& && &%求A的下三角阵
U=-triu(A,1);& && & %求A的上三角阵
B=inv(D-L*w)*((1-w)*D+w*U);
f=w*inv((D-L*w))*b;
n=1;& && && && && && &%迭代次数
while norm(x-x0)&=eps
& & x =B*x0+f;
& & n=n+1;
& & if(n&=M)
& && &&&disp('Warning: 迭代次数太多,可能不收敛!');
&& =SOR(A,b,x0,1)
& & 0.9739
& &-0.0047
& & 1.0010
对称逐次超松驰迭代法:
function =SSOR(A,b,x0,w,eps,M)
if nargin==4
& & eps= 1.0e-6;
& & M&&= 200;
elseif nargin&4
& & return
elseif nargin ==5
& & M&&= 200;
if(w&=0 || w&=2)
D=diag(diag(A));& & %求A的对角矩阵
L=-tril(A,-1);& && &%求A的下三角阵
U=-triu(A,1);& && & %求A的上三角阵
B1=inv(D-L*w)*((1-w)*D+w*U);
B2=inv(D-U*w)*((1-w)*D+w*L);
f1=w*inv((D-L*w))*b;
f2=w*inv((D-U*w))*b;
x12=B1*x0+f1;
x&&=B2*x12+f2;
n=1;& && && && && && &%迭代次数
while norm(x-x0)&=eps
& & x12=B1*x0+f1;
& & x&&=B2*x12+f2;
& & n=n+1;
& & if(n&=M)
& && &&&disp('Warning: 迭代次数太多,可能不收敛!');
&& =SSOR(A,b,x0,1)
& & 0.9739
& &-0.0047
& & 1.0010
两步迭代法:
function =twostep(A,b,x0,eps,varargin)
if nargin==3
& & eps= 1.0e-6;
& & M&&= 200;
elseif nargin&3
& & return
elseif nargin ==5
& & M&&= varargin{1};
D=diag(diag(A));& & %求A的对角矩阵
L=-tril(A,-1);& && &%求A的下三角阵
U=-triu(A,1);& && & %求A的上三角阵
B1=(D-L)\U;
B2=(D-U)\L;
f1=(D-L)\b;
f2=(D-U)\b;
x12=B1*x0+f1;
x&&=B2*x12+f2;
n=1;& && && && && && &%迭代次数
while norm(x-x0)&=eps
& & x0 =x;
& & x12=B1*x0+f1;
& & x&&=B2*x12+f2;
& & n=n+1;
& & if(n&=M)
& && &&&disp('Warning: 迭代次数太多,可能不收敛!');
&& =twostep(A,b,x0)
& & 0.9739
& &-0.0047
& & 1.0010
最速下降法:
function =fastdown(A,b,x0,eps)
if(nargin == 3)
& & eps = 1.0e-6;
r&&= b-A*x0;
d&&= dot(r,r)/dot(A*r,r);
x&&= x0+d*r;
while(norm(x-x0)&eps)
& & r&&= b-A*x0;
& & d&&= dot(r,r)/dot(A*r,r);
& & x&&= x0+d*r;
& & n&&= n + 1;
&& =fastdown(A,b,x0)
& & 0.9739
& &-0.0047
& & 1.0010
共轭梯度法:
function =conjgrad(A,b,x0)
if(nargin == 3)
& & eps = 1.0e-6;
r1&&= b-A*x0;
d& &= dot(r1,r1)/dot(p1,A*p1);
x& &= x0+d*p1;
r2&&= r1-d*A*p1;
f& &= dot(r2,r2)/dot(r1,r1);
p2&&= r2+f*p1;
for(i=1:(rank(A)-1))
& & p1 = p2;
& & r1 = r2;
& & d&&= dot(r1,r1)/dot(p1,A*p1);
& & x&&= x0+d*p1;
& & r2 = r1-d*A*p1;
& & f&&= dot(r2,r2)/dot(r1,r1);
& & p2 = r2+f*p1;
& & n&&= n + 1;
d&&= dot(r2,r2)/dot(p2,A*p2);
x&&= x+d*p2;
n&&= n + 1;
&& =conjgrad(A,b,x0)
& & 0.9739
& &-0.0047
& & 1.0010
预处理的共轭梯度法:& && && &&&
当AX=B为病态方程组时,共轭梯度法收敛很慢。预处理技术是在用共轭梯度法求解之前对系数矩阵做一些变换后再求解。
M=pascal(5)%预处理矩阵
=pcg(A,b,1.e-8,1000,M,M,x0)
%flag=0表示在指定迭代次数之内按要求精度收敛
%re表示相对误差
%it表示迭代次数
& & 5.7667
& & 2.9167
& & 1.9310
& & 1.4333
& & 1.1349
10& && && &
其他迭代法:
x=symmlq(A,b)
线性方程组的LQ解法
x=bicg(A,b)
线性方程组的双共轭梯度法
x=bicgstab(A,b)
线性方程组的稳定双共轭梯度法
x=lsqr(A,b)
线性方程组的共轭梯度LSQR解法
x=gmres(A,b)
线性方程组的广义最小残差解法
x=minres(A,b)
线性方程组的最小残差解法
x=qmr(A,b)
线性方程组的准最小残差解法
3.特殊解法
解三对角线性方程组之追赶法:
function x=followup(A,b)
n = rank(A);
for(i=1:n)
& & if(A(i,i)==0)
& && &&&disp('Error: 对角有元素为0!');
d = ones(n,1);
a = ones(n-1,1);
c = ones(n-1);
for(i=1:n-1)
& & a(i,1)=A(i+1,i);
& & c(i,1)=A(i,i+1);
& & d(i,1)=A(i,i);
d(n,1) = A(n,n);
for(i=2:n)&&
& & d(i,1)=d(i,1) - (a(i-1,1)/d(i-1,1))*c(i-1,1);& &
& & b(i,1)=b(i,1) - (a(i-1,1)/d(i-1,1))*b(i-1,1);
x(n,1) = b(n,1)/d(n,1);
for(i=(n-1):-1:1)
& & x(i,1) = (b(i,1)-c(i,1)*x(i+1,1))/d(i,1);
&& b=ones(6,1);
&& x=followup(A,b)
& & 0.4615
& &-0.1538
& & 0.7692
& & 0.7692
& &-0.1538
& & 0.4615
& && && && && && &&&
快速求解法:
通用求解线性方程组的函数:x=linsolve(A,b,options)
其意义为快速求解方程组Ax=b,其中A之结构由决定,内容如下表:
上三角Hessenberg
实对称矩阵
指出求解的方程是Ax=b还是A’x=b,A’为之共轭转置
&& A=;b=';
&& optt.SYM=optt.POSDEF=optt.TRANSA=
&& x=linsolve(A,b,optt)
4.超定方程组的解法
利用伪逆求解:
X=pinv(A)*b
左除求解:
最小二乘法求解:
& &X=lsqnonneg(A,b)
最小二乘法求解:
& &A’Ax=A’bèx=A’*A\A’*b
&& A=;b=';
&& x=pinv(A)*b
& & 0.0903
& &-0.3248
& & 0.1048
& & 0.0903
& &-0.3248
& & 0.1048
&& x=lsqnonneg(A,b)
& && && &0
& && && &0
& & 0.0826
&& x=A'*A\A'*b
& & 0.0903
& &-0.3248
& & 0.1048
5.有无穷组解的线性方程组的解法
齐次线性方程组的通解:
特解与通解:
1.&&求Ax=b的一个特解
2.&&求Ax=0的通解
3.&&将特解与通解组合成最终解
&& s=rref(d)&&%采用增广矩阵阖求解
& & 1.0000& && && &0&&-22.5000& &-8.5000& &-3.2500
& && && &0& & 1.0000& &10.5000& & 4.5000& & 1.7500
& && && &0& && && &0& && && &0& && && &0& && && &0
& && && &0& && && &0& && && &0& && && &0& && && &0
è特解:(-3.25&&1.75&&0&&0)’
&&基础解系有两个基向量:(-22.5&&10.5&&1&&0)’&&(-8.5&&4.5&&0&&1)’
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/Guassfans/archive//2330862.aspx : Originally posted by 月只蓝 at
这种问题的例子已经很多了,可以参见:
http://emuch.net/bbs/viewthread.php?tid=6150808&authorid=1122189 这个例子跟我的方程不一样,他的x2&&x2都可以直接用x1表示,可是我的是耦合的 : Originally posted by lj123www at
发现刚刚给错了,这份才是方程组的,也是百度文库的,sorry!
用matlab解线性方程组
一。高斯消去法
1.顺序高斯消去法
直接编写命令文件
for k ... 能具体给出这个问题的解吗??
var cpro_id = 'u1216994';
欢迎监督和反馈:本帖内容由
提供,小木虫仅提供交流平台,不对该内容负责。欢迎协助我们监督管理,共同维护互联网健康,如果您对该内容有异议,请立即发邮件到
联系通知管理员,也可以通过QQ周知,我们的QQ号为:8835100
我们保证在1个工作日内给予处理和答复,谢谢您的监督。
小木虫,学术科研第一站,为中国学术科研研究提供免费动力
广告投放请联系QQ: &
违规贴举报删除请联系邮箱: 或者 QQ:8835100
Copyright &
eMuch.net, All Rights Reserved. 小木虫 版权所有&& 查看话题
如何求解带有固定参数的超定方程组?
请教大家一个问题:求解超定方程组 Y={B}X,B是n行9列的系数矩阵,X是9行一列的参数矩阵,Y是n行一列的矩阵, 可以使用最小二乘法求解这个超定方程组。现在有一个问题就是,在参数矩阵X的9个参数中,其中两个参数的值固定,请问题应该怎样计算这个超定方程组的参数啊?如图片中所示,da和df两个参数的值是已知的,对于这个超定方程组应该怎样求解?
使用拉格朗日乘子法 (Lagrangian multipler)。把约束条件乘以拉格朗日乘子加入极小函数里,求极值;然后按最小二乘做即可。 代入已知的值,改为求解7个参数的超定方程。 谢谢二楼和三楼回复,三楼的方法试过,求解参数结果使用参数验证时,误差偏大。二楼提供的方法对我来说是新方法,查下资料看一下。 如果参数已知,那就带进去,降低方程阶数。但经常是,只有约束条件,而不是固定参数的情况。那就要用乘子法 ( Lagrangian multiplier)。 其中两个参数已知,即两个椭球长半轴和扁率差是已知的,我尝试了把已知带进方程,降阶为求七参数,根据求解的参数结果使检核点来检验求解出的参数精度,误差过大。这有可能是重合点选取不合理,也有可能是求解方法不正确,故来求助。注,这是用于坐标转换的方程。 PiPPi6,你好,你说的拉格朗日乘子法是多应用于求带约束条件的线性方程组吗?
像帖子中描述的问题,求解方法除了带入已知参数外,在数学上有没有其他专门的方法呢?就像牛顿迭代法求迭代问题一样。 : Originally posted by fltjzit at
PiPPi6,你好,你说的拉格朗日乘子法是多应用于求带约束条件的线性方程组吗?
像帖子中描述的问题,求解方法除了带入已知参数外,在数学上有没有其他专门的方法呢?就像牛顿迭代法求迭代问题一样。 如果是带约束,那么我知道的就是拉格朗日乘子法。你4楼中所说带入已知参数后误差大,这就要问 你所说已知,是什么意思?也许你带入的不那么准确?如果是不确定性带来的影响,那别人帮不了你。 如果只真的约束(包括带入已知量,这是乘子法的一个特例),那么使用拉格朗日乘子法只会提高精度。其他的我不知道,我是实用主义者,有一个管用就行了。我不收藏算法。newton 迭代是来求非线性的,和这无关。 pippi6,你好,不好意思,是我在5楼回复中没有说明清楚。我意思是把两个已经知道值的参数即da和df,代入这个方程组,将这个方程组降阶为七参数,再用最小二乘法求出这七个参数解。然后再用没有参与计算这七个参数的点座标值来检验使用这七个参数进行坐标转换时是否达到足够的精度。
这一种方法我已尝试过,结果不是很理想,原因需进一步探究。
今天在思考这个问题时,能否可以这样做:
因为有足够多的重合点(在两个坐标系中都有准确的坐标值),这样忽略两个已知的参数,将重合点坐标直接代入方程组,用最小二乘法求出九个参数值,再舍弃已知两个参数的最小二乘解,采用剩余的七个参数来进坐标系转换。
这种方法从技术上可以走的通,不知从理论是否能解释的通? : Originally posted by fltjzit at
pippi6,你好,不好意思,是我在5楼回复中没有说明清楚。我意思是把两个已经知道值的参数即da和df,代入这个方程组,将这个方程组降阶为七参数,再用最小二乘法求出这七个参数解。然后再用没有参与计算这七个参数的 ... ok, 首先让我来理解你的背景问题。你是说,使用一组坐标值(当然多于7组),用最小二乘来拟合你的系数(解);然后用这组系数来计算新的坐标值,和另一组的坐标测量数据来比较,以检验拟合的可靠性或准确性,是吗?
如果是这样,问题就在于,两组样本的相关性。首先,第一组样本应该足够大,这样训练出来的参数才具有统计代表性;第二,两组样本要在同一条件下取得,才有一致性。总之,训练样本的取法至关重要。
你的后一段话看不懂。两个坐标系?隔行如隔山啊。你是做测绘的? 感谢你的回复。向你简要介绍一下这个问题的背景。
& &&&如你所猜测的,我是做测绘和地理信息系统以及遥感的。帖子中描述的问题就是计算两个坐标系之间的转换参数,主要应用与不同坐标系之间的转换。
& && &就以我国来说,目前法定应该使用坐标系是2000国家大地坐标系,但是由于历史问题,很多地方还在使用1954北京坐标系和西安1980坐标系,还有现在大家经常使用GPS,但是GPS计算出来的坐标值是基于WGS-84坐标系。由于不同坐标系采用的椭球不同(即将地球看做是一个椭球,不同椭球长半轴和短半轴不同),导致不同坐标系的坐标值不能通用。也就是说,对于地球上同一个点,在不同的坐标系中坐标值是不同的。
& && &这样就产生了一个问题,如何将一个坐标系中的坐标值转换到另外一个坐标系中的坐标值?比如说,将上海在西安1980坐标系中坐标值(经度,纬度)转换到2000国家大地坐标系中的坐标值(经度,纬度)。
& && & 为了解决这个问题,在测绘上就是使用重合点(在两个坐标系中均有坐标值)来计算两个坐标系之间的转换参数,重合点的数量根据不同的转换方法需要的数量不同,就像帖子中描述的转换方法,该方程中有七个参数,每一个重合点可以列两个方程,那么,至少需要4个点(即8个方程式)才能计算出转换参数。
& & 为了检验转换参数是否达到足够精度,通常是在计算出转换参数后,再使用检核点(检核点也是在新旧两个坐标系中均有坐标值)来进行检验。检验方法是将检核点在旧坐标系中的坐标值和计算出的转换参数带入坐标转换方程,计算出检核点在新坐标系中的坐标值,将计算出的坐标值与检核点在新坐标系中已有的值进行比较,来检验使用转换参数进行坐标转换市的转换精度。
& & 为了提高转换精度,通常选用重合点的数量多于4个,这种情况下方程的数量大于参数的个数,这样就需要使用最小二乘法来计算参数值。
关于你说的训练样本的问题。就本帖来说,也就是重合点是否做够多,以及重合点在新旧两个坐标系中是否具有同样的精度,就我所求助的问题来说,重合点的数量是足够多,重合点在新旧两个坐标系中的坐标的精度也是一致的,只能假设是一致的,如果不一致,坐标转换根本就进行不下去。 : Originally posted by fltjzit at
感谢你的回复。向你简要介绍一下这个问题的背景。
& &&&如你所猜测的,我是做测绘和地理信息系统以及遥感的。帖子中描述的问题就是计算两个坐标系之间的转换参数,主要应用与不同坐标系之间的转换。
& && &就以 ... 嗯,很有意思的课题。
假定你有N=1000个测绘重合点,在两组坐标系中都有测量值。那么你拿出M=20个作为最小二乘拟合的条件,然后用其他N-M=950个点作为转换精度检验(或干脆用N作为检验样本)。结果可能不理想。然后你增加M到100,看看新的结果。我们知道,M增加N时,结果最好。但是,如果两组数据有足够精度的话,有可能会出现一个优选的训练样本数M0,在M& M0后,检验精度不再发生显著变化。 M0的大小,量化了两组数据的可转化性。所以,你的第一个问题就是要找出这样的M0。把检测误差对于M的依赖画出来看看,这样容易判断M0。当然,前M个样本应该在地理上是尽量均布的。检测样本可以包括训练样本或不包括训练样本。因为要做到 M-& N ,所以也许检测样本应该包括训练样本。如果,检测误差随M直线上升,直到M=N。那说明两种测量之间有系统误差?或是拟合上出了问题?
我是不知深浅,跑到另一个领域里指手画脚。冒昧妄評之处还望见谅! pippi6,你好!你很谦虚啊!
你猜测的很对,就坐标转换来说,随着样本数量M的增加(即选取的重合点数量不断增加),检验精度将不再发生显著变化,这种现象已经有专业文献说明,但是我还没有试验。非常感谢你,我将会按照你说的方法,把检测误差对于M的依赖画出来,找出M0,非常感谢你!不知你是哪个行业的?希望能够跟你交个朋友! : Originally posted by fltjzit at
pippi6,你好!你很谦虚啊!
你猜测的很对,就坐标转换来说,随着样本数量M的增加(即选取的重合点数量不断增加),检验精度将不再发生显著变化,这种现象已经有专业文献说明,但是我还没有试验。非常感谢你,我将 ... 谢谢夸奖。如果说猜对了专业文献的论述,实在是很运气。我做工业计算咨询。很愿意和做具体应用的朋友讨论。 工业计算咨询?这属于哪个行业啊?我第一次听说这个工业,让你见笑了。 : Originally posted by fltjzit at
工业计算咨询?这属于哪个行业啊?我第一次听说这个工业,让你见笑了。 为工业界提供数值计算服务 专业搞计算服务,那数学一定很厉害,这对于做科研帮助很大,佩服数学好的人,脑子聪明。 pippi6,你好,再向你请教个问题,
还是这个方程组的问题。我选取了54个在两个坐标系中均有坐标值的重合点,用这54个点和这个公式已经有别的单位进行解算过,计算出来的精度大约是0.0003秒,秒是角度的单位。
但我解算出来的精度差了三个数量级,我是使用Python的numpy中的最小二乘法。
请问pippi6兄,我计算的问题可能会出现在哪个步骤导致精度这么差呢? : Originally posted by fltjzit at
pippi6,你好,再向你请教个问题,
还是这个方程组的问题。我选取了54个在两个坐标系中均有坐标值的重合点,用这54个点和这个公式已经有别的单位进行解算过,计算出来的精度大约是0.0003秒,秒是角度的单位。
但我 ... 很难凭空猜测是什么地方出了错。Python的numpy 应该没问题,但怎么用就有变数。如果相信另一单位的结果,那样的话就是这边出了问题。
你这应该是非线性最小二乘,对吧?你要是愿意的话,可以上传你的数据,fitting function和fitting parameters,或私信我。我来做一次,和你比较。为安全计,你可以隐去实用的地名之类,这样就是一个纯粹的最小二乘问题了。至少我们之间可以比对结果,帮助你找到可能的错误。如果我们对上,就有理由相信另一单位和你的数据或方法有区别。 好的,我中午给你发个邮件,把相关数据发给你。
var cpro_id = 'u1216994';
欢迎监督和反馈:本帖内容由
提供,小木虫仅提供交流平台,不对该内容负责。欢迎协助我们监督管理,共同维护互联网健康,如果您对该内容有异议,请立即发邮件到
联系通知管理员,也可以通过QQ周知,我们的QQ号为:8835100
我们保证在1个工作日内给予处理和答复,谢谢您的监督。
小木虫,学术科研第一站,为中国学术科研研究提供免费动力
广告投放请联系QQ: &
违规贴举报删除请联系邮箱: 或者 QQ:8835100
Copyright &
eMuch.net, All Rights Reserved. 小木虫 版权所有

我要回帖

更多关于 变系数微分方程组 的文章

 

随机推荐