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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

台湾国立大学郭彦甫Matlab教程笔记(16) 数值微分 numerical differentiation

發布時間:2025/4/5 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 台湾国立大学郭彦甫Matlab教程笔记(16) 数值微分 numerical differentiation 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

臺灣國立大學郭彥甫Matlab教程筆記(16) 數值微分 numeric differentiation

復習:diff()函數用來計算vector前后 entry的差異

數值微分繼續

various step size 不同Δx大小

不同Δx大小,看近似值和真正函數值之間的差異大不大。

看題目,用不同的h值計算函數f(x)=sin(x)的導數,畫出圖形

The derivatives(導數) of f(x)=sin(x) calculated using various h values

codes:

g=colormap(lines);hold on; for i=1:4%為了給出不同的h值x=0:power(10,-i):pi;%power(10,-i)表示10的-i次方 y=sin(x); m=diff(y)./diff(x);%算是計算導數 plot(x(1:end-1),m,'color',g(i,:));%x(1:end-1)因為diff差值,vector維度少一 end hold off;set(gca,'xlim',[0,pi/2]);%設置x軸橫坐標范圍 set(gca,'ylim',[0,1.2]); set(gca,'xtick',0:pi/4:pi/2);%設置x軸坐標間隔 xticklabels({'0','\pi/4','\pi/2'});%顯示pi set(gca,'fontsize',18);%設置字體 h=legend('h=0.1','h=0.01','h=0.001','h=0.0001');%設置圖像名稱 set(h,'fontname','Times New Roman'); box on;%右上邊框顯示

代碼的解釋
colormap回顧:colormap輸入參數的用法

plot(x(1:end-1),m,‘color’,g(i,:));的解釋:
%x(1:end-1)因為diff差值,vector維度少一,所以需要end-1。這里color用的是g(i,:),由于g是colormap中的lines顏色圖,顏色圖是一個矩陣matrix,這里應該是二維的,g(i,:)取的是這個矩陣的第i行元素,我的理解是一個行向量,然后賦值給了color顯示出來。

運行結果:


作業題:
給定一個函數,用不同的h值計算近似導數


我的代碼:

g=colormap(lines);%顏色 hold on; %先來確定x的范圍: for i=1:3x=0:power(10,-i):2*pi;%不同的h 步長y=exp(-x).*sin(x.^2/2);%函數表達式需要點乘m=diff(y)./diff(x);%差分,求導plot(x(1:end-1),m,'color',g(i,:)); end hold off;%下面是一些設置 box on; set(gca,'fontsize',18); set(gca,'xlim',[0,2*pi]);%x軸范圍 set(gca,'ylim',[-0.3,0.3]);%y軸范圍 set(gca,'xtick',0:pi/2:2*pi);%刻度 xticklabels({'0','\pi/2','\pi','3\pi/2','2\pi'});%顯示刻度 legend('h=0.1','h=0.01','h=0.001');%函數標頭

有個問題:這個函數表達式是兩個函數相乘的形式,中間是用*還是用.*點乘?
實驗結果:
y=exp(-x).*sin(x^2/2);(錯誤)

計算這個表達式正確的形式

y=exp(-x).*sin(x.^2/2);

我的練習結果:


下一個題目是

二次和三次微分second and third derivatives

the second derivative f’’ and third derivative f’’’ can be obtained using similar approaches

舉例子:

例程代碼:

x=-2:0.005:2; y=x.^3; m=diff(y)./diff(x);%一次微分 m2=diff(m)./diff(x(1:end-1));%二次微分plot(x,y,x(1:end-1),m,x(1:end-2),m2);%作圖 xlabel('x','fontsize',18); ylabel('y','fontsize',18); legend('f(x)=x^3','f''(x)','f'''(x)',4);%函數標頭 set(gca,'fontsize',18);

【注意】每做一次微分,entry就少一個。

運行結果:

總結一下:
數值微分主要使用diff()函數。需要注意的是做一次微分,entry減少一,就是vector維度少一個。
一次微分:m=diff(y)./diff(x);%一次微分
二次微分:m2=diff(m)./diff(x(1:end-1));%二次微分

總結

以上是生活随笔為你收集整理的台湾国立大学郭彦甫Matlab教程笔记(16) 数值微分 numerical differentiation的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。