星期五, 11月 10, 2006

吳子青: 本週作業4.1

  1. 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))

-------------------------------------------------------------------------------------------

  1. 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

結果與分析:

A10x10的亂數矩陣,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矩陣。

-------------------------------------------------------------------------------------------

  1. Prove that exp(i*theta)=cos(theta)+i*sin(theta) using matlab commands.

分析: 利用數值方式證明尤拉公式,因為pi~3.14,所以這裡i=010包含所有的狀況,間隔 0.01A= exp(i*theta)B= cos(theta)+i*sin(theta)

如果A=B for every thetashow “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

結果與討論:

尤拉公式是複數裡很重要的的定理,要證明要使用幾何的概念,在這裡使用最簡單的方法去證明。

-------------------------------------------------------------------------------------------

  1. Let R=eye(3)*5+4*ones(3)i. Find abs(R), angle(R), real(R) and imag(R).

分析:

題目中R是一個複數矩陣,在這裡用兩個矩陣分別是eyeones組成虛部和實部,然後分別求它的複式平面長度,角度和實部虛部,不過奇怪的是在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,元素全部是43x3矩陣。而abs定義 a+bi à abs=a^2+b^2,就是在複式平面的向量長度,而angle就是向量的角度。

沒有留言: