日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人工智能 > 循环神经网络 >内容正文

循环神经网络

c语言fmin最小公倍数,matlab小函数

發(fā)布時間:2023/12/9 循环神经网络 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c语言fmin最小公倍数,matlab小函数 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

8種機械鍵盤軸體對比

本人程序員,要買一個寫代碼的鍵盤,請問紅軸和茶軸怎么選?

(記得按字母序索引)

矩陣向量化操作

A(:)

拉成一個向量 ($a_{11},a_{21},…$),注意先列后行

repmat用途:創(chuàng)建由小型矩陣重復(fù)組合成的矩陣,比如各行向量相同的矩陣

例子1A = repmat(1:5, 5, 1)運行結(jié)果:

1 2 3 4 5

1 2 3 4 5

1 2 3 4 5

1 2 3 4 5

1 2 3 4 5

find用途:把滿足find條件的下標(biāo)揪出來. 當(dāng)返回值只有一個時返回全下標(biāo),兩個時則返回下標(biāo)對 .

注意這里的全下標(biāo)是指先數(shù)列再數(shù)行,如在3*3矩陣中,$a_{13}$的全下標(biāo)為3,$a_{31}$的全下標(biāo)為7.

例子1

2

3

4A = [1,-3,-4;4,3,-9];

B = find(A > 0);

C = find(mod(A, 2)==0);%揪出偶數(shù)

[r,c] = find(A > 0);

運行結(jié)果

A =

1 -3 -4

4 3 -9

B =

1

2

4

C =

2

5

r =

1

2

2

c =

1

1

2

(即(1,1),(2,1),(2,2)元素為所找元素)

reshape用途:把給定矩陣(通常是向量)按自己需要的方式(具體指行列維數(shù))重新塑造成矩陣 .

例子1A = reshape(1:10,2,5);

運行結(jié)果:

A = 1 3 5 7 92 4 6 8 10

inv用途:矩陣求逆 .

注意:不可逆矩陣用inv時會顯示inf矩陣

randn用途:生成正態(tài)分布隨機矩陣

例子1A = randn(3,4);

A = 0.5377 0.8622 -0.4336 2.76941.8339 0.3188 0.3426 -1.3499

-2.2588 -1.3077 3.5784 3.0349

rand用途:生成 [0, 1] 均勻分布的矩陣

例子1A = rand(3,4);

A= 0.9572 0.1419 0.7922 0.03570.4854 0.4218 0.9595 0.8491

0.8003 0.9157 0.6557 0.9340

randi用途:rand integer,即生成指定區(qū)間的整數(shù)的均勻分布的隨機矩陣

例子1A = randi([0,3], 3, 3)

A = 2 1 23 2 0

2 0 1

對矩陣元素排序1

2

3

4

5A = [5,1,7;2,8,6;9,3,4];

A1 = sort(A); %列升序

A2 = sort(A,'descend') %列降序

A3 = sort(A,2) %行升序

A4 = reshape(sort(A(:)),3,3); %全部元素排序

矩陣冪運算與矩陣函數(shù)

胞元數(shù)組

內(nèi)容援引:a{k}=5, b{k}=’r’

援引:顯示胞元類型,a(k)=double, b(k)=string

符號矩陣分析

A.’(轉(zhuǎn)置)與A’(共軛轉(zhuǎn)置)

共軛矩陣

conj(A)

det(A)

求行列式

diag(A)當(dāng)A為向量,則生成矩陣 $diag(a_1,dots a_n)$;

當(dāng)A為矩陣,則提取其對角元構(gòu)成向量。

expm(A)

計算A的指數(shù)矩陣(將其對角化后取指數(shù)再復(fù)原)

A的最大維度大小(若A為向量,則返回長度)

length(A)

ndims(A)

返回A的維數(shù)

A所含元素總數(shù)

numel(A)

每一維大小(行*列)

size(A)

rank(A)

計算A的秩

化為下三角矩陣

tril(A)

[V, D] = eig(A)

返回特征值,特征向量 (默認(rèn)顯示所有特征值和特征向量,特征值的順序是亂的)

eigs(A)1

2

3

4

5

6

7

8rng default;

A = rand(4);

[~,D2] = eigs(A,3,'lm'); %絕對值最大的3個特征值

[~,D3] = eigs(A,3,'sm'); %絕對值最小的3個特征值

[~,D4] = eigs(A,3,'lr'); %實部最大的3個特征值

[~,D4] = eigs(A,3,'sr'); %實部最小的3個特征值

[~,D4] = eigs(A,3,'li'); %虛部最大的3個特征值

[~,D4] = eigs(A,3,'si'); %虛部最小的3個特征值

poly(A)

返回方陣 A 的特征多項式!

[V, J] = jordan(A)

返回特征值,jordan標(biāo)準(zhǔn)形(等式左邊為一個返回值時,返回前面那一個,即特征值)

滿足 $V^{-1}AV=J$

[U, S, V] = svd(A)

奇異值分解,$S=U^*AV$

[L, U] = lu(A)

LU分解

[Q, R] = qr(A)

QR分解

求雅可比矩陣

jacobian(f, v) 求函數(shù)(向量) f 關(guān)于變量(向量)v 的雅可比矩陣 .

注意!這里的 f, v 一般不是一個變量,而是變量向量,示例如下:1

2syms x y z

jacobian([x*y*z, y^2, x + z], [x, y, z])

稀疏矩陣

生成n階單位稀疏矩陣

speye(n)

基于三元組表示法將大矩陣轉(zhuǎn)化為稀疏矩陣

B=sparse(A)

翻轉(zhuǎn)矩陣

上下翻轉(zhuǎn)(以中間行為鏡子,上下對應(yīng)的行交換位置)

flipud(A) (即flip up down)

左右翻轉(zhuǎn)(以中間列為鏡子,左右對應(yīng)的列交換位置)

fliplr(A) (即flip left right)

逆時針旋轉(zhuǎn) $90^o$的整數(shù)倍

rot(A, 2) 即旋轉(zhuǎn)兩個90°

方程(組)符號解

線性方程組可直接Ab

解線性方程組 AX=b

一般方程組:solve

solve(eqn_1,…eqn_k, x, y)

前面是符號表達(dá)式的方程(若為僅為表達(dá)式則默認(rèn)等于解Eqn=0),后面是希望解出來的變量

代碼示例:

解方程 $x^2+y^2=1,xy=2$1

2

3

4syms x y;%需要定義符號變量

eqn1 = x^2+y^2==1;

eqn2 = x*y==2;

[x,y] = solve(eqn1,eqn2,x,y);

兩種調(diào)用方式:solve(f == 1, x)

solve(f - 1, x)

多項式求根

求 $x^3+4x+5=0$ 的根:1

2

3

4

5

6

7

8p = [1,0,4,5];

R = roots(p);

%若需要求實根

syms x real

f = x^3+4*x+5;

R1 = solve(f);

%也可以

R_real = R(imag(R==0))

繪圖

逐點繪圖

meshgrid用途:生成一組配對的(x, y)點,供繪圖采樣用. (也可以生成三維點)

相當(dāng)于x軸方向劃幾條線,y軸方向畫幾條線,以交點為采樣點

例子:1[X,Y] = meshgrid(1:3,10:15);

X =

1 2 3

1 2 3

1 2 3

1 2 3

1 2 3

1 2 3

Y =

10 10 10

11 11 11

12 12 12

13 13 13

14 14 14

15 15 15

plot

符號繪圖

各種例子詳見第四課課件

ez 系列可以字符串繪圖也可以符號表達(dá)式繪圖;f 系列不支持字符串,只能符號表達(dá)式繪圖。

二維平面(符號)繪圖:ezplot, fplot, ezpolar

三維曲線(符號)繪圖:ezplot3

