Matlab
???/h3>
1.重點基礎(chǔ)
clear: 清除內(nèi)存里的數(shù)據(jù) ??clc:清屏
變量名的第一個字符必須是字母,后面可加字母、數(shù)字和下劃線的任意組合;變量名有大小區(qū)分
>> A=[1,-2,5,6,-4,9]
A =
?????1 ???-2 ????5 ????6 ???-4 ????9
>> A=[1,-2,5;6,-4,9]
A =
?????1 ???-2 ????5
?????6 ???-4 ????9
>> A=[1,-2;5,6;-4,9]
A =
?????1 ???-2
?????5 ????6
? ? -4 ????9
【注】易錯
求AX=B:即A\B(A左除B) ?inv(A)*B
求XA=B:即B/A(A右除B) ?B*inv(A)
題一:求方程 x4+7x3 +9x-20=0的全部根。
>>p=[1,7,0,9,-20];
>>x=roots(p);
x =
-7.2254 + 0.0000i
-0.4286 + 1.5405i
-0.4286 - 1.5405i
1.0826 + 0.0000i
?
2.選擇結(jié)構(gòu)
選擇結(jié)構(gòu)的語句有if語句和switch語句。
1. if語句
格式一: ?if 條件
??????????語句組
???????????End
格式二: ??if 條件
???????????語句組1
???????????else
???????????語句組2
???????????end
格式三: ?if ?條件1
??????????語句組1
??????????elseif ?條件2
??????????語句組2
??????????……
??????????elseif ?條件m
??????????語句組m
??????????else
??????????語句組m+1
??????????End
題二:編寫函數(shù)文件求小于任意自然數(shù)n的Fibonacci數(shù)列各項。
?首先:建立名為ffib的m文件:
function f=ffib(n)
%用于求Fibonacci數(shù)列的函數(shù)文件
%f=ffib(n)
f=[1,1];
i=1;
while f(i)+f(i+1)<n
f(i+2)=f(i)+f(i+1);
i=i+1;
end
其次:在命令窗口輸入:ffib(2000) ??#可求小于2000的Fibonacci數(shù)
ffib(2000) #可求小于2000的Fibonacci數(shù)
【拓展】
Fibonacci數(shù)列:又稱斐波那契數(shù)列(Fibonacci sequence),又稱黃金分割數(shù)列。因數(shù)學(xué)家萊昂納多·斐波那契(Leonardo Fibonacci)以兔子繁殖為例子而引入,故又稱“兔子數(shù)列”,其數(shù)值為:1、1、2、3、5、8、13、21、34……在數(shù)學(xué)上,這一數(shù)列以如下遞推的方法定z義:F(0)=1,F(xiàn)(1)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 2,n ∈ N*)。
詳情請見其他大佬博主優(yōu)秀作品,謝謝!
題三:利用函數(shù)的遞歸調(diào)用,求n!
首先:建立factor的m文件:
function f=factor(n)
if n<=1
f=1;
else
f=factor(n-1)*n;
end
return; %返回在命令文件main2.m中調(diào)用函數(shù)文件factor.m:
其次:在命令窗口輸入:
for i=1:10
fac(i)=factor(i);
end
Fac
題四:輸入20個數(shù),求其中最大數(shù)和最小數(shù)。要求分別用循環(huán)結(jié)構(gòu)和調(diào)用MATLAB的max函數(shù)、min函數(shù)來實現(xiàn)。
循環(huán)結(jié)構(gòu):
A = zeros(1, 20);
for i = 1:20
A(i) = input('輸入一個數(shù):');
end
max_value = A(1);
min_value = A(1);
for i = 2:20
if A(i) > max_value
max_value = A(i);
end
if A(i) < min_value
min_value = A(i);
end
end
disp("最大值:" + max_value);
disp("最小值:" + min_value);
調(diào)用MATLAB的max函數(shù)和min函數(shù):
A = zeros(1, 20);
for i = 1:20
A(i) = input('輸入一個數(shù):');
end
max_value = max(A);
min_value = min(A);
disp("最大值:" + max_value);
disp("最小值:" + min_value);
題五:求Fibonacci數(shù)列
(1)大于4000的最小項?
a = 0;
b = 1;
c = a + b;
while c <= 4000
a = b;
b = c;
c = a + b;
end
min_item = c;
(2)5000之內(nèi)的項數(shù)?
a = 0
b = 1
count = 1;
while b <= 5000
temp = b;
b = a + b;
a = temp;
end
min_item = b;
disp(min_item);
(3)小于4000的最大項 ???????
a = 1;
b = 1;
c = a + b;
while c < 4000
a = b;
b = c;
c = a + b;
end
max_item = b;
disp(max_item);
(4)小于4000的所有數(shù)的和
fibonacci_sum = 0;
a = 0;
b = 1;
while b < 4000
fibonacci_sum = fibonacci_sum + b;
a = b;
b = a + b;
end
disp(fibonacci_sum)
(5)小于4000的所有數(shù)并輸出
f = [1,1];
i = 1;
while f(i) + f(i+1) < 4000
f(i+2) = f(i) + f(i+1);
i = i + 1;
end
disp(f)
【注】
?函數(shù)格式:plot(x,y) ?其中x和y為坐標(biāo)向量
?函數(shù)功能:以向量x、y為軸,繪制曲線
?det(A)矩陣A的行列式 eig(A)矩陣A的特征值 inv(A)矩陣求逆?
題六:試用ROOTS函數(shù)求多項式x4+8x3-10的根?
>> x=[1,8,0,0,-10]
x =
1 8 0 0 -10
>> y=roots(x)
y =
-8.0194 + 0.0000i
1.0344 + 0.0000i
-0.5075 + 0.9736i
-0.5075 - 0.9736i
題七:已知某班的5名學(xué)生的三門課成績列表如下:
學(xué)生序號 | 1 | 2 | 3 | 4 | 5 |
高等數(shù)學(xué) | 78 | 89 | 64 | 73 | 68 |
線性代數(shù) | 83 | 77 | 80 | 78 | 70 |
數(shù)學(xué)建模 | 82 | 91 | 78 | 82 | 68 |
試寫出有關(guān)命令,先分別找出三門課的最高分及其學(xué)生序號;然后找出三門課總分的最高分及其學(xué)生序號。
% 創(chuàng)建5x3的矩陣存儲成績
scores = [78, 89, 64; 83, 77, 80; 82, 91, 78; 73, 68, 68];
% 使用max函數(shù)分別找出每門課的最高分及其學(xué)生序號
math_max_score = max(scores(:, 1));
math_max_index = find(scores(:, 1) == math_max_score);
for i = 1:length(math_max_index)
disp(['高等數(shù)學(xué)最高分:', num2str(math_max_score), ',學(xué)生序號:',
num2str(math_max_index(i))]);
end
english_max_score = max(scores(:, 2));
english_max_index = find(scores(:, 2) == english_max_score);
for i = 1:length(english_max_index)
disp(['線性代數(shù)最高分:', num2str(english_max_score), ',學(xué)生序號:',
num2str(english_max_index(i))]);
end
matlab_max_score = max(scores(:, 3));
matlab_max_index = find(scores(:, 3) == matlab_max_score);
for i = 1:length(matlab_max_index)
disp(['數(shù)學(xué)建模最高分:', num2str(matlab_max_score), ',學(xué)生序號:',
num2str(matlab_max_index(i))]);
end
% 計算每名學(xué)生的總分
total_scores = sum(scores, 2);
% 找出總分最高的學(xué)生序號
highest_total_score = max(total_scores);
highest_total_index = find(total_scores == highest_total_score);
disp(['總分最高分:',
num2str(highest_total_score), ',學(xué)生序號:', num2str(highest_total_index)]);
題八:有多項式P1(x)=x4-2x+1,P2(x)=x2+4x-0.5,要求先求得P(x)=P1(x)+P2(x),然后計算xi=0.2*i各點上的P(xi)(i=0,1,2,…,5)值。
%定義多項式函數(shù)P1(x)和P2(x)
P1 = @(x) x.^4 + 0*x.^3 + 0*x.^2 - 2*x + 1;
P2 = @(x) x.^4 + 0*x.^3 + x.^2 + 4*x - 0.5;
%計算P(x) = P1(x) + P2(x)
P(x) = @(x) P1(x) + P2(x);
%計算xi = 0.2*i 各點上的P(xi)值
xi = 0:0.25;
P_xi = P(xi);
%輸出結(jié)果
disp('xi==');
disp(xi);
disp('P(xi) = ');
disp(P_xi);
?以上就是數(shù)學(xué)模型與數(shù)學(xué)建模(急救版80+)??贾R點(一)的全部內(nèi)容(原創(chuàng))文章來源:http://www.zghlxwxcb.cn/news/detail-779515.html
若對各位有幫助的,請點贊收藏哦,以防下次找不到了哦?。?!????????文章來源地址http://www.zghlxwxcb.cn/news/detail-779515.html
到了這里,關(guān)于數(shù)學(xué)模型與數(shù)學(xué)建模(急救版80+)??贾R點(一)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!