MATLAB使用教程(4)——悄悄滴上手项目
目錄
1.計算一元二次方程
2.看一元方程的圖形
有個小疑問?
驚喜:
總結(jié)
1.計算一元二次方程
這一講我們以科學(xué)計算開始,使用matlab計算精確度很高,我們可以嘗試來計算一下黃金分割率(定義大家可以自行百度一下,這里就不再說了):
計算黃金分割率的公式是:
如果使用加法,得到的是1.618........,如果使用減法,得到的是0.618........,這兩個結(jié)果都是正確的。因為他們兩個只相差1.
首先,我們把這個公式轉(zhuǎn)化一下,把根號去掉,轉(zhuǎn)化為一個一元二次方程:
?(因為+號時無解,所以舍去)
然后我們就只需要使用matlab解開這個方程了!
clear;clc;%% 本程序求解黃金分割率的比值% r^2 - r - 1 = 0的解就是比值。p = [1 -1 -1];% 此數(shù)組代表了上式的二次項系數(shù)、一次項系數(shù)和常數(shù)項。r = roots(p);print_str = sprintf('r^2 - r - 1 = 0的結(jié)果是:%f和%f\n', r);disp(print_str);可以看到結(jié)果如下:
?可以看到,這兩個數(shù)就是我們需要的結(jié)果了。
當然,如果我們實現(xiàn)不知道各個系數(shù),只知道我們的公式(假設(shè)),我們可以使用solve函數(shù)來計算,可以大大節(jié)省我們的時間:
%% 第二種計算的方法。clear;clc; syms r; r2 = solve(r^2 - r - 1 == 0);print_str = sprintf('r*r - r - 1 = 0的結(jié)果是:%f和%f\n', r2);disp(print_str);同樣也能得到我們想要的結(jié)果,但同時注意:占位符是 %f 千萬不能寫成其他的。
但是你可能覺得這個精確度不高,沒問題,使用 vpa 方法可以提高精確度到很多位!!
第一個參數(shù)是我們的數(shù)據(jù),第二個參數(shù)是我們精確到小數(shù)點后的位數(shù)??梢缘玫胶芏辔坏慕Y(jié)果(好像理論是無限,但是前提是電腦的CPU夠厲害并且你有足夠的耐心并且你的內(nèi)存夠大!!在我的電腦上,計算到小數(shù)點后五萬位已經(jīng)有明顯的一秒左右延遲了。)
2.看一元方程的圖形
上面我們計算了這個方程,大家知道,在數(shù)學(xué)中,一元二次方程的表現(xiàn)是開口向上或者向下的拋物線,方程的解就是與X軸的交點(即零點)。
那么如何在matlab中表現(xiàn)呢?下面上代碼!
%% 顯示函數(shù)的圖像f = inline( 'x^2 - x - 1'); % 寫出我們的函數(shù)% 但是這個inline馬上就不能用了,但是只是前期學(xué)習(xí),不要介意ezplot(f, -4, 4); %顯示我們的函數(shù)圖形,hold on;運行我們就能得到我們想要的東西:
大家可以看到,在 x = 0 的水平線處有我們的兩個x的值。
有個小疑問?
加入我們寫成另一個形式呢(1/x - (x - 1))?很容易知道,這倆圖像雖然圖形不一樣,但是也是黃金分割率公式的變形,只需移項消元即可得到這個形式,很明顯,這個世子有個點是不存在的(點0,不能為分母),這個公式的圖形也明顯類似于反比例函數(shù)(在點0處的間斷點是第二類間斷點,0+0處是正無窮大,0-0處是負無窮大)。
這個沒問題!matlab會計算我們需要的函數(shù)圖形,有間斷點會計算極限,盡可能的滿足我們(這次我們在代碼里標出這個解的位置),代碼如下:
%% 第二種形式f = inline('1/x - (x - 1)'); % 寫出我們的函數(shù)ezplot(f, -2, 2);zeor1 = fzero(f, 1); % 找第一個函數(shù)零點,在x=1附近zero2 = fzero(f, -1); % 找第二個函數(shù)零點,在x=-1附近hold on;plot(zeor1, 0, 'o'); % 在第一個零點出畫一個字母oplot(zero2, 0, 'o'); % 在第一個零點出畫一個字母o而圖形,如同我們預(yù)期,顯示出了一個雙曲線,并且在零點處標出了我們的符號:
驚喜:
計算 sinx/x 的0處的比值。我們知道,當x->0的時候,sinx 和x是等價無窮小,比值是1,那么,我們看一下圖形把!
這個函數(shù)就留給大家自己解決吧,嘿嘿嘿嘿!!
總結(jié)
總結(jié)
以上是生活随笔為你收集整理的MATLAB使用教程(4)——悄悄滴上手项目的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: excel文件存入mysql_解析exc
- 下一篇: python实例 89,90