久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

高等應(yīng)用數(shù)學(xué)問題MATLAB求解.第一,二章

 云深無際 2021-11-03

參考書為:高等應(yīng)用數(shù)學(xué)問題的MATLAB求解(第二版)

a=[1, 1];% 數(shù)值解for i=3:100,a(i)=a(i-1)+a(i-1);enda
a=sym([1, 1]);% 解析解for i=3:100,a(i)=a(i-1)+a(i-1);enda

啊這,,為什么我用不了了

C:\Program Files\MATLAB\R2018b\toolbox\maple

發(fā)現(xiàn)是這個(gè)文件夾

https://www.voidtools.com/zh-cn/

下載安裝everthing,,做文件搜索

我替換了一下

dll問價(jià)

報(bào)錯(cuò)誤,,新的

https://www.mathworks.com/matlabcentral/answers/489410-sym-x-returns-error-symbolic-math-toolbox-is-installed

這里說了,,就是裝maple的鍋,,估計(jì)是32位的Maple替換了原本64位matlab自帶的maple庫,,我還能遇到這種事情,?,?,?

確實(shí)是安裝的時(shí)候在問路徑在哪里

這個(gè)符號(hào)工具箱,,2018b沒有

你說,這樣的操作

確實(shí)很狗

pathtool工具,,集成了所有的搜索文件

我們這里移除maple的工具箱

看看目錄

復(fù)制進(jìn)去

其實(shí)我覺得,,只要找一個(gè)相同版本的替換一下工具箱就行

插入一個(gè)語法、

知乎看見這個(gè)了,,也就是說

以后的版本,,函數(shù)還是會(huì)變化

https://www.mathworks.com/products/symbolic.html

這里推薦了這個(gè),好厲害的樣子

買不起

真麻煩,,我的符號(hào)計(jì)算死翹翹了

關(guān)于MATLAB的問題請(qǐng)來這里搜索

lookfor模糊搜索

這個(gè)里普諾夫方程,,好像是自動(dòng)化使用的多

https://www.mathworks.com/help/releases/R2018b/control/linear-algebra-for-control-design.html

具體的這些矩陣方程的求解

推薦課程

https://ww2.mathworks.cn/support/search.html/videos/matlab-for-teaching-82560.html?fq[]=asset_type_name:video&fq[]=category:symbolic/index&page=1

一些內(nèi)置的小符號(hào)

還是符號(hào)

以及一些別的變量的嘗試

maple也內(nèi)置了vps函數(shù)

數(shù)值計(jì)算里面的大佬

簡(jiǎn)單生成矩陣

矩陣的維數(shù),可以動(dòng)態(tài)變化

就是括號(hào)不好匹配

[返回的值]=function_name(參數(shù)列表)

好好記住這個(gè)函數(shù)的調(diào)用寫法

[U S V]=svd(X)

對(duì)X矩陣就行奇異值分解,,返回USV三個(gè)變量,。

冒號(hào)表達(dá)式:函數(shù)的原型是

v=s1:s2:s3

該函數(shù)生成一個(gè)行向量(就是橫著的),s1是起始值,,s2是步距(就是一次走的最小的值),,s3當(dāng)然就是結(jié)尾了。

小試牛刀

你可以花里胡哨的自己任意發(fā)揮

v2向量為1 x 0的空矩陣

v3很好的展示了默認(rèn)步長(zhǎng)為1這個(gè)現(xiàn)象

v4則是降序的排列

提取一塊:

B=A(v1,v2)

很多時(shí)候我們是不要一個(gè)大矩陣的,,所以就提取,,其實(shí)就是Python里面的切片法,。

v1表示保留行號(hào)構(gòu)成的向量

v2表示保留列號(hào)構(gòu)成的向量

先搞個(gè)矩陣

分析一下,這個(gè)B1其實(shí)使用了兩個(gè)函數(shù),,分塊+向量生成,。

提取A的全部奇數(shù)行,所有列

提取A的3,,2,,1行

反復(fù)三次由首列構(gòu)成的子矩陣

A矩陣左右翻轉(zhuǎn)

永遠(yuǎn)記住,分號(hào)就是換行

要執(zhí)行逐元素乘法而不是矩陣乘法,,請(qǐng)使用.*運(yùn)算符

可以很明顯的看出來是,,對(duì)應(yīng)的位置元素相乘然后生成的

這樣是矩陣乘法

串聯(lián),拼接什么的

我覺得名字都合適

英文是concatenation

逗號(hào)是水平連接

懂就行

分號(hào)是換行?。,。∫簿褪窃赱  ]的規(guī)約下

前提行一樣,,就是長(zhǎng)度一樣,,這樣摞起來一樣的長(zhǎng)

