当前位置:首页 > MATLAB R2010a
1.00000000000000 0 0 0.06666666666667
0 1.00000000000000 0 0.06666666666667
0 0 1.00000000000000 0.06666666666667
%习题4-10 解不唯一 clear all, A=magic(4) b=ones(4,1) rref([A,b]) ans =
1.00000000000000 0 0 1.00000000000000 0.05882352941176
0 1.00000000000000 0 3.00000000000000 0.11764705882353
0 0 1.00000000000000 -3.00000000000000 -0.05882352941176
0 0 0 0 0
x=A\\b x =
0.05882352941176 0.11764705882353 -0.05882352941176 0 xg=null(A)
xg =
0.22360679774998 0.67082039324994 -0.67082039324994 -0.22360679774998
x+xg 也是方程的解
ans =
0.28243032716174 0.78846745207347 -0.72964392266170 -0.22360679774998
下面逆阵法的解不正确 x=inv(A)*b x =
0.03125000000000 0.12500000000000 -0.06250000000000 -0.01562500000000 因为 A*x
ans =
0.35937500000000 0.78125000000000 0.59375000000000 0.92187500000000
%习题4-11 clear all, A=magic(4) b=(1:4)' rref([A,b]) ans =
1 0 0 1 0 0 1 0 3 0 0 0 1 -3 0 0 0 0 0 1
x=A\\b x =
1.0e+015 *
-0.56294995342131 -1.68884986026394 1.68884986026394 0.56294995342131
A*x
ans =
0 6.50000000000000 4.00000000000000 7.81250000000000
x=inv(A)*b x =
1.0e+015 *
-0.56294995342131 -1.68884986026394 1.68884986026394 0.56294995342131
没有准确解,以下是伪逆阵求得的最小二乘解 x=pinv(A)*b x =
0.02352941176471 0.12352941176471 0.12352941176471 0.02352941176471 A*x
ans =
1.30000000000000 2.90000000000000 2.10000000000000 3.70000000000000
x=lsqnonneg(A,b) x =
0.04705882352941 0.19411764705882 0.05294117647059 0
A*x
ans =
1.30000000000000 2.90000000000000 2.10000000000000 3.70000000000000
%习题4-12 clear all,
y_C=inline('-0.5+t-10.*exp(-0.2.*t).*abs(sin(sin(t)))','t'); t=-10:0.01:10; Y=y_C(t);
plot(t,Y,'r'); hold on
plot(t,zeros(size(t)),'k'); xlabel('t');ylabel('y(t)') zoom on
[tt,yy]=ginput(1),zoom off [t1,y1]=fzero(y_C,tt)
t1 =
2.73411732208059
y1 =
-4.440892098500626e-016
[t2,y2]=fsolve(y_C,tt) t2 =
2.73411732208069
共分享92篇相关文档