空間曲面(符號)繪圖:ezsurf(c), ezmesh(c), fsurf(c)。 加 ‘c’ 表示底面加等位線

fplot VS ezplot : fplot無bug;ezplot 可能有 bug。但是后者有自動title, 坐標(biāo)范圍會自動調(diào)整,前者默認(rèn)[-5,5]。

ezplot(y)

ezplot(f(x,y), [a, b], [c, d]) %隱函數(shù) $f(x,y)=0$

ezplot(x(t), y(t) , [a, b])

ezmesh , ezsurf, fsurf 大致相同,且都畫不了隱函數(shù)

ezmesh(z(x, y), [a, b, c, d])

ezmesh(z(x, y), [a, b]) 注意是 $x,yin[a,b]$

ezmesh(x(s, t), y(s, t), z(s, t))

plot3(x(t), y(t), z(t), ‘b-‘)

數(shù)值微分

diff輸入:一個 n 維列向量(即函數(shù)值的n個采樣點)

輸出:一個 n-1 維列向量(由于使用向前差分,所以得到的差值點的列向量中,少了最后那個點的導(dǎo)數(shù))

原理:向前差分。即 diff(y) 等價于 y(2:end) - y(1:end-1)

例子1

2

3

4

5d = pi/100; %選用的步長最好整除區(qū)間長度,否則最后那個點有點尷尬

x = 0:d:pi;

y = sin(x);

dx = diff(y);

dydx = dx/d; %得到導(dǎo)數(shù)值列向量

gradient輸入:與 diff 完全一樣

輸出:一個 n 維列向量(第一個點用向前差分,最后一個用向后差分,其余點用中心差分)

原理:中心差分。gradient(y) 等價于 $frac{ y(3:end) - y(1:end-2)}{2}$

例子1

2

3

4

5d = pi/100; %選用的步長最好整除區(qū)間長度,否則最后那個點有點尷尬

x = 0:d:pi;

y = sin(x);

dx = gradient(y);

dydx = dx/d; %得到導(dǎo)數(shù)值列向量

符號微分

diff

diff(f, v, n) 計算 f 關(guān)于 v 的n階導(dǎo)數(shù).

符號極限

limit(符號表達(dá)式,極限變量,極限值,’left’) : 左極限

數(shù)值求和

sum輸入:矩陣或行(列)向量

輸出:若輸入為行(列)向量,則輸出為向量元素之和;若輸入為矩陣,則輸出為各列求和得到的的行向量(sum(A, 1)),或各行求和得到的的列向量(sum(A, 2))

符號求和

symsumsymsum(符號表達(dá)式(求和通項),求和變量,下界,上界)

代碼示例:

計算 $Sigma_{k=0}^{n} a^kb^{n-k}$1

2

3

4syms a b n k;

x = a^n;

y = b^n;

s = symsum(subs(x,n,k)*subs(y,n,n-k),k,0,n);%經(jīng)常要結(jié)合subs使用

數(shù)值積分

常用方法及適用場景:梯形公式:

辛普森公式:

蒙特卡洛法:高維積分(概率算法,精度較低,但復(fù)雜度低)

trapz輸入:trapz(y) ,y 是函數(shù)值采樣點的行(列)向量;trapz(x, y),多加的 x 是對應(yīng) y 的自變量采樣點的向量

輸出:前者輸出$Sigma[ f(x_i)+f(x_{i+1}) ]$的結(jié)果(第一個和最后一個只加了一次);后者直接輸出積分結(jié)果

原理:梯形積分

代碼示例:1

2

3

4d = pi/1e5;

t = 0:d:pi; %1e5+1個采樣點

yt = t./sin(t).^3;

yt_int = trapz(t,y); % 或者trapz(y)*d

integral

integral (fun, xmin, xmax)1

2

3

4

5

6fx=@(x)exp(-abs(x)).*abs(sin(x));

a1=integral(f,-5.*pi,10.*pi,'RelTol',1e-6,'AbsTol',1e-9);%相對誤差為默認(rèn)的10^(-6)

