成语| 古诗大全| 扒知识| 扒知识繁体

当前位置:首页 > 趣味生活

matlab中怎么求线性方程组

Q1:怎么用MATLAB求非线性方程组的解。

你的程序好像有问题,在[x,y]=solve(y=sqrt(1-x^2),y=x+b)在最后少了一个冒号,应该是[x,y]=solve(y=sqrt(1-x^2),y=x+b‘)www.bA+ZhiShi.COm

Q2:如何用Matlab求线性方程组的通解

在命令窗口输入以下命令:
A=[1 1 -1 -1;2 -5 3 2;7 -7 3 1];
B=[5; -4; 7];
format rat
x1=A\B%求得非齐次方程组Ax=B的一个特解x1、
Y=null(A,r)%求得齐次方程组Ax=0 的基础解系Y
上面符号%后为解释说明,实际中可不输入。
按回车,得通解。
x=x1+k1*Y(1)+k2*Y(2)

WWW.BAz;HiSHI.coM

Q3:matlab 解大型稀疏线性方程组

这个问题不好直接回答,因为N=30000和稀疏性其实基本上不携带任何有价值的信息。
根据需求应该先搞清楚几件事,然后才能选择算法
1.是否具有对称性,如果有的话是否还有正定性
2.需要解一次还是解很多次(相同的A不同的b),或是矩阵还会变(不同的A)
3.对A的条件数或是部分特征值是否有已知信息或廉价的近似估计
4.A的非零元的分布特征
第1条通常决定了是否有相对廉价且高效的算法,2,3也是比较重要的参考信息,4则决定了稀疏直接法或者预条件的难度。
A\b采用的是稀疏直接法,是否可接受取决于第2条。
gmres和bicgstab都是针对非对称矩阵的Krylov子空间方法,默认参数可能不足以收敛,要用复杂的调用方式,自己指定参数,并且还要检查输出信息。这个你自己help一下用法。
一般来讲Krylov子空间迭代法需要预条件作为辅助,如果没有太多信息可以考虑用luinc来产生预条件。
楼上列的那篇paper不用看,基本没用。

Q4:求一道用matlab编程解非线性方程组

对于非线性方程组F(X)=0,用fsolve函数求其数值解。fsolve函数的调用格式为: X=fsolve(fun,X0,option) 其中X为返回的解,fun是用于定义需求解的非线性方程组的函数文件名,X0是求根过程的初值,option为最优化工具箱的选项设定。最优化工具箱提供了20多个选项,用户可以使用optimset命令将它们显示出来。如果想改变其中某个选项,则可以调用optimset()函数来完成。例如,Display选项决定函数调用时中间结果的显示方式,其中‘off’为不显示,‘iter’表示每步都显示,‘final’只显示最终结果。optimset(‘Display’,‘off’)将设定Display选项为‘off’。 例如:求下列非线性方程组在(0.5,0.5) 附近的数值解。 (1) 建立函数文件myfun.m。 function q=myfun(p) x=p(1); y=p(2); q(1)=x-0.6*sin(x)-0.3*cos(y); q(2)=y-0.6*cos(x)+0.3*sin(y); (2) 在给定的初值x0=0.5,y0=0.5下,调用fsolve函数求方程的根。 x=fsolve(myfun,[0.5,0.5],optimset(Display,off)) x = 0.6354 0.3734 将求得的解代回原方程,可以检验结果是否正确,命令如下: q=myfun(x) q = 1.0e-009 * 0.2375 0.2957 可见得到了较高精度的结果。

Q5:用matlab求线性方程组的解

你这个方程组是不是有点问题,四元一次方程组,怎么还多了q,m,l,a这些变量?
如果单纯把上述变量当做待设参数
syms fa fb fc ma q m l a;
[fa,fb,fc,ma]=solve(fa-q*2*l-fc=0,-ma-m+fb*l-q*2*l*2*l-fc*3*l=0,...
-ma-fa*l-m-q*2*l*l-fc*a*l=0,-ma-fa*3*l-m-fb*2*l+q*2*l*l=0,fa,fb,fc,ma)
这样就可以了。

wwW.BaZhIs★HI.cOM

Q6:matlab 求齐次线性方程组的非零解

用 solve 函数,用help自己查看!
如果没记错的话,解法应该是如下格式:
[x1,x2, ... ] = solve(exp1, exp2, ...)
几点说明:
1. exp是指表达式,exp1指第一个表达式,形如 x1+x2-20 , 具体表示“x1+x2-20=0”这个等式
2. 注意 表达式要用 这个符号引起来,而且将所有变量常量都移到等式左边,右边是 =0
如 x1+x2=y+20应该化简为x1 +x2 -y -20 =0,在solve中的表示为 solve(x1 +x2 -y -20 )

Q7:如何用matlab求解齐次线性方程组

方法有很多的,说说高斯列主元消去法解一般线性方程组的做法,以下是liezy.m文件,文件名不要修改就要用这个
function[RA,RB,n,x]=liezy(A,b);
B=[A b];n=length(b);
RA=rank(A);RB=rank(B);
zhicha=RA-RB;
if zhicha>0,
disp(因为RA~=RB,所以次方程无解)
return
end
if RA==RB
if RA==n
disp(方程有唯一一组解)
x=zeros(n,1); c=zeros(1,n+1);
for p=1:n-1、[Y,j]max(abs(B(p:n,p))),C=B(p,:);
B(p,:)=B(j+p-1,:);
然后再命令窗口输入:
系数矩阵A=[......,.......,.......,.......]
b=[0;0;0;0.........]
[RA,RB,n,x]=liezy(A,b)
然后就有结果了

猜你喜欢

更多