MATLAB拟合微分方程组

如何用数据拟合volterra模型参数和初值(如何拟合微分方程组)(MATLAB)

img


已知x,y,t的数据拟合abcdxoyo

参考一下这个代码,不一定对哈:

function dydt = volterra(t,y,a,b,c)
x = y(1);
y = y(2);
dxdt = x*(a-b*y);
dydt = y*(-c+dx);
dydt = [dxdt; dydt];
end
tspan = [0 10];
y0 = [1;1];
a = 2;
b = 1;
c = 3;
[t,y] = ode45(@(t,y) volterra(t,y,a,b,c), tspan, y0);
  • 这篇博客: 【数学建模】基于matlab GUI弱肉强食问题—Volterra 模型【含Matlab源码 1502期】中的 二、部分源代码 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • function varargout = main(varargin)
    % MAIN MATLAB code for main.fig
    %      MAIN, by itself, creates a new MAIN or raises the existing
    %      singleton*.
    %
    %      H = MAIN returns the handle to a new MAIN or the handle to
    %      the existing singleton*.
    %
    %      MAIN('CALLBACK',hObject,eventData,handles,...) calls the local
    %      function named CALLBACK in MAIN.M with the given input arguments.
    %
    %      MAIN('Property','Value',...) creates a new MAIN or raises the
    %      existing singleton*.  Starting from the left, property value pairs are
    %      applied to the GUI before main_OpeningFcn gets called.  An
    %      unrecognized property name or invalid value makes property application
    %      stop.  All inputs are passed to main_OpeningFcn via varargin.
    %
    %      *See GUI Options on GUIDE's Tools menu.  Choose "GUI allows only one
    %      instance to run (singleton)".
    %
    % See also: GUIDE, GUIDATA, GUIHANDLES
    
    % Edit the above text to modify the response to help main
    
    % Last Modified by GUIDE v2.5 27-Oct-2021 15:55:05
    
    % Begin initialization code - DO NOT EDIT
    gui_Singleton = 1;
    gui_State = struct('gui_Name',       mfilename, ...
                       'gui_Singleton',  gui_Singleton, ...
                       'gui_OpeningFcn', @main_OpeningFcn, ...
                       'gui_OutputFcn',  @main_OutputFcn, ...
                       'gui_LayoutFcn',  [] , ...
                       'gui_Callback',   []);
    if nargin && ischar(varargin{1})
        gui_State.gui_Callback = str2func(varargin{1});
    end
    
    if nargout
        [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
    else
        gui_mainfcn(gui_State, varargin{:});
    end
    % End initialization code - DO NOT EDIT
    
    
    % --- Executes just before main is made visible.
    function main_OpeningFcn(hObject, ~, handles, varargin)
    % This function has no output args, see OutputFcn.
    % hObject    handle to figure
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
    % varargin   command line arguments to main (see VARARGIN)
    
    % Choose default command line output for main
    handles.output = hObject;
    
    % Update handles structure
    guidata(hObject, handles);
    
    % UIWAIT makes main wait for user response (see UIRESUME)
    % uiwait(handles.figure1);
    
    % ha = axes('units','normalized','pos',[0 0 1 1]);
    % uistack(ha,'down');
    % img = imread('ly.jpg');
    % image(img);
    % colormap gray
    % set(ha,'handlevisibility','off','visible','off');
    % axis off
    
    %建立对话框标题
    set(handles.figure1, 'name', '模型仿真系统参数设定&模式选择');
    %set(handles.figure1, 'color', [0, 200, 100]/255);
    set(handles.figure1, 'units', 'normalized');
    set(handles.figure1, 'position', [0.2, 0.2, 0.6, 0.6]);
    
    % --- Outputs from this function are returned to the command line.
    function varargout = main_OutputFcn(hObject, eventdata, handles) 
    % varargout  cell array for returning output args (see VARARGOUT);
    % hObject    handle to figure
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
    
    % Get default command line output from handles structure
    varargout{1} = handles.output;
    
    
    
    function x1_0_Callback(hObject, eventdata, handles)
    % hObject    handle to x1_0 (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
    
    % Hints: get(hObject,'String') returns contents of x1_0 as text
    %        str2double(get(hObject,'String')) returns contents of x1_0 as a double
    
    
    % --- Executes during object creation, after setting all properties.
    function x1_0_CreateFcn(hObject, eventdata, handles)
    % hObject    handle to x1_0 (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    empty - handles not created until after all CreateFcns called
    
    % Hint: edit controls usually have a white background on Windows.
    %       See ISPC and COMPUTER.
    if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
        set(hObject,'BackgroundColor','white');
    end
    
    
    
    function x2_0_Callback(hObject, eventdata, handles)
    % hObject    handle to x2_0 (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
    
    % Hints: get(hObject,'String') returns contents of x2_0 as text
    %        str2double(get(hObject,'String')) returns contents of x2_0 as a double
    
    
    % --- Executes during object creation, after setting all properties.
    function x2_0_CreateFcn(hObject, eventdata, handles)
    % hObject    handle to x2_0 (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    empty - handles not created until after all CreateFcns called
    
    % Hint: edit controls usually have a white background on Windows.
    %       See ISPC and COMPUTER.
    if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
        set(hObject,'BackgroundColor','white');
    end
    
    
    
    function l1_Callback(hObject, eventdata, handles)
    % hObject    handle to l1 (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
    
    % Hints: get(hObject,'String') returns contents of l1 as text
    %        str2double(get(hObject,'String')) returns contents of l1 as a double
    
    
    % --- Executes during object creation, after setting all properties.
    function l1_CreateFcn(hObject, eventdata, handles)
    % hObject    handle to l1 (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    empty - handles not created until after all CreateFcns called
    
    % Hint: edit controls usually have a white background on Windows.
    %       See ISPC and COMPUTER.
    if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
        set(hObject,'BackgroundColor','white');
    end
    
    
    
    function r1_Callback(hObject, eventdata, handles)
    % hObject    handle to r1 (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
    
    % Hints: get(hObject,'String') returns contents of r1 as text
    %        str2double(get(hObject,'String')) returns contents of r1 as a double
    
    
    % --- Executes during object creation, after setting all properties.
    function r1_CreateFcn(hObject, eventdata, handles)
    % hObject    handle to r1 (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    empty - handles not created until after all CreateFcns called
    
    % Hint: edit controls usually have a white background on Windows.
    %       See ISPC and COMPUTER.
    if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
        set(hObject,'BackgroundColor','white');
    end
    
    
    
    function r2_Callback(hObject, eventdata, handles)
    % hObject    handle to r2 (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
    
    % Hints: get(hObject,'String') returns contents of r2 as text
    %        str2double(get(hObject,'String')) returns contents of r2 as a double
    
    
    % --- Executes during object creation, after setting all properties.
    function r2_CreateFcn(hObject, eventdata, handles)
    % hObject    handle to r2 (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    empty - handles not created until after all CreateFcns called
    
    % Hint: edit controls usually have a white background on Windows.
    %       See ISPC and COMPUTER.
    if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
        set(hObject,'BackgroundColor','white');
    end
    
    
    
    function l2_Callback(hObject, eventdata, handles)
    % hObject    handle to l2 (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
    
    % Hints: get(hObject,'String') returns contents of l2 as text
    %        str2double(get(hObject,'String')) returns contents of l2 as a double
    
    
    % --- Executes during object creation, after setting all properties.
    function l2_CreateFcn(hObject, eventdata, handles)
    % hObject    handle to l2 (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    empty - handles not created until after all CreateFcns called
    
    % Hint: edit controls usually have a white background on Windows.
    %       See ISPC and COMPUTER.
    if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
        set(hObject,'BackgroundColor','white');
    end