列數(shù)一樣的時(shí)候,分號(hào)也是可以連接的

其實(shí)這些上面都是設(shè)計(jì)的事情,,別那么快想學(xué)會(huì),,慢下來想一下,為什么,。你五分鐘搞懂一個(gè)概念,比你什么時(shí)候都模棱兩可的強(qiáng),。一定要體會(huì)哪種為什么這么做的感覺,。

看出來沒有

A(行(橫),列(shu))

不常見的用法,,蛇形排列

這個(gè)的名詞解釋叫線性索引

線性就是一個(gè)的意思

但是,,在賦值語句的左側(cè),您可以指定當(dāng)前維度之外的元素,。陣列的大小增加以容納新來者,。

你看解釋

冒號(hào)單獨(dú)指定了該維度中的所有元素

這中間好多知識(shí),寫的好麻煩

字丑,,自己看啊

norm函數(shù),,Excel說了

matlab里面是計(jì)算范數(shù)的

一個(gè)矩陣的三次方根應(yīng)該有三個(gè)結(jié)果

上面計(jì)算出一個(gè)

下面旋轉(zhuǎn)兩次得到另外兩個(gè)

find函數(shù)好哇,可以把滿足關(guān)系的函數(shù)的數(shù)組下標(biāo)打印出來

為了好看,,轉(zhuǎn)置一下

這個(gè)函數(shù)就是先把矩陣搞成一列,,讓你哈偶判斷,接著把合適的下標(biāo)輸出,、

嵌套把A中NaN的量輸出

可以直接把行列坐標(biāo)打印出來

轉(zhuǎn)置一下

然后,,下面報(bào)錯(cuò)

第一個(gè)表示,,A矩陣中的某列元素大于等于5,變1,,否則0

我糊涂了,這里

想判定一個(gè)A元素都大于或等于5

Matlab在符號(hào)計(jì)算上面依賴于Maple的SDK

s1=0;for i=1:100,s1=s1+i;ends1

for循環(huán)時(shí)最強(qiáng)大的循環(huán),可以一直使用

s2=0;i=1;while(i<=100) s2=s2+i i=i+1ends2

while是適合逼近一些條件的時(shí)候去收斂,,比如求一個(gè)最小的m值

內(nèi)置的計(jì)算結(jié)果


s=0;m=0;while(s<=10000) m=m+1; s=s+m;end,s,m

matlab的矩陣化計(jì)算,,久負(fù)盛名,所以就看看矩陣化計(jì)算的好處,。

tic,s=0;for i=1:100000 s=s+1/2^i+1/3^i;endtoc
tic,i=1:100000;s=sum(1./2.^i+1./3.^i)toc

下面是矩陣運(yùn)算化的結(jié)果

function [m,s]=findsum(k)s=0;m=0;while (s<=k) m=m+1; s=s+m;end

函數(shù)的編寫和調(diào)用

一個(gè)好習(xí)慣,,函數(shù)名字就是m文件的名字

function A=myhilb(n,m)
if nargout>1,error('太多的輸出參數(shù)');end
if nargout==1,m=n;elseif nargin==0|nargin>2,error('輸入了錯(cuò)誤的參數(shù)');end
for i=1:n for j=1:m A(i,j)=1/(i+j-1); endend

以上是自己寫的哈密頓矩陣生成函數(shù)

這個(gè)地方,,測(cè)試輸入的參數(shù)個(gè)數(shù)

其實(shí)生成的算法很簡(jiǎn)單,,兩個(gè)循環(huán)就完事了

function k=my_fact(n)if nargin~=1 error('僅接收一個(gè)輸入的參數(shù)')end
if abs(n-floor(n))>eps|n<0 error('n要輸入一個(gè)非負(fù)的數(shù)');end
if n>1 k=n*my_fact(n-1)elseif any ([0 1]==n) k=1;end

一個(gè)階乘的計(jì)算程序

可變輸入輸出個(gè)數(shù)的處理,多項(xiàng)式相乘的函數(shù),,conv,,那連乘呢?

function a=convs(varargin)a=1for i=1:length(varargin) a=conv(a,varargin{i});end

這時(shí)所有的輸入變量列表由單元變量varargin表示,。返回時(shí)可以用varargout來表示,。

最出名的函數(shù)句柄

https://ww2.mathworks.cn/help/matlab/matlab_prog/creating-a-function-handle.html

函數(shù)句柄

可用于間接調(diào)用函數(shù)的變量

函數(shù)句柄是一種表示函數(shù)的 MATLAB? 數(shù)據(jù)類型。函數(shù)句柄的典型用法是將一個(gè)函數(shù)傳遞給另一個(gè)函數(shù),。例如,,你可以將函數(shù)句柄用作基于某個(gè)值范圍計(jì)算數(shù)學(xué)表達(dá)式的函數(shù)的輸入?yún)?shù)。

