久久精品国产亚洲高清|精品日韩中文乱码在线|亚洲va中文字幕无码久|伊人久久综合狼伊人久久|亚洲不卡av不卡一区二区|精品久久久久久久蜜臀AV|国产精品19久久久久久不卡|国产男女猛烈视频在线观看麻豆

    1. <style id="76ofp"></style>

      <style id="76ofp"></style>
      <rt id="76ofp"></rt>
      <form id="76ofp"><optgroup id="76ofp"></optgroup></form>
      1. 千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

        手機(jī)站
        千鋒教育

        千鋒學(xué)習(xí)站 | 隨時(shí)隨地免費(fèi)學(xué)

        千鋒教育

        掃一掃進(jìn)入千鋒手機(jī)站

        領(lǐng)取全套視頻
        千鋒教育

        關(guān)注千鋒學(xué)習(xí)站小程序
        隨時(shí)隨地免費(fèi)學(xué)習(xí)課程

        當(dāng)前位置:首頁  >  技術(shù)干貨  > 了解odeset函數(shù)

        了解odeset函數(shù)

        來源:千鋒教育
        發(fā)布人:xqq
        時(shí)間: 2023-11-20 20:01:50 1700481710

        一、odeset函數(shù)

        Matlab的ode求解器是用于解決常微分方程組(ODE)的函數(shù)。odeset函數(shù)可以使用戶控制其中大多數(shù)選項(xiàng)的值。這個(gè)函數(shù)返回一個(gè)structure。Odset結(jié)構(gòu)體可以在ODE求解器中作為參數(shù)使用。ODE求解器采用Odset中指定的選項(xiàng)的值。用法如下:

        options = odeset('Name1',value1,'Name2',value2,...)

        options就是返回的structure,Name1,value1等為其可選項(xiàng)與值。

        如下的代碼段,指定sine函數(shù)的初值問題求解器ode15s的舍入誤差容忍值為1e-3,絕對誤差容忍度為1e-6,并繪制結(jié)果:

        tspan = [0,10]; 
        y0 = 0; 
        options = odeset('RelTol',1e-3, 'AbsTol', 1e-6); 
        [t,y] = ode15s(@(t,y) sin(t),tspan,y0,options); 
        plot(t,y)

        二、odeset控制步長

        在ODE的數(shù)值解法中,步長是決定數(shù)值穩(wěn)定性和解的精度的因素之一。ODE求解器用絕對誤差、相對誤差和幾個(gè)事件等條件進(jìn)行調(diào)整。設(shè)步長和狀態(tài)的修改發(fā)生在離散塊中的固定時(shí)刻;當(dāng)狀態(tài)改變時(shí)調(diào)用事件函數(shù)。ODE求解器使用odeset函數(shù)返回的選項(xiàng)結(jié)構(gòu)來設(shè)置絕對和相對誤差容忍度、與事件相關(guān)的參數(shù)等值。下面的代碼演示使用options參數(shù)重式調(diào)整求解器ode45的默認(rèn)步長:

        tspan = [0,10]; 
        y0 = [1,0]; 
        options = odeset('RelTol', 1e-6, 'AbsTol',1e-10,'MaxStep',0.1); 
        [t,y] = ode45(@odefcn,tspan,y0,options); 
        
        function dydt = odefcn(t,y) 
        dydt = [y(2); -y(1)]; 
        end

        MaxStep選項(xiàng)是指定最大步長,ode45設(shè)置的默認(rèn)步長為0.1左右。

        三、odeset中的reltol

        相對最大誤差范圍,定義為 abs(當(dāng)前步長計(jì)算的值-olsolve函數(shù)返回的值) / max(atol,abs(當(dāng)前計(jì)算的值)* reltol)。定下來的認(rèn)識是在與客觀測量數(shù)據(jù)進(jìn)行比較時(shí),如果求解器成功誤差要小于設(shè)定的容忍范圍,否則算法就繼續(xù)迭代并重新計(jì)算相應(yīng)的步長 在線性求解器中,誤差通常按照量表T,解向量Y和時(shí)間變量T進(jìn)行測量,通過向量來測量誤差。ODE45中reltol默認(rèn)值是1e-3:

        tspan [0,30]; 
        y0 = [2 0]; 
        options = odeset('RelTol',1e-2); 
        [t,y] = ode45(@odefcn,tspan,y0,options); 
        
        function dydt = odefcn(t,y) 
        dydt = [y(2); -y(1)]; 
        end

        四、ode to,odeset兩個(gè)events耦合怎么寫

        如果您要在多個(gè)例程中使用odeset選項(xiàng),則可以創(chuàng)建一個(gè)options結(jié)構(gòu),然后將它傳遞給每個(gè)例程:

        options = odeset('RelTol',1e-3); 
        [t1,y1] = ode45(@odefcn,tspan,y0,options); 
        [t2,y2] = ode23(@odefcn,tspan,y0,options);

        它可以幫助改變相同的相對誤差,即盡管它的默認(rèn)值不同。在ODE求解器中支持事件函數(shù)(式)。您可以在特定的時(shí)間進(jìn)入或離開事件。每次輸入事件函數(shù)時(shí),必須告訴ODE求解器是否計(jì)算相應(yīng)的事件。 如果計(jì)算相應(yīng)的事件,則必須提供一個(gè)組成向量的事件結(jié)果和指示哪個(gè)事件被觸發(fā)的事件檢測向量。最后,您必須告訴ODE求解器下一個(gè)時(shí)間段的結(jié)束時(shí)間。下面的示例展示了如何使用“ode23”甚至偶數(shù)次方運(yùn)行情況:

        tspan = [0 10]; 
        y0 = 1; 
        [D,c] = ode23(@ode1,tspan,y0,odeset('events',@ode2)); 
        plot(D,c),xlabel('Time'),ylabel('Solution') 
        
        function dy = ode1(t,y) 
        dy = y; 
        end 
        
        function [value,isterminal,direction] = ode2(t,y) 
        value = mod(t,2) == 0;     % 奇數(shù)次方 
        isterminal = false;   %不終止迭代器 
        direction = 0;    % 無方位可指定 
        end 

        五、odeset matlab

        對于不同的求解器和問題,ODE求解器有很多選項(xiàng)設(shè)置。在控制求解器行為方面,odeset函數(shù)是個(gè)非常重要的函數(shù)。Matlab函數(shù)庫提供的ode45、ode23、ode113、ode15s等都適用odeset函數(shù),它們都包含多個(gè)選項(xiàng)和值。以下是一個(gè)示例,其中設(shè)定求解器ode45的初始步長為0.01,傭金步長為0.1,相對容錯(cuò)為1e-6的絕對容錯(cuò)為1e-10:

        tspan = [0,10]; 
        y0 = [2,2]; 
        options = odeset('IntialStep',0.01,'MaxStep',0.1,'RelTol',1e-6,'AbsTol',1e-10); 
        [t,y] = ode45(@(t,y) [y(2) ; -y(1)],tspan,y0,options); 
        plot(t,y(:,1))

        六、ode to you

        ODE(Ordinary Differential Equation)是指普路伐斯微分方程,大學(xué)數(shù)學(xué)中的常微分方程概念。數(shù)學(xué)家們對ODE這個(gè)領(lǐng)域做了很多研究,除了很多解析方法,還有很多數(shù)值求解器。比如一些經(jīng)典的方法:歐拉法、改進(jìn)歐拉法、龍格庫塔法(RK)等,它們都能幫助我們求解ODE問題,但是數(shù)值精度和時(shí)間效率不同。ode45函數(shù)是在所有數(shù)值求解器中精度和時(shí)間效率均衡的算法。因此,ode45是求解ODE問題的函數(shù),類似的函數(shù)還有:ode15s、ode23、ode23tb、ode113等。

        七、ode to joy

        在ODE求解器中,ode45函數(shù)用于求解常微分方程組,下面是一個(gè)關(guān)于ode45函數(shù)求解簡單雙擺的例子:

        %簡單雙擺
        
        tspan=[0,70];  % 時(shí)間范圍 
        y0=[0,pi/2,pi/2,0]; %初值 
        
        [t,y] = ode45(@fxy,tspan,y0);  % 返回時(shí)間刻度“t”和值“y”
        
        %繪制紅色線條
        
        line([0 2*sin(y(1,1))],[0 -2*cos(y(1,1))],'color','r') %擺錘1 
        hold on 
        
        line([2*sin(y(1,1)) 2*sin(y(1,1))+2*sin(y(1,2))],[-2*cos(y(1,1)) -2*cos(y(1,1))-2*cos(y(1,2))],'color','r') %擺錘2 
        axis([-3 3 -3 3]); % 繪圖區(qū)間 
        whitebg('w');  % 背景顏色 
        box('on')  % 繪制邊界 
        title('Double Pendulum')  % 標(biāo)題 
        xlabel('x (m)')  % x軸標(biāo)簽 
        ylabel('y (m)')  % y軸標(biāo)簽 
        
        % 第一列與第三列
        
        function dy = fxy(t,y)
        
         g=9.8;  % 重力加速度 
         l = 2;  % 擺桿長
         dy=zeros(4,1);
         dy(1)=y(2); 
         dy(2)=(-g*2*sin(y(1))-2*sin(y(1)-y(3))*((y(4)^2)+(y(2)^2)*cos(y(1)-y(3))))/(2-l*cos(y(1)-y(3))^2); 
         dy(3)=y(4); 
         dy(4)=(2*sin(y(1)-y(3)))*((y(2)^2)+(2*g*cos(y(1))) +(y(4)^2)*cos(y(1)-y(3)))/(2-l*cos(y(1)-y(3))^2); 

        八、ode to a nightingale

        Matlab的ode求解器是用于解決常微分方程組(ODE)的函數(shù),odeset函數(shù)可以使用戶控制選項(xiàng)的值。ode生態(tài)系統(tǒng)中有一個(gè)很大的工具箱,可以輕松解決大多數(shù)的ODE問題。ond45是其中一種求解器,能夠順利解決大多數(shù)的知名ODE問題。

        以下是ode45函數(shù)的代碼實(shí)現(xiàn):

        tspan = [0,10]; %時(shí)間范圍 
        y0 = [1, 0]; % 初值 
        options = odeset('RelTol',1e-4,'AbsTol',[1e-4 1e-5]); %選項(xiàng) 
        [t,y] = ode45(@model,tspan,y0,options); % 函數(shù)調(diào)用 
        
        function dydt = model(t,y) 
        dydt = zeros(2,1); 
        dydt(1) = y(2); 
        dydt(2) = -4*y(1) - 2*y(2); 
        end 
        
        plot(t,y(:,1)) 

        tags: 刪除npm
        聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
        10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
        請您保持通訊暢通,專屬學(xué)習(xí)老師24小時(shí)內(nèi)將與您1V1溝通
        免費(fèi)領(lǐng)取
        今日已有369人領(lǐng)取成功
        劉同學(xué) 138****2860 剛剛成功領(lǐng)取
        王同學(xué) 131****2015 剛剛成功領(lǐng)取
        張同學(xué) 133****4652 剛剛成功領(lǐng)取
        李同學(xué) 135****8607 剛剛成功領(lǐng)取
        楊同學(xué) 132****5667 剛剛成功領(lǐng)取
        岳同學(xué) 134****6652 剛剛成功領(lǐng)取
        梁同學(xué) 157****2950 剛剛成功領(lǐng)取
        劉同學(xué) 189****1015 剛剛成功領(lǐng)取
        張同學(xué) 155****4678 剛剛成功領(lǐng)取
        鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
        董同學(xué) 138****2867 剛剛成功領(lǐng)取
        周同學(xué) 136****3602 剛剛成功領(lǐng)取

        上一篇

        C# URL編碼詳解

        下一篇

        data-index
        相關(guān)推薦HOT
        如东县| 邵阳市| 潼关县| 锡林郭勒盟| 寿阳县| 昌吉市| 鄄城县| 平凉市| 金山区| 鄂托克旗| 依兰县| 桐乡市| 梅州市| 和政县| 天全县| 沂源县| 定州市| 宣汉县| 定兴县| 阜南县| 霍州市| 囊谦县| 吉安市| 个旧市| 内丘县| 抚顺市| 长丰县| 太湖县| 宿松县| 会同县| 苍溪县| 绿春县| 玉田县| 明光市| 大庆市| 比如县| 柳州市| 乌什县| 鄂伦春自治旗| 九龙县| 遂溪县|