matlab數值很小出錯,求大神幫忙解決一下,用MATLAB求解動力學數據總是出錯~ - 計算模擬 - 小木蟲 - 學術 科研 互動社區...

CODE:

function KineticsEst5 % 動力學ODE方程模型的參數估計

%

%

%

% The variables y here are y(1)=xB, y(2)=xoNB, y(3)=xmNB,y(4)=xpNB,y(5)=xDNB .

clear all

clc

k0 = [5 5 5 5 5]; % 參數初值

lb = [0 0 0 0 0]; % 參數下限

ub = [+inf +inf +inf +inf +inf]; % 參數上限

x0 = [0 0 0 0 0 0];

KineticsData;

yexp = ExpData(:,2:6); % yexp: 實驗數據[x1 x4 x5 x6]

% 使用函數fmincon()進行參數估計

[k,fval,flag] = fmincon(@ObjFunc4Fmincon,k0,[],[],[],[],lb,ub,[],[],x0,yexp);

fprintf('\n使用函數fmincon()估計得到的參數值為:\n')

fprintf('\tk1 = %.4f\n',k(1))

fprintf('\tk2 = %.4f\n',k(2))

fprintf('\tk3 = %.4f\n',k(3))

fprintf('\tk4 = %.4f\n',k(4))

fprintf('\tk5 = %.4f\n',k(5))

fprintf(' The sum of the squares is: %.1e\n\n',fval)

k_fmincon = k;

% 使用函數lsqnonlin()進行參數估計

[k,resnorm,residual,exitflag,output,lambda,jacobian] = ...

lsqnonlin(@ObjFunc4LNL,k0,lb,ub,[],x0,yexp);

ci = nlparci(k,residual,jacobian);

fprintf('\n\n使用函數lsqnonlin()估計得到的參數值為:\n')

Output

% 以函數fmincon()估計得到的結果為初值,使用函數lsqnonlin()進行參數估計

k0 = k_fmincon;

[k,resnorm,residual,exitflag,output,lambda,jacobian] = ...

lsqnonlin(@ObjFunc4LNL,k0,lb,ub,[],x0,yexp);

ci = nlparci(k,residual,jacobian);

fprintf('\n\n以fmincon()的結果為初值,使用函數lsqnonlin()估計得到的參數值為:\n')

Output

% ------------------------------------------------------------------

function f = ObjFunc4Fmincon(k,x0,yexp)

tspan = [0.00 : 5.03 : 15.09];

[t x] = ode45(@KineticEqs,tspan,x0,[],k);

y(:,1) = x(:,1);

y(:,2:4) = x(:,4:6);

f = sum((y(:,1)-yexp(:,1)).^2) + sum((y(:,2)-yexp(:,2)).^2) ...

+ sum((y(:,3)-yexp(:,3)).^2) + sum((y(:,4)-yexp(:,4)).^2);

% ------------------------------------------------------------------

function f = ObjFunc4LNL(k,x0,yexp)

tspan = [0.00 : 5.03 : 15.09];

[t x] = ode45(@KineticEqs,tspan,x0,[],k);

y(:,1) = x(:,1);

y(:,2:4) = x(:,4:6);

f1 = y(:,1) - yexp(:,1);

f2 = y(:,2) - yexp(:,2);

f3 = y(:,3) - yexp(:,3);

f4 = y(:,4) - yexp(:,4);

f = [f1; f2; f3; f4];

% ------------------------------------------------------------------

function dxdt = KineticEqs(t,x,k)

M=1.003;

dxdt = ...

[ ( (k(1)+k(2)+k(3))*(1-x(1))*M*(1-x(2)-x(3)-x(4)-2*x(5)) )

( M*(1-x(2)-x(3)-x(4)-2*x(5))*(k(1)*(1-x(1))-k(4)*x(2)) )

( k(2)*(1-x(1))*M*(1-x(2)-x(3)-x(4)-2*x(5)) )

( M*(1-x(2)-x(3)-x(4)-2*x(5))*(k(3)*(1-x(1))-k(5)*x(4)) )

( M*(1-x(2)-x(3)-x(4)-2*x(5))*(k(4)*x(2)+k(5)*x(4)) )

];

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/459026.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/459026.shtml
英文地址,請注明出處:http://en.pswp.cn/news/459026.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

iOS開發--驗證碼

第一步,拖兩個空間textfiled和button到storyboard上的viewcontroller上。 第二步,拖線,鏈接到.h文件中代碼如下: 1property (weak, nonatomic) IBOutlet UIButton *l_timeButton;第三步,在,m文件中為l_timeButton設置監…

Standard C Episode 8

C語言函數和程序結構 通過函數可以把大的計算任務分解成若干個較小任務,從而使得思路更加清晰,同時函數也大大提高了代碼的復用率,提高了工作效率。要注意的是多函數之間應該盡可能地高聚合低耦合。另一方面,一個程序可以保存在一…

C# Socket 編程詳解

Microsoft.Net Framework為應用程序訪問Internet提供了分層的、可擴展的以及受管轄的網絡服務,其名字空間System.Net和 System.Net.Sockets包含豐富的類可以開發多種網絡應用程序。.Net類采用的分層結構允許應用程序在不同的控制級別上訪問網絡,開發人員…

java 線程池 wait,Java 多線程 之 wait等待 線程實例