a2=integral(f,-5.*pi,10.*pi,'RelTol',1e-8,'AbsTol',1e-9);%相對誤差為10^(-8)

a3=integral(f,-5.*pi,10.*pi,'RelTol',1e-10,'AbsTol',1e-9);%相對誤差為10^(-10)輸入:匿名函數(shù)句柄,積分下限及上限(支持廣義積分),(可選)相對誤差控制,絕對誤差控制

輸出:數(shù)值積分值

原理:商業(yè)機密,不可見

數(shù)值微分方程(差分方程)

符號微分方程

dsolve

計算定解問題 $xy^{‘’}-3y’=x^2, y(1)=y(5)=0 .$1

2

3

4syms y(x)

eqn = diff(y,x,2)*x-3*diff(y,x)==x^2;

cond = [y(1)==0,y(5)==0];

solu = dsolve(eqn,cond)

上面的例子中,eqn 也可以是一個方程組 [eq1, eq2, …]

三大變換

傅里葉變換fourier(f(t), t, s)

ifourier(F(s), s, t)

拉普拉斯變換

用法與傅里葉變換一致

Z變換Z變換定義:$F(z)=Sigma_{n=0}^{infin}f(n)z^{-n}$

Z變換的逆變換定義:$f(z)=int_Gamma F(z)z^{n-1}dz$

意義:描述了離散序列 f(n) 的復(fù)頻率域信息

用途:可以將差分方程轉(zhuǎn)化為代數(shù)方程(對應(yīng)于傅里葉,拉普拉斯變換將微分方程轉(zhuǎn)化為代數(shù)方程)

代碼示例:(Z變換求離散卷積)1

2

3

4

5

6syms a b n k w z

assume(a~=b);assumeAlso(a~=0);assumeAlso(b~=0);

%a 與 與 b 不為 0 的顯示更加簡練(其實 a 或 或 b 為 為 0 也應(yīng)該對的,這是 MATLAB 處理不到位)

X=ztrans(a^k,k,z);

H=ztrans(b^k,k,z);

w=iztrans(H*X,z,k);

Taylor展開

taylor( f ) :返回 f 在 0 點的 5 階麥克勞林展開。

taylor( f, x, a, ‘Order’, 10):返回 f 在 x = a 的 9 階 Taylor 展開 。

注意!需要先定義符號變量 syms

函數(shù)極值

fminbnd

[x, fval, exitflag] = fminbnd(fun, x1, x2)

功能:求一元函數(shù) fun 在區(qū)間[x1, x2] 內(nèi)的極小值

參數(shù):x 為極小值點;fval為極小值;exitflag>0 為找到極小值標(biāo)志

fminsearch

[x, fval, exitflag]=fminsearch(fun, x0)

功能:求多元函數(shù)從 x0 出發(fā)的局部極小值

注意!多元函數(shù)的輸入要用向量 x(1), x(2) 而不是 x, y,如以下代碼:1

2

3

4

5

6ff=@(x)(100*(x(2)-x(1)^2)^2+(1-x(1))^2);

% 函數(shù)句柄 ,@(x)的 x 為輸入的向量, 利用兩個元素分別進(jìn)行計算

syms x y,ezsurfc(ff([x1,x2]),[-2,2,-2,2]) % 將橫縱坐標(biāo)x1,x2 認(rèn)定為

ff 二維自定義變量,即可進(jìn)行surfc