函數(shù)句柄可以表示命名函數(shù)或匿名函數(shù),。要?jiǎng)?chuàng)建函數(shù)句柄,,請(qǐng)使用 @ 運(yùn)算符。例如,,創(chuàng)建用于計(jì)算表達(dá)式 x2 – y2 的匿名函數(shù)的句柄:

f = @(x,y) (x.^2 - y.^2);


什么是函數(shù)句柄,?

函數(shù)句柄是一種存儲(chǔ)指向函數(shù)的關(guān)聯(lián)關(guān)系的 MATLAB? 數(shù)據(jù)類型。間接調(diào)用函數(shù)使您在調(diào)用該函數(shù)時(shí)無需考慮調(diào)用位置,。函數(shù)句柄的典型用法包括:

  • 將一個(gè)函數(shù)傳遞到另一個(gè)函數(shù)(通常稱為復(fù)合函數(shù)),。例如,將函數(shù)傳遞到 integral 和 fzero 等積分和優(yōu)化函數(shù),。

  • 指定回調(diào)函數(shù)(例如,,響應(yīng) UI 事件或與數(shù)據(jù)采集硬件交互的回調(diào))。

  • 構(gòu)造以內(nèi)聯(lián)方式定義而非存儲(chǔ)在程序文件(匿名函數(shù))中的函數(shù)的句柄,。

  • 從主函數(shù)外調(diào)用局部函數(shù),。

首先明確一點(diǎn),函數(shù)句柄是matlab里面一種數(shù)據(jù)類型

代碼

放大感覺我注意的溝溝彎彎的地方?jīng)]有很明顯

x=[-pi:0.05:-1.8,-1.799:.001:-1.2,-1.2:0.05:1.2,...];1.201:0.001:1.8,1.81:0.05:pi];>> plot(x,y)

注意新名詞,,變步距

是不是效果顯著

我手邊有個(gè)這函數(shù)

y=1.1*sign(x).*(abs(x)>1.1)+x.*(abs(x)<=1.1);

用關(guān)系表達(dá)式繪制的圖形,,當(dāng)然了,,分段線性的非線性曲線可以由幾個(gè)有限的轉(zhuǎn)折點(diǎn)繪制。

極坐標(biāo)下繪圖

theta就是就是角度

rho就是密度一樣的哪個(gè)羅馬字母

>> theta=0:0.01:6*pi;>> rho=5*sin(4*theta/3);>> polar(theta,rho)

為了方便復(fù)制,,這里把代碼附上

結(jié)果

>> t=0:.2:2*pi;>> y=sin(t);
>> subplot(2,2,1),stairs(t,y);>> subplot(2,2,2),stem(t,y)>> subplot(2,2,3),bar(t,y)>> subplot(2,2,4),semilogx(t,y)

注意這里用了子圖函數(shù)

第一個(gè)2是,,窗口分為兩行

第二個(gè)2是,窗口分為倆列

第三個(gè)數(shù)是,,確定位置

成果

階梯曲線

火柴桿曲線

直方圖

橫坐標(biāo)為對(duì)數(shù)

一些函數(shù)叫隱函數(shù),,就是沒有辦法給解析式

plot()繪制不了

使用ezplot(),定義域機(jī)器自己給

也可以自己給定義域

>> ezplot('x^2*sin(x+y^2)+y^2*exp(x+y)+5*cos(x^2+y)')>> ezplot('x^2*sin(x+y^2)+y^2*exp(x+y)+5*cos(x^2+y)',[-10 10])

注意一開始的小符號(hào),,就是L鍵旁邊的旁邊的按鍵

我太貼心了

然后也支持LaTeX的語法

就記住_^分別是下標(biāo)和上標(biāo)

a_2^2+b_2^2=c_2^2

就像這樣,。

現(xiàn)在開始整點(diǎn)立體的,那肯定就是參數(shù)方程了,,肯定跑不了的我和你說,。

>> t=0:.1:2*pi;>> x=t.^3.*sin(3*t).*exp(-t);>> y=t.^3.*cos(3*t).*exp(-t);>> z=t.^2;>> plot3(x,y,z)

寫公式真是一個(gè)好累的工作,注意這里是.^全部是單乘

結(jié)果好看就行

stem3(x,y,z);hold on;plot3(x,y,z),grid

可以使用stem3繪制火柴桿曲線

接下來在認(rèn)識(shí)一下三維曲面的繪制,,一般是二元函數(shù)才能繪制這樣的圖像,。就像:

z=f(x,y)

