syms error (symbolic package error)
https://github.com/cbm755/octsympy/wiki/Notes-on-Windows-installation
2019年12月24日 星期二
2018年6月11日 星期一
2017年9月20日 星期三
二分法求根號近似值(octave)
%bisect.m
rt=10.;
fprintf('solve sqrt(%d)=?\n',rt); %solve sqrt(10)
a=round(sqrt(rt))
b=a+1
m=(a+b)/2.
e=10^-4 %hold condition, 精確到小數點第三位,則設到小數點第四位
error=m^2-rt;
count=1;
fprintf('count=%d, error=%f, sqrt(%d)=%f\n',count,error,rt,m);
while abs(error)>e
if error >0
b=m;
else
a=m;
end
a
b
m=(a+b)/2.
error=m^2-rt;
count=count+1;
fprintf('count=%d, error=%f, sqrt(%d)=%f\n',count,error,rt,m);
end
rt=10.;
fprintf('solve sqrt(%d)=?\n',rt); %solve sqrt(10)
a=round(sqrt(rt))
b=a+1
m=(a+b)/2.
e=10^-4 %hold condition, 精確到小數點第三位,則設到小數點第四位
error=m^2-rt;
count=1;
fprintf('count=%d, error=%f, sqrt(%d)=%f\n',count,error,rt,m);
while abs(error)>e
if error >0
b=m;
else
a=m;
end
a
b
m=(a+b)/2.
error=m^2-rt;
count=count+1;
fprintf('count=%d, error=%f, sqrt(%d)=%f\n',count,error,rt,m);
end
2017年4月18日 星期二
octave 解線性變換
% 代表註解符號
%mirror X (對x軸的鏡射變換矩陣)
mirX=[1 0; 0 -1]
在octave提示字元 > 下打入 mirX=[1 0; 0 -1],即會出現下面結果
octave:> mirX=[1 0; 0 -1]
mirX =
1 0
0 -1
%mirror Y (對y軸的鏡射變換矩陣)
mirY=[-1 0; 0 1]
octave:> mirY=[-1 0; 0 1]
mirY =
-1 0
0 1
%mirror O (對原點的鏡射變換矩陣)
mirO=[-1 0 ; 0 -1]
octave:> p=[1 2]
p =
1 2
%p的轉置 p'
octave:> p=[1 2]'
p =
1
2
% p mirror X
mirX*p
%p mirror Y
mirY*p
%p mirror O
mirO*p
% mirror Y *(mirror X *p) 先對x軸鏡射 , 再對y軸鏡射
mirY*(mirX*p)
mirY*mirX*p
檢驗交換性
?
先對x軸鏡射 , 再對y軸鏡射= 先對y軸鏡射 , 再對x軸鏡射
?
先對x軸鏡射 , 再對原點鏡射= 先對原點鏡射 , 再對x軸鏡射
?
先對x軸鏡射 , 再對y軸鏡射=對原點鏡射
%mirX*mirY=mirY*mirX(有交換性)
mirX*mirY
mirY*mirX
%mirX*mirO=mirO*mirX(有交換性)
mirX*mirO
mirO*mirX
%mirX*mirY=mirO
mirX*mirY
%mirX*mirO=mirY
mirX*mirO
%mirY*mirO=mirX
mirY*mirO
%求線性變換矩陣M,N,P,Q; T
% M N P Q
%[1 1]-->[ 6 6]-->[9 6]-->[9 9]-->[-9 9]
% T=QPNM
%[1 1]---------------------------->[-9 9]
M=[6 0; 0 6]
N=[1 1/2; 0 1]
P=[1 0; 1/3 1]
Q=[-1 0;0 1]
T=Q*P*N*M
x=[1 1]'
Mx=M*x
Nx=N*Mx
Px=P*Nx
Qx=Q*Px
T*x
單位矩陣Identity
octave:> eye(2)
ans =
Diagonal Matrix
1 0
0 1
octave:> eye(3)
ans =
Diagonal Matrix
1 0 0
0 1 0
0 0 1
零矩陣
octave:> zeros(2)
ans =
0 0
0 0
octave:> zeros(3)
ans =
0 0 0
0 0 0
0 0 0
octave:> zeros(3,2)
ans =
0 0
0 0
0 0
元素為1
octave:> ones(2)
ans =
1 1
1 1
octave:> ones(3)
ans =
1 1 1
1 1 1
1 1 1
octave:> ones(3,2)
ans =
1 1
1 1
1 1
行列式(determinat), det()
A=[1 2;3 4]
B=[4 3; 2 1]
octave:> det(A)
ans = -2
octave:> det(B)
ans = -2
det(AB)=det(BA)=det(A)det(B)
octave:> det(A*B)
ans = 4
octave:> det(B*A)
ans = 4
octave:> det(A)*det(B)
ans = 4
轉置矩陣transpose, A的轉置矩陣,寫為A'
det(A')=det(A)
octave:> A'
ans=
1 3
2 4
octave:> det(A')
ans = -2
(AB)'=B'A'
A=[1 2;3 4]
B=[4 3; 2 1]
A'
B'
(A*B)'
B'*A'
反矩陣(inverse)
A=[3 2; 2 -3]
inv(A)
求[3 2; 2 -3]x=[1 ;31]
即3x+2y=1
2x-3y=31
其中
A=[3 2; 2 -3]
x=[x;y]
b=[1;31]
即,我們可用矩陣的表示法來解聯立方程式
A=[3 2; 2 -3]
b=[1;31]
x=inv(A)*b
驗證Ax=b ?
A*x
mirX =
1 0
0 -1
mirY =
-1 0
0 1
mirO=[-1 0 ; 0 -1]
octave:> p=[1 2]
p =
1 2
p =
1
2
mirX*p
mirY*p
mirO*p
mirY*(mirX*p)
mirY*mirX*p
檢驗交換性
?
先對x軸鏡射 , 再對y軸鏡射= 先對y軸鏡射 , 再對x軸鏡射
?
先對x軸鏡射 , 再對原點鏡射= 先對原點鏡射 , 再對x軸鏡射
?
先對x軸鏡射 , 再對y軸鏡射=對原點鏡射
mirX*mirY
mirY*mirX
mirX*mirO
mirO*mirX
mirX*mirY
mirX*mirO
mirY*mirO
% M N P Q
%[1 1]-->[ 6 6]-->[9 6]-->[9 9]-->[-9 9]
% T=QPNM
%[1 1]---------------------------->[-9 9]
N=[1 1/2; 0 1]
P=[1 0; 1/3 1]
Q=[-1 0;0 1]
T=Q*P*N*M
x=[1 1]'
Mx=M*x
Nx=N*Mx
Px=P*Nx
Qx=Q*Px
T*x
單位矩陣Identity
octave:> eye(2)
ans =
Diagonal Matrix
1 0
0 1
octave:> eye(3)
ans =
Diagonal Matrix
1 0 0
0 1 0
0 0 1
零矩陣
octave:> zeros(2)
ans =
0 0
0 0
octave:> zeros(3)
ans =
0 0 0
0 0 0
0 0 0
octave:> zeros(3,2)
ans =
0 0
0 0
0 0
元素為1
octave:> ones(2)
ans =
1 1
1 1
octave:> ones(3)
ans =
1 1 1
1 1 1
1 1 1
octave:> ones(3,2)
ans =
1 1
1 1
1 1
行列式(determinat), det()
A=[1 2;3 4]
B=[4 3; 2 1]
octave:> det(A)
ans = -2
octave:> det(B)
ans = -2
det(AB)=det(BA)=det(A)det(B)
octave:> det(A*B)
ans = 4
octave:> det(B*A)
ans = 4
octave:> det(A)*det(B)
ans = 4
轉置矩陣transpose, A的轉置矩陣,寫為
det(A')=det(A)
octave:> A'
ans=
1 3
2 4
octave:> det(A')
ans = -2
(AB)'=B'A'
B=[4 3; 2 1]
A'
B'
(A*B)'
B'*A'
反矩陣(inverse)
inv(A)
求[3 2; 2 -3]x=[1 ;31]
2x-3y=31
A=[3 2; 2 -3]
x=[x;y]
b=[1;31]
即,我們可用矩陣的表示法來解聯立方程式
b=[1;31]
x=inv(A)*b
訂閱:
文章 (Atom)