x0=[-5,-2,2,5;-5,-2,2,5]; % 設(shè)立 4 種不同的搜索起點 ( 每一種為列向量

[sx,sfval,sexit,soutput]=fminsearch(ff,x0)

結(jié)果:1

2

3

4

5

6

7

8

9

10

11% 收斂到了四種不同的解 , 但僅有第一個x=1,y=1是正確的

sx = 0.99998 -0.68971 0.41507 8.0886

0.99997 -1.9168 4.9643 7.8004

%sfval 顯示所有極小值中最小的一個

sfval = 2.4112e-10

sexit = 1

soutput =

iterations: 384

funcCount: 615

algorithm: 'Nelder-Mead simplex direct search'

message: '優(yōu)化已終止:…’

fminunc

功能,用法與fminsearch 相同,效果通常好于后者

最速梯度下降法

【例】用梯度下降法求𝑓 𝑦,𝑧 = 100 𝑧 ? 𝑦 2 2 + 1 ? 𝑦 2 的極小值點1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20clear,clc

ff=@(x,y) (100*(y-x^2)^2+(1-x)^2);% 函數(shù)及其導(dǎo)數(shù)

dff =@(x,y) [2*x - 400*x*(- x^2 + y) - 2;- 200*x^2 + 200*y];

x0 = -5; y0 = -2; % 初始條件(可改變)

x_old = x0;y_old = y0;iter=0;

while(1)

iter = iter+1;

Grad = dff(x_old,y_old); % 梯度方向的獲得

lsf = @(lambda) ff(x_old-lambda*Grad(1),y_old-...

lambda*Grad(2)); % 生成對應(yīng)方向關(guān)于步長的一元函數(shù)

[lambda,~]=fminbnd(lsf,0,10);% 搜索最佳步長

x_new=x_old-lambda*Grad(1);

y_new=y_old-lambda*Grad(2);

if(abs(x_new-x_old)<1e-8 && abs(y_new-y_old)<1e-8)

break; % 當(dāng)x 與y 均保持穩(wěn)定時結(jié)束迭代

end

x_old = x_new;y_old = y_new;

end

iter,x_new,y_new

err = ff(x_new,y_new)-0

線性方程組

pcg(A,b,tol)

求解 AX=b,tol 是誤差 tolerance

(帶有簡單的病態(tài)預(yù)處理)

非線性方程(組)

fzero

[x, fval] = fzero(fun, x0)

以 x0 為初值尋找 fun 的一個零點;

注意 fun 必須是匿名函數(shù)或函數(shù)句柄!

fsolve

[x, fval] = fsolve(fun, x0)

fun 是函數(shù)向量,找函數(shù)向量 fun 的一個零點

概率統(tǒng)計

rng default

偽隨機。將隨機流恢復(fù)至 matlab 啟動時的默認(rèn)狀態(tài),即可以再現(xiàn)的隨機

rng shuffle

真隨機。將隨機流根據(jù)時間變量進(jìn)行設(shè)置,任何一次隨機均無法再現(xiàn),但可以確保測試結(jié)果可以與之前已有的測試結(jié)果進(jìn)行累加

rand, randn, randi

rand(m, n):生成 m*n 的均勻分布矩陣

randn(m, n):標(biāo)準(zhǔn)正態(tài)分布

randi( [min_int, max_int], m, n):[min_int, max_int]之間的整數(shù)均勻分布

binopdf, binocdf, binornd

normpdf, normcdf, normrnd

disttool

makedist1

2

3

4

5

6

7

8

9

10

11

12

13

14>> pd=makedist('Poisson',lambda)

>> pd =

PoissonDistribution

Poisson distribution

lambda = 2

>> pdf(pd,0:3)

ans =

0.1353 0.2707 0.2707 0.1804

mean

mean(A) 計算矩陣 A 各列均值與中位值,返回一個向量(若A 為向量則返回各分量平均值)

median

與 mean 用法相同

std, var

樣本標(biāo)準(zhǔn)差,樣本方差

cov

cov(X) 計算以矩陣各列組成的列向量的協(xié)方差矩陣

如:第(i, j) 個元素代表第 i 列 與 第 j 列這兩個列向量之間的協(xié)方差

corrcoef

corrcoef 計算以矩陣各列組成的列向量對應(yīng)的相關(guān)系數(shù)

如:第(i, j) 個元素代表第 i 列 與 第 j 列這兩個列向量之間的相關(guān)系數(shù)

多項式擬合

polyfit

p = ployfit(x, y, n)

x, y 為維數(shù)相等的兩個向量(對應(yīng)的一組坐標(biāo));n 為設(shè)定的擬合階數(shù)

返回多項式系數(shù)向量代碼示例1

2

3

4

5

6

7x0=0:0.1:1; %11 點均勻采樣

y0=[-.447,1.978,3.11,5.25,5.02,4.66,4.01,4.58,3.45,5.35,9.22];

n=3;P=polyfit(x0,y0,n) %3 次采樣 , 共4 個系數(shù) , 從高次到低次

P = 56.6915 -87.1174 40.0070 -0.9043

xx=0:0.01:1;yy=polyval(P,xx);

plot(xx,yy,'-b',x0,y0,'.r','MarkerSize',20)

legend(' 擬合曲線',' 原始數(shù)據(jù)','Location','SouthEast'),xlabel('x')

polyval

y1 = polyval(p, x0)

將向量 x0 代入多項式 p 中得到一組擬合 y 值 (向量)1

2

3

4

5

6

7y1 = polyval(P,x0); % 觀察11 個采樣點的擬合值

disp([' 平方逼近誤差為',num2str(norm(y1-y0,2))])

平方逼近誤差為1.8653

disp([' 一致逼近誤差為',num2str(norm(y1-y0,inf))])

一致逼近誤差為0.95592

T=table(x0',y0',y1',y1'-y0',...

'VariableNames',{'X', 'Y', 'Fit', 'FitError'})%

結(jié)果:1

2

3

4

5

6

7

8

9

10

11

12

13

14T =

X Y Fit FitError

___ ______ ________ _________

0 -0.447 -0.90431 -0.45731

0.1 1.978 2.2819 0.3039

0.2 3.11 4.0659 0.95592

0.3 5.25 4.7879 -0.46211

0.4 5.02 4.788 -0.23204

0.5 4.66 4.4063 -0.25372

0.6 4.01 3.983 -0.027002

0.7 4.58 3.8583 -0.72174

0.8 3.45 4.3722 0.92223

0.9 5.35 5.865 0.51503

1 9.22 8.6768 -0.54316

最小二乘法擬合及其變種

嶺回歸

表達(dá)式:2 - 范數(shù) 衡量誤差,2 - 范數(shù) 衡量系數(shù)稀疏性

LASSO

表達(dá)式:2 - 范數(shù) 衡量誤差,1 - 范數(shù) 衡量系數(shù)稀疏性

適用:擬合時考慮系數(shù)的稀疏性(即盡量多的絕對值小的系數(shù))

LAR(最小絕對殘差)

表達(dá)式:1 - 范數(shù)衡量誤差

適用:對離群值的處理較好(公交車站)

cftool(matlab自帶擬合工具箱)的使用

weight

是一個向量,給誤差加權(quán)

最小化目標(biāo)變成 min||W(AX - b)||1

2Weight=ones(1,11);

Weight(5)=100;%使樣本數(shù)據(jù)中的第五個點幾乎無誤差

數(shù)字信號處理信號的數(shù)字化需要3個步驟:抽樣,量化,編碼

噪聲:信號傳輸目標(biāo)認(rèn)定為無效或干擾的部分

信噪比(SNR):SNR 即 “signal to noise ratio” ,顧名思義,就是信號與噪聲的比值: $10cdot log_{10}frac{Sigma f^2(x)}{Sigma[y-f(x)]^2}$。是衡量去噪效果的一種尺度。 matlab 函數(shù)為:snr(signal, noise)

去噪方法:(根據(jù)什么選擇方法?1.噪聲類型和強度;2. 目標(biāo)函數(shù)(真實信號值))

smooth

f1 = smooth(y)

對離散信號向量 y 使用均值濾波得到向量 f1 ,默認(rèn)為五點均值濾波

conv

f1 = conv(y, [權(quán)值向量], ‘same’)

權(quán)值向量的維度是多少,就是多少點的均值濾波

二維曲線與圖

area(Y)1

2

3

4

5

6Y = [1, 5, 3;

3, 2, 7;

1, 5, 3;

2, 6, 1];

figure

area(Y)

把矩陣 Y 的每一列看成一條線,畫 3 條折線(橫坐標(biāo)為 1,2 3 4 )

效果:

plot

axis on :使用軸背景

axis off :取消軸背景

axis equal:橫縱軸采用等長刻度

axis square:調(diào)整 x, y軸刻度使得圖示接近正方形

axis image:橫縱等長刻度且坐標(biāo)軸框貼緊畫出來的線

axis tight:把 x, y 范圍直接設(shè)為坐標(biāo)范圍

xlabel(’期末成績’)

xticks:

xtickslabel(‘Score’)

text(x, y, ‘壓力老大爺’)

fontname{Roman}

fontsize{4}

approx

partial

plotyy1

2

3

4

5

6

7

8

9

10

11

12

13x = 0:0.01:20;

y1 = 200*exp(-0.05*x).*sin(x);

y2 = 0.8*exp(-0.5*x).*sin(10*x);

figure % new figure

[hAx,hLine1,hLine2] = plotyy(x,y1,x,y2);

%圖柄,后面設(shè)置y坐標(biāo)名字要用

title('Multiple Decay Rates')

xlabel('Time (musec)')

ylabel(hAx(1),'Slow Decay') % left y-axis

ylabel(hAx(2),'Fast Decay') % right y-axis

傅里葉變換

連續(xù)傅里葉變換

離散傅里葉變換

定義:

”低頻系數(shù)“:Y(1)

”高頻系數(shù)“:除了Y(1)之外的所有值(Y(2), Y(3),……)

fft(X)

ifft(Y)

去噪方法:保留大于閾值的系數(shù),砍掉小于閾值的系數(shù)

效果:傅里葉變換對于三角函數(shù)去噪效果極佳,因為三角函數(shù)在此

變換系數(shù)滿足完美稀疏,對于分片光滑函數(shù)效果則一般,根據(jù) 目標(biāo)函數(shù)特性 選擇 合適變換及約束(正則化)方法 很關(guān)鍵

聲音信號

audioinfo

[y, Fs] = audioread

y是聲音的數(shù)字信號,兩列分別為左右聲道

Fs 是采樣率(44100個連在一起的離散信號構(gòu)成了一秒的聲音)

sound(y, Fs)

按采樣率 Fs 播放 y

audiowrite(‘Drown.flac’, y, Fs)

將聲音寫入文件

多項式表示與運算

多項式表示為向量(系數(shù)降冪 排列)

conv(a,b)1

2N = conv([3 0 1],[1 0 3 1]);

D = conv([2 3],[2 0 3]);

[Q,r] = deconv(N,D)1[Q, r] = deconv(N,D) %計算 N%D 的帶余除法,即N=QD+r

回代驗證誤差:易錯!因為 余式 維數(shù)不確定!1

2

3

4

5m = length(r);

N1 = conv(Q, D);

N1(end - m + 1 : end) = N1(end - m + 1 : end) + r;

norm(N1 - N) % 絕對誤差

norm(N1 - N)/norm(N) %相對誤差

roots(f)

返回多項式 f(x)的零點向量

poly(r)

輸入:零點向量[x1, x2, … ,xn]

輸出:多項式(x-x1)(x-x2)…(x-xn)

polyval(p, X)

與前面向量類似,將矩陣 X 中的每個值代進(jìn)去 多項式 p 中,輸出相同大小的矩陣(p($x_{ij}$))

polyvalm(p, X)

即polyval matrix

矩陣多項式(如 ODE 基解矩陣)

poly2str(p, ‘x’)1

2q = [2 2 3]

poly2str(q,'s')

胞元矩陣

一言以蔽之,就是元素可以是不同類型的矩陣。如:1

2

3

4

5

6clear

C_str='例 這是胞元數(shù)組創(chuàng)建算例 1'; %

R=reshape(1:9,3,3);

Cn=[1+2i];

syms t, S_sym=sin(-3*t)*exp(-t);

B{1,1}=C_str; B{1,2}=R;B{2,1}=Cn;B{2,2}=S_sym;%四個元素類型不同

兩種援引元素的方式:B(1, 2)援引元素類型

B{1, 2}援引元素內(nèi)容(即元素本身)

如:1

2

3

4

5a = B(1,2)

class(a)

輸出:a = [3*3 double]

ans = cell1

2

3

4

5

6

7b = B{1,2}

class(b)

輸出:b = 1 4 7

2 5 8

3 6 9

ans = double

應(yīng)用實例:

注意給胞元賦值時是:A(2,1) = {‘David’} 或 A{2,1} = ‘David’1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20clear;

%滿分(100) ,優(yōu)秀(90-99) ,良好(80-89) ,及格(60-79) ,不及格(<60)

for k=1:10

a(k)={89+k};b(k)={79+k};c(k)={69+k};d(k)={59+k};% 每個胞元是數(shù)

end;

c=[d,c];%60~69 與70~79 歸為同一類

% 輸入學(xué)生的名字和分?jǐn)?shù)