一個(gè)三維的曲面圖,不是一下就可以繪制出來的,。需要先生成網(wǎng)格矩陣數(shù)據(jù)x和y,。然后才可以使用點(diǎn)運(yùn)算生成Z矩陣。

[X ,Y]=meshgrid(v1,v2)

這就是第一步的工作,。里面v1,,v2為x,y軸的分隔方式,。

>> [x,y]=meshgrid(-3:0.1:3,-2:0.1:2);>> z=(x.^2-2*x).*exp(-x.^2-y.^2-x.*y);>> mesh(x,y,z)>>

你仔細(xì)讀這個(gè)函數(shù),,meshgrid,后面是不是給了倆段的分段

>> surf(x,y,z)>> mesh(x,y,z)>> waterfall(x,y,z)

三種函數(shù)的繪制方式

[x,y]=meshgrid(-2:.1:2);z=1./(sqrt((1-x).^2+y.^2))+1./(sqrt((1+x).^2+y.^2));surf(x,y,z)shading flat

再繪制一個(gè),,但是仔細(xì)看這個(gè)圖有毛病

這都無窮值了

xx=[-2:.1:-1.2,-1.1:0.02:-0.9,-0.8:0.1:0.8,0.9:0.02:1.1,1.2:0.1:2];yy=[-1:0.1:-0.2,-0.1:0.02:0.1,0.2:0.02:.1:1];

[xx,yy]=meshgrid(xx,yy);z=1./(sqrt((1-x).^2+y.^2))+1./(sqrt((1+x).^2+y.^2));surf(x,y,z)shading flatzlim([0,15])

變步距繪制一下,,再到(+-1,,0)處

所以再這個(gè)區(qū)域就變步距,,這里Z軸范圍還是一樣

其實(shí)本身函數(shù)就有點(diǎn)病態(tài),所以也改變不了兩個(gè)區(qū)域的無窮現(xiàn)象

本來找個(gè)視角的圖,,結(jié)果就這

來,,繪制一個(gè)!??!

等等,再插一個(gè),,分段的二維函數(shù)如何繪制,?

就是這個(gè)

其實(shí)對(duì)于分段函數(shù)來說,,你總可以使用if的方式繪制,但是它不優(yōu)雅,。我們干點(diǎn)優(yōu)雅的事情,。

[x,y]=meshgrid(-1.5:.1:1.5,-2:.1:2);z=0.5457*exp(-0.75*y.^2-3.75*x.^2-1.5*x).*(x+y>1)+... 0.7575*exp(-y.^2-6*x.^2).*((x+y>-1)&(x+y<=1))+... 0.5457*exp(-0.75*y.^2-3.75*x.^2+1.5*x).*(x+y<=-1);surf(x,y,z)xlim([-1.5 1.5]);shading flat

一堆錯(cuò)誤,才修完

結(jié)果

這叫關(guān)系表達(dá)式,,就有真或者假兩個(gè)狀態(tài)

視角定義

方位角α x-y平面投影點(diǎn)與y軸負(fù)方向的夾角,,默認(rèn)為-37.5

仰角β為視點(diǎn)和x-y平面的夾角。默認(rèn)為30°

view(方位角,,仰角)

改變了視角

[x,y]=meshgrid(-1.5:.1:1.5,-2:.1:2);z=0.5457*exp(-0.75*y.^2-3.75*x.^2-1.5*x).*(x+y>1)+... 0.7575*exp(-y.^2-6*x.^2).*((x+y>-1)&(x+y<=1))+... 0.5457*exp(-0.75*y.^2-3.75*x.^2+1.5*x).*(x+y<=-1);surf(x,y,z)xlim([-1.5 1.5]);shading flat
view(80,10)

默認(rèn)

%view(80,10)

快展示一下:

結(jié)果

[x,y]=meshgrid(-3:0.1:3,-2:0.1:2);z=(x.^2-2*x).*exp(-x.^2-y.^2-x.*y);subplot(224)surf(x,y,z)% 標(biāo)準(zhǔn)視圖subplot(221)surf(x,y,z)view(0,90);% 俯視圖subplot(222)surf(x,y,z)view(90,0);% 側(cè)視圖subplot(223)surf(x,y,z)view(0,0);% 正視圖

代碼

先下載一張照片

注意包保存文件,,不能以數(shù)字開頭

>> W=imread('./unsplash-Oliver Schwendener.jpg');

注意加;  不然太恐怖了。,。,。

注意tab鍵自動(dòng)補(bǔ)全,放在同一個(gè)文件夾

牛啊

>> imtool(W)

內(nèi)置工具顯示

讀取

>> W1=rgb2gray(W);>> W2=edge(W1);>> figure;>> imtool(~W2)

邊緣圖,,有點(diǎn)好看

下篇文章是關(guān)于微積分的

    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多