- Two vectors A=3i +5i +10k and B=5i -6j +2k are both passing through an origin. Find the unit vector that is perpendicular to both vectors A & B.
分析:題目要求的是在空間上和A,B兩向量垂直的單位向量,通常作法是取兩向量的外積然後在取單位向量。
程式內容:
clear
A=[3 5 10];
B=[5 -6 2];
c=cross(A,B);
U=c/sqrt(sum(c.^2,2))
U =
0.7511 0.4721 -0.4614
結果與分析:
空間上和A,B兩向量垂直的單位向量 u= (0.7511 ,0.4721 ,-0.4614)
在這裡求向量的長度除了用 sqrt(c*c’) 和 sqrt(dot(c,c))之外的用法
也可以用 sqer(sum(c.^2,2))。
-------------------------------------------------------------------------------------------
- A=randn(10,10). Find mean(A), median(A,2), std(A), std(A,1,2). Explain the results.
分析:在這裡A是一個10x10的亂數矩陣,在這裡試驗矩陣的一些基礎運算
mean, median,std,std 等,需要注意的地方是dim
程式內容:
A=randn(10,10)
Columns 1 through 5
-0.4326 -0.1867 0.2944 -0.3999 -1.6041
-1.6656 0.7258 -1.3362 0.6900 0.2573
0.1253 -0.5883 0.7143 0.8156 -1.0565
0.2877 2.1832 1.6236 0.7119 1.4151
-1.1465 -0.1364 -0.6918 1.2902 -0.8051
1.1909 0.1139 0.8580 0.6686 0.5287
1.1892 1.0668 1.2540 1.1908 0.2193
-0.0376 0.0593 -1.5937 -1.2025 -0.9219
0.3273 -0.0956 -1.4410 -0.0198 -2.1707
0.1746 -0.8323 0.5711 -0.1567 -0.0592
Columns 6 through 10
-1.0106 0.0000 0.5689 0.6232 0.3899
0.6145 -0.3179 -0.2556 0.7990 0.0880
0.5077 1.0950 -0.3775 0.9409 -0.6355
1.6924 -1.8740 -0.2959 -0.9921 -0.5596
0.5913 0.4282 -1.4751 0.2120 0.4437
-0.6436 0.8956 -0.2340 0.2379 -0.9499
0.3803 0.7310 0.1184 -1.0078 0.7812
-1.0091 0.5779 0.3148 -0.7420 0.5690
-0.0195 0.0403 1.4435 1.0823 -0.8217
-0.0482 0.6771 -0.3510 -0.1315 -0.2656
>> mean(A)
ans =
Columns 1 through 4
0.0013 0.2310 0.0253 0.3588
Columns 5 through 8
-0.4197 0.1055 0.2253 -0.0543
Columns 9 through 10
0.1022 -0.0961
>> median(A,2)
ans =
-0.0933
0.1726
0.3165
0.4998
0.0378
0.3833
0.7561
-0.3898
-0.0197
-0.0953
>> std(A)
ans =
Columns 1 through 5
0.9034 0.8829 1.1898 0.7832 1.0821
Columns 6 through 10
0.8393 0.8575 0.7557 0.7922 0.6292
>> std(A,1,2)
ans =
0.6796
0.8248
0.7283
1.2648
0.8312
0.6643
0.6634
0.7468
1.0275
0.4161
結果與分析:
A是10x10的亂數矩陣,mean(A,dim=1)為從A的每一行取平均,所以結果是1x10矩陣,mean(A)=mean(A,1)相同,dim=1代表取行平均。median(A,2)是從每一列取平均,dim=2代表取列平均,結果為10x1矩陣。 std(A)代表std(A,0,1)預設值 frag=0, dim=1 代表是樣本的標準偏差,自由度=n-1,取行向量的標準偏差。std(A,1,2) 則是frag=1 代表族群的標準偏差,自由度=n,取列向量的標準偏差,結果為10x1矩陣。
-------------------------------------------------------------------------------------------
- Prove that exp(i*theta)=cos(theta)+i*sin(theta) using matlab commands.
分析: 利用數值方式證明尤拉公式,因為pi~3.14,所以這裡i=0到10包含所有的狀況,間隔 0.01。A= exp(i*theta),B= cos(theta)+i*sin(theta)
如果A=B for every theta,show “proved” 尤拉公式得證。
程式內容:
A=zeros(1,1000);
B=zeros(1,1000);
for theta=1:0.01:10
A(1,:)=exp(i*theta);
B(1,:)=cos(theta)+i*sin(theta);
end;
if A-B==0
fprintf('proved!!');
else
fprintf('wrong!');
end
結果與討論:
尤拉公式是複數裡很重要的的定理,要證明要使用幾何的概念,在這裡使用最簡單的方法去證明。
-------------------------------------------------------------------------------------------
- Let R=eye(3)*5+4*ones(3)i. Find abs(R), angle(R), real(R) and imag(R).
分析:
題目中R是一個複數矩陣,在這裡用兩個矩陣分別是eye和ones組成虛部和實部,然後分別求它的複式平面長度,角度和實部虛部,不過奇怪的是在matlab
裡面直接打eye(3)*5+4*ones(3)I 會顯示錯誤訊息 Error: Missing MATLAB operator.。
程式內容:
A=zeros(3);
A(:)=4i
A =
0 + 4.0000i 0 + 4.0000i 0 + 4.0000i
0 + 4.0000i 0 + 4.0000i 0 + 4.0000i
0 + 4.0000i 0 + 4.0000i 0 + 4.0000i
R=eye(3)*5+A
R =
5.0000 + 4.0000i 0 + 4.0000i 0 + 4.0000i
0 + 4.0000i 5.0000 + 4.0000i 0 + 4.0000i
0 + 4.0000i 0 + 4.0000i 5.0000 + 4.0000i
>> abs(R)
ans =
6.4031 4.0000 4.0000
4.0000 6.4031 4.0000
4.0000 4.0000 6.4031
>> angle(R)
ans =
0.6747 1.5708 1.5708
1.5708 0.6747 1.5708
1.5708 1.5708 0.6747
>> real(R)
ans =
5 0 0
0 5 0
0 0 5
>> imag(R)
ans =
4 4 4
4 4 4
4 4 4
結果與分析:
real 和imag 分別是求複數的實部和虛部,所以答案就是 eye(3)*5 ,是3x3的對角矩陣x5,和ones(3) x4,元素全部是4的3x3矩陣。而abs定義 a+bi à abs=a^2+b^2,就是在複式平面的向量長度,而angle就是向量的角度。
沒有留言:
張貼留言