Task02
语法知识
1.循环控制语句之一:for/end
2.循环控制语句之二:while/end
3.分支条件选择语句之:if/end
4.多分支条件选择语句:if/elseif/…/else/end
实例演练
>> A=pascal(8);
>> s=0;
>> for i = 1:8
s=s+sum(A(i,:));
end,s
s =
12869
>> sum(sum(pascal(8)))
ans =
12869
>> A=magic(5)
A =
17 24 1 8 15
23 5 7 14 16
4 6 13 20 22
10 12 19 21 3
11 18 25 2 9
for j=1:4
for i=j+1:5
A(i,:)=A(i,:)-A(i,j)/A(j,j)*A(j,:);
end
end,A
A =
17.0000 24.0000 1.0000 8.0000 15.0000
0 -27.4706 5.6471 3.1765 -4.2941
0 0 12.8373 18.1585 18.4154
0 0 0 -9.3786 -31.2802
0 0 0 0 90.1734
迭代式解:
>> x0=3;r=1;n=0;
>> while r>1e-5
x1=x0;
x0=3+5/x1.^2;
r=abs(x0-x1);
n=n+1;
end,x0,n
x0 =
3.4260
n =
9
多项式求根:
>> roots([1 -3 0 -5])
ans =
3.4260 + 0.0000i
-0.2130 + 1.1891i
-0.2130 - 1.1891i
迭代法:
>> A=[0 3/7 -2/7;-4/9 0 1/9;-6/11 -3/11 0] %迭代形式的系数矩阵
A =
0 0.4286 -0.2857
-0.4444 0 0.1111
-0.5455 -0.2727 0
>> B=[17/7;29/9;35/11] %迭代形式的常熟列向量
B =
2.4286
3.2222
3.1818
>> x0=[0 0 0]';x1=[1 1 1]';n=0;
>> while norm(x1-x0)>1e-5
x1=x0;
x0=A*x1+B;
n=n+1;
end,x0,n
x0 =
3.0000
2.0000
1.0000
n =
17
逆矩阵求解
>> A=[7 -3 2;4 9 -1;6 3 11]
A =
7 -3 2
4 9 -1
6 3 11
>> B=[17;29;35]
B =
17
29
35
>> X=inv(A)*B;
>> X'
ans =
3.0000 2.0000 1.0000
编辑器:
x=input('input a integer \n')
if rem(x,2)==0
disp('x is even')
b=x/2
fprintf('%d\n',b)
else disp('x is odd')
end
命令窗口:
>> example3_8
input a integer
235
x =
235
x is odd
>> example3_8
input a integer
256
x =
256
x is even
b =
128
128
>>example3_9
x =
2.1795