A=cell(3,5); %A 也定義成胞元數(shù)組

A(1,:)={'Jack','Marry','Peter','Rose','Tom'};

A(2,:)={72,83,56,94,100};

% 根據(jù)學(xué)生的分?jǐn)?shù) , 求出相應(yīng)的等級 。

for k=1:5

switch A{2,k} % 對A{2,k} 進(jìn)行判斷

case 100,r=' 滿分';

case a,r=' 優(yōu)秀'; % 若A{2,k} 出現(xiàn)在胞元數(shù)組a 中 , 即介于90 和99 之間

case b,r=' 良好';

case c,r=' 及格';

otherwise,r=' 不及格';% 其余情況 , 結(jié)果字符串r 為’ 不及格’

end

A(3,k)={r}; % 將胞元數(shù)組A

小技巧

如何避免代入pi 時出現(xiàn)莫名其妙的大分?jǐn)?shù)?用 sym(pi) ,且越靠里越好!1

2a = sym(1/pi);

b = 1/sym(pi);

運行結(jié)果:

a = 5734161139222659/18014398509481984;

b = 1/pi .

mod與rem

都是返回整除余數(shù),但符號mod看除數(shù)rem看被除數(shù)1

2mod(-2,3) = 1; rem(-2,3) = -2

mod(3,-2) =