package com.wait.notify;/**題目: 人們在火車站的售票窗口排隊買火車票1. 北京西站開門2. 打開售票窗口3. 北京西站有10張去長沙的票4. 打開2個售票窗口,5 假設每個售票窗口每隔1秒鐘買完一張票1. 根據 名詞 找類人們(Person), 火車站(Station),火車票(Ticket) , 售票窗口e 是…

002 exercises

求列表全排列lst [1,2,3] l1 [(x,y,z) for x in lst for y in lst for z in lst if x ! y if y ! z if x ! z] print(l1)給定一個非負整數num,重復的加每一位,直到最后只剩下一位例如: num 38,計算過程如下:3 8 111 1 2最后輸出結果為2#遞歸 def add(num):if len(str(num…

(線段樹 點更新 區間求和)lightoj1112

鏈接: http://acm.hust.edu.cn/vjudge/contest/view.action?cid88230#problem/D (密碼0817) Description Robin Hood likes to loot rich people since he helps the poor people with this money. Instead of keeping all the money togeth…

TCP/ip通信模式

TCP/IP 應用層與應用程序*************************************************** 更多精彩,歡迎進入:http://shop115376623.taobao.com *************************************************** 文檔出處:http://blog.csdn.net/bingxx11/article…

PHP中判斷空的方法,php中類型判斷和NULL,空值檢查的方法

在一些接口和數據庫的設計中。數據庫的非必填字段可能為null或者為空。這個時候接口前端javascript去判斷的時候就會比較麻煩。為了便于統一的判斷。一律把null和 空裝換成 空.這樣前端的判斷就變得簡潔 if(aa ){........}建議使用 或者 來判斷。。以下是我簡短的一個把數據…

8 Regular Expressions You Should Know

2019獨角獸企業重金招聘Python工程師標準>>> Regular expressions are a language of their own. When you learn a new programming language, theyre this little sub-language that makes no sense at first glance. Many times you have to read another tutori…

poj 3278 catch that cow BFS(基礎水)

Catch That CowTime Limit: 2000MS Memory Limit: 65536KTotal Submissions: 61826 Accepted: 19329Description Farmer John has been informed of the location of a fugitive cow and wants to catch her immediately. He starts at a point N (0 ≤ N ≤ 100,000) on a num…

制作已編譯的html幫助文件

http://www.cnblogs.com/cm186man/archive/2008/03/10/1098896.html引用 HTML幫助文檔從結構上來看可分為兩個部分,運行器和文檔內容。它的一個好處是能使幫助文檔跨平臺運行,只要有不同平臺上的運行器和瀏覽器,幫助文檔不再需要重新編制&…

matlab %3c handle,volume browser (updated).htm 源代碼在線查看 - Matlab顯式三維地震數據的源代碼 資源下載 蟲蟲電子下載站...

Comments: any comments on this error:??? Error using > timesIntegers can only be combined with integers of the same class, or scalar doubles.Error in > interp3>linear at 368 F (( arg4(ndx).*(1-t) arg4(ndx1).*t ).*(1-s) ...Error in > inter…

PHPer轉戰Android的學習過程以及Android學習

原文作者: eoeadmin原文地址: http://my.eoe.cn/shuhai/archive/19684.html--------------------------------------------這篇文章主要寫了一個PHP程序猿是如何轉戰學習Android的。 第一步:直接跨過java的學習,原因有我之前看過畢…

SQL中實現截取字符串的函數

SQL中實現截取字符串的函數 如果想實現從數據庫中取數據時截取一個字段下的內容或者截取一串字符串,則能夠實現這種效果的函數有Left,Right,SubString三個函數。1.Left函數:Left(character_expression , integer_expre…

php時區設置問題,PHP 的時區設置問題_PHP教程

裝上PHP5后你會發現這樣的問題:你也許會發現,輸出的時間和你現在的時間是不相同的。原因是假如你不在程序或配置文件中設置你的服務器當地時區的話,PHP所取的時間是格林威治標準時間,所以和你當地的時間會有出入。格林威治標準時間…

HDU 5392 BC #51

就是求最大公倍數&#xff0c;但要用分解質因子求。 自己寫的WA到爆。。。。 #include<iostream> #include<stdio.h> #include<math.h>#include<algorithm>using namespace std;#define rd(x) scanf("%d",&x) #define rd2(x,y) scanf(&q…

下拉框——把一個select框中選中內容移到另一個select框中遇到的問題

在使用jQuery實現把一個select框中選中內容移到另一個select框中功能時遇到了一個問題&#xff0c;就是點擊按鈕時內容可以到另一個select框中&#xff0c;但是到了另一個select框中的內容卻很快閃退回原來的select框中&#xff0c;代碼如下&#xff1a; <select class"…

windows API 串口編程參考

*************************************************** 更多精彩&#xff0c;歡迎進入&#xff1a;http://shop115376623.taobao.com *************************************************** &#xff08;一&#xff09;Windows API串口通信編程概述 Windows環境下的串口編程與D…

jquery post php返回html,jquery ajax post 提交數據,返回的是當前網頁的html?

代碼如下用戶名:密 碼:$("#login_submit").bind("click",function(){var type "post";var url "index.php?madmin&cindex&acheckLogin";var formArrays $("#admin_form").serializeArray();var requestData …

[轉]Android Studio系列教程六--Gradle多渠道打包

轉自&#xff1a;http://www.stormzhang.com/devtools/2015/01/15/android-studio-tutorial6/ Android Studio系列教程六--Gradle多渠道打包 2015 年 01 月 15 日 devtools本文為個人原創&#xff0c;歡迎轉載&#xff0c;但請務必在明顯位置注明出處&#xff01; 由于國內Andr…