命令窗備忘clf(clear figure):清楚圖形窗口

clc(clear command):清楚指令窗中顯示內(nèi)容

clear:清楚 matlab 工作空間中保存的變量

doc:在 matlab瀏覽器中顯示幫助信息

edit:打開 M文件編輯器

help:在指令窗中顯示幫助信息

close all :關(guān)閉所有彈出窗口

helpwin :在彈出窗口中顯示幫助信息

format short:通常保證小數(shù)點后4位有效,最多不超過7位。對于大于1000的實數(shù)用5位有效數(shù)字科學(xué)計數(shù)法顯示

format long:小數(shù)點后15位有效數(shù)字表示

format short e:5位科學(xué)計數(shù)法表示

format long e:16為科學(xué)計數(shù)法表示

format long g:從 format long 和format long e 中自動選擇最佳

format rat:近似有理數(shù)表示

format hex :十六進(jìn)制表示

whos:顯示所有內(nèi)存變量類別

isa(a, ‘sym’):判斷變量類型

digits:顯示當(dāng)前vpa命令的截斷位數(shù)(用于規(guī)定運算精度)

digits(n):設(shè)置vpa 命令的截斷位數(shù)為n

vpa(運算表達(dá)式):對其中的每一個運算都控制精度,并非只控制結(jié)果

總結(jié)

以上是生活随笔為你收集整理的c语言fmin最小公倍数,matlab小函数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。