How to simplify non-linear equations for lsqnonlin

1 回表示 (過去 30 日間)
john zhang
john zhang 2020 年 9 月 25 日
コメント済み: john zhang 2020 年 10 月 7 日
I am now trying to simplify the following non-linear quations for lsqnonlin. Could anyone give me some hint on how to do it?
the d is the unknow variable to be solved by lsqnonlin, but it is the upper limit of integral. I believe there should be much more elegant codes....
Thank you in advance!
clc
clear
a=[0.0025
0.0715
2.4271
38.8184
-0.2403
828.9618];
x=-10:2:8;
N=length(x);
X=zeros(N);% xi-xj matrix
for i=1:N
for j=1:N
X(i,j)=x(i)-x(j);
end
end
d = @(d1,d2,d3,d4,d5,d6,d7,d8,d9,d10) [d1 d2 d3 d4 d5 d6 d7 d8 d9 d10]; % unknown variable vector
Fints1=@(d)integral(@(t)-(a(1)+a(2).*exp(-t./a(3))).*(1-X(1,1).^2./(a(4)+a(5)*t).^2).^a(6),0,d(1))...
+integral(@(t)-(a(1)+a(2).*exp(-t./a(3))).*(1-X(1,2).^2./(a(4)+a(5)*t).^2).^a(6),0,d(2))...
+integral(@(t)-(a(1)+a(2).*exp(-t./a(3))).*(1-X(1,3).^2./(a(4)+a(5)*t).^2).^a(6),0,d(3))...
+integral(@(t)-(a(1)+a(2).*exp(-t./a(3))).*(1-X(1,4).^2./(a(4)+a(5)*t).^2).^a(6),0,d(4))...
+integral(@(t)-(a(1)+a(2).*exp(-t./a(3))).*(1-X(1,5).^2./(a(4)+a(5)*t).^2).^a(6),0,d(5))...
+integral(@(t)-(a(1)+a(2).*exp(-t./a(3))).*(1-X(1,6).^2./(a(4)+a(5)*t).^2).^a(6),0,d(6))...
+integral(@(t)-(a(1)+a(2).*exp(-t./a(3))).*(1-X(1,7).^2./(a(4)+a(5)*t).^2).^a(6),0,d(7))...
+integral(@(t)-(a(1)+a(2).*exp(-t./a(3))).*(1-X(1,8).^2./(a(4)+a(5)*t).^2).^a(6),0,d(8))...
+integral(@(t)-(a(1)+a(2).*exp(-t./a(3))).*(1-X(1,9).^2./(a(4)+a(5)*t).^2).^a(6),0,d(9))...
+integral(@(t)-(a(1)+a(2).*exp(-t./a(3))).*(1-X(1,10).^2./(a(4)+a(5)*t).^2).^a(6),0,d(10));
Fints2=@(d)integral(@(t)-(a(1)+a(2).*exp(-t./a(3))).*(1-X(2,1).^2./(a(4)+a(5)*t).^2).^a(6),0,d(1))...
+integral(@(t)-(a(1)+a(2).*exp(-t./a(3))).*(1-X(2,2).^2./(a(4)+a(5)*t).^2).^a(6),0,d(2))...
+integral(@(t)-(a(1)+a(2).*exp(-t./a(3))).*(1-X(2,3).^2./(a(4)+a(5)*t).^2).^a(6),0,d(3))...
+integral(@(t)-(a(1)+a(2).*exp(-t./a(3))).*(1-X(2,4).^2./(a(4)+a(5)*t).^2).^a(6),0,d(4))...
+integral(@(t)-(a(1)+a(2).*exp(-t./a(3))).*(1-X(2,5).^2./(a(4)+a(5)*t).^2).^a(6),0,d(5))...
+integral(@(t)-(a(1)+a(2).*exp(-t./a(3))).*(1-X(2,6).^2./(a(4)+a(5)*t).^2).^a(6),0,d(6))...
+integral(@(t)-(a(1)+a(2).*exp(-t./a(3))).*(1-X(2,7).^2./(a(4)+a(5)*t).^2).^a(6),0,d(7))...
+integral(@(t)-(a(1)+a(2).*exp(-t./a(3))).*(1-X(2,8).^2./(a(4)+a(5)*t).^2).^a(6),0,d(8))...
+integral(@(t)-(a(1)+a(2).*exp(-t./a(3))).*(1-X(2,9).^2./(a(4)+a(5)*t).^2).^a(6),0,d(9))...
+integral(@(t)-(a(1)+a(2).*exp(-t./a(3))).*(1-X(2,10).^2./(a(4)+a(5)*t).^2).^a(6),0,d(10));
Fints3=@(d)integral(@(t)-(a(1)+a(2).*exp(-t./a(3))).*(1-X(3,1).^2./(a(4)+a(5)*t).^2).^a(6),0,d(1))...
+integral(@(t)-(a(1)+a(2).*exp(-t./a(3))).*(1-X(3,2).^2./(a(4)+a(5)*t).^2).^a(6),0,d(2))...
+integral(@(t)-(a(1)+a(2).*exp(-t./a(3))).*(1-X(3,3).^2./(a(4)+a(5)*t).^2).^a(6),0,d(3))...
+integral(@(t)-(a(1)+a(2).*exp(-t./a(3))).*(1-X(3,4).^2./(a(4)+a(5)*t).^2).^a(6),0,d(4))...
+integral(@(t)-(a(1)+a(2).*exp(-t./a(3))).*(1-X(3,5).^2./(a(4)+a(5)*t).^2).^a(6),0,d(5))...
+integral(@(t)-(a(1)+a(2).*exp(-t./a(3))).*(1-X(3,6).^2./(a(4)+a(5)*t).^2).^a(6),0,d(6))...
+integral(@(t)-(a(1)+a(2).*exp(-t./a(3))).*(1-X(3,7).^2./(a(4)+a(5)*t).^2).^a(6),0,d(7))...
+integral(@(t)-(a(1)+a(2).*exp(-t./a(3))).*(1-X(3,8).^2./(a(4)+a(5)*t).^2).^a(6),0,d(8))...
+integral(@(t)-(a(1)+a(2).*exp(-t./a(3))).*(1-X(3,9).^2./(a(4)+a(5)*t).^2).^a(6),0,d(9))...
+integral(@(t)-(a(1)+a(2).*exp(-t./a(3))).*(1-X(3,10).^2./(a(4)+a(5)*t).^2).^a(6),0,d(10));
Fints4=@(d)integral(@(t)-(a(1)+a(2).*exp(-t./a(3))).*(1-X(4,1).^2./(a(4)+a(5)*t).^2).^a(6),0,d(1))...
+integral(@(t)-(a(1)+a(2).*exp(-t./a(3))).*(1-X(4,2).^2./(a(4)+a(5)*t).^2).^a(6),0,d(2))...
+integral(@(t)-(a(1)+a(2).*exp(-t./a(3))).*(1-X(4,3).^2./(a(4)+a(5)*t).^2).^a(6),0,d(3))...
+integral(@(t)-(a(1)+a(2).*exp(-t./a(3))).*(1-X(4,4).^2./(a(4)+a(5)*t).^2).^a(6),0,d(4))...
+integral(@(t)-(a(1)+a(2).*exp(-t./a(3))).*(1-X(4,5).^2./(a(4)+a(5)*t).^2).^a(6),0,d(5))...
+integral(@(t)-(a(1)+a(2).*exp(-t./a(3))).*(1-X(4,6).^2./(a(4)+a(5)*t).^2).^a(6),0,d(6))...
+integral(@(t)-(a(1)+a(2).*exp(-t./a(3))).*(1-X(4,7).^2./(a(4)+a(5)*t).^2).^a(6),0,d(7))...
+integral(@(t)-(a(1)+a(2).*exp(-t./a(3))).*(1-X(4,8).^2./(a(4)+a(5)*t).^2).^a(6),0,d(8))...
+integral(@(t)-(a(1)+a(2).*exp(-t./a(3))).*(1-X(4,9).^2./(a(4)+a(5)*t).^2).^a(6),0,d(9))...
+integral(@(t)-(a(1)+a(2).*exp(-t./a(3))).*(1-X(4,10).^2./(a(4)+a(5)*t).^2).^a(6),0,d(10));
Fints5=@(d)integral(@(t)-(a(1)+a(2).*exp(-t./a(3))).*(1-X(5,1).^2./(a(4)+a(5)*t).^2).^a(6),0,d(1))...
+integral(@(t)-(a(1)+a(2).*exp(-t./a(3))).*(1-X(5,2).^2./(a(4)+a(5)*t).^2).^a(6),0,d(2))...
+integral(@(t)-(a(1)+a(2).*exp(-t./a(3))).*(1-X(5,3).^2./(a(4)+a(5)*t).^2).^a(6),0,d(3))...
+integral(@(t)-(a(1)+a(2).*exp(-t./a(3))).*(1-X(5,4).^2./(a(4)+a(5)*t).^2).^a(6),0,d(4))...
+integral(@(t)-(a(1)+a(2).*exp(-t./a(3))).*(1-X(5,5).^2./(a(4)+a(5)*t).^2).^a(6),0,d(5))...
+integral(@(t)-(a(1)+a(2).*exp(-t./a(3))).*(1-X(5,6).^2./(a(4)+a(5)*t).^2).^a(6),0,d(6))...
+integral(@(t)-(a(1)+a(2).*exp(-t./a(3))).*(1-X(5,7).^2./(a(4)+a(5)*t).^2).^a(6),0,d(7))...
+integral(@(t)-(a(1)+a(2).*exp(-t./a(3))).*(1-X(5,8).^2./(a(4)+a(5)*t).^2).^a(6),0,d(8))...
+integral(@(t)-(a(1)+a(2).*exp(-t./a(3))).*(1-X(5,9).^2./(a(4)+a(5)*t).^2).^a(6),0,d(9))...
+integral(@(t)-(a(1)+a(2).*exp(-t./a(3))).*(1-X(5,10).^2./(a(4)+a(5)*t).^2).^a(6),0,d(10));
Fints6=@(d)integral(@(t)-(a(1)+a(2).*exp(-t./a(3))).*(1-X(6,1).^2./(a(4)+a(5)*t).^2).^a(6),0,d(1))...
+integral(@(t)-(a(1)+a(2).*exp(-t./a(3))).*(1-X(6,2).^2./(a(4)+a(5)*t).^2).^a(6),0,d(2))...
+integral(@(t)-(a(1)+a(2).*exp(-t./a(3))).*(1-X(6,3).^2./(a(4)+a(5)*t).^2).^a(6),0,d(3))...
+integral(@(t)-(a(1)+a(2).*exp(-t./a(3))).*(1-X(6,4).^2./(a(4)+a(5)*t).^2).^a(6),0,d(4))...
+integral(@(t)-(a(1)+a(2).*exp(-t./a(3))).*(1-X(6,5).^2./(a(4)+a(5)*t).^2).^a(6),0,d(5))...
+integral(@(t)-(a(1)+a(2).*exp(-t./a(3))).*(1-X(6,6).^2./(a(4)+a(5)*t).^2).^a(6),0,d(6))...
+integral(@(t)-(a(1)+a(2).*exp(-t./a(3))).*(1-X(6,7).^2./(a(4)+a(5)*t).^2).^a(6),0,d(7))...
+integral(@(t)-(a(1)+a(2).*exp(-t./a(3))).*(1-X(6,8).^2./(a(4)+a(5)*t).^2).^a(6),0,d(8))...
+integral(@(t)-(a(1)+a(2).*exp(-t./a(3))).*(1-X(6,9).^2./(a(4)+a(5)*t).^2).^a(6),0,d(9))...
+integral(@(t)-(a(1)+a(2).*exp(-t./a(3))).*(1-X(6,10).^2./(a(4)+a(5)*t).^2).^a(6),0,d(10));
Fints7=@(d)integral(@(t)-(a(1)+a(2).*exp(-t./a(3))).*(1-X(7,1).^2./(a(4)+a(5)*t).^2).^a(6),0,d(1))...
+integral(@(t)-(a(1)+a(2).*exp(-t./a(3))).*(1-X(7,2).^2./(a(4)+a(5)*t).^2).^a(6),0,d(2))...
+integral(@(t)-(a(1)+a(2).*exp(-t./a(3))).*(1-X(7,3).^2./(a(4)+a(5)*t).^2).^a(6),0,d(3))...
+integral(@(t)-(a(1)+a(2).*exp(-t./a(3))).*(1-X(7,4).^2./(a(4)+a(5)*t).^2).^a(6),0,d(4))...
+integral(@(t)-(a(1)+a(2).*exp(-t./a(3))).*(1-X(7,5).^2./(a(4)+a(5)*t).^2).^a(6),0,d(5))...
+integral(@(t)-(a(1)+a(2).*exp(-t./a(3))).*(1-X(7,6).^2./(a(4)+a(5)*t).^2).^a(6),0,d(6))...
+integral(@(t)-(a(1)+a(2).*exp(-t./a(3))).*(1-X(7,7).^2./(a(4)+a(5)*t).^2).^a(6),0,d(7))...
+integral(@(t)-(a(1)+a(2).*exp(-t./a(3))).*(1-X(7,8).^2./(a(4)+a(5)*t).^2).^a(6),0,d(8))...
+integral(@(t)-(a(1)+a(2).*exp(-t./a(3))).*(1-X(7,9).^2./(a(4)+a(5)*t).^2).^a(6),0,d(9))...
+integral(@(t)-(a(1)+a(2).*exp(-t./a(3))).*(1-X(7,10).^2./(a(4)+a(5)*t).^2).^a(6),0,d(10));
Fints8=@(d)integral(@(t)-(a(1)+a(2).*exp(-t./a(3))).*(1-X(8,1).^2./(a(4)+a(5)*t).^2).^a(6),0,d(1))...
+integral(@(t)-(a(1)+a(2).*exp(-t./a(3))).*(1-X(8,2).^2./(a(4)+a(5)*t).^2).^a(6),0,d(2))...
+integral(@(t)-(a(1)+a(2).*exp(-t./a(3))).*(1-X(8,3).^2./(a(4)+a(5)*t).^2).^a(6),0,d(3))...
+integral(@(t)-(a(1)+a(2).*exp(-t./a(3))).*(1-X(8,4).^2./(a(4)+a(5)*t).^2).^a(6),0,d(4))...
+integral(@(t)-(a(1)+a(2).*exp(-t./a(3))).*(1-X(8,5).^2./(a(4)+a(5)*t).^2).^a(6),0,d(5))...
+integral(@(t)-(a(1)+a(2).*exp(-t./a(3))).*(1-X(8,6).^2./(a(4)+a(5)*t).^2).^a(6),0,d(6))...
+integral(@(t)-(a(1)+a(2).*exp(-t./a(3))).*(1-X(8,7).^2./(a(4)+a(5)*t).^2).^a(6),0,d(7))...
+integral(@(t)-(a(1)+a(2).*exp(-t./a(3))).*(1-X(8,8).^2./(a(4)+a(5)*t).^2).^a(6),0,d(8))...
+integral(@(t)-(a(1)+a(2).*exp(-t./a(3))).*(1-X(8,9).^2./(a(4)+a(5)*t).^2).^a(6),0,d(9))...
+integral(@(t)-(a(1)+a(2).*exp(-t./a(3))).*(1-X(8,10).^2./(a(4)+a(5)*t).^2).^a(6),0,d(10));
Fints9=@(d)integral(@(t)-(a(1)+a(2).*exp(-t./a(3))).*(1-X(9,1).^2./(a(4)+a(5)*t).^2).^a(6),0,d(1))...
+integral(@(t)-(a(1)+a(2).*exp(-t./a(3))).*(1-X(9,2).^2./(a(4)+a(5)*t).^2).^a(6),0,d(2))...
+integral(@(t)-(a(1)+a(2).*exp(-t./a(3))).*(1-X(9,3).^2./(a(4)+a(5)*t).^2).^a(6),0,d(3))...
+integral(@(t)-(a(1)+a(2).*exp(-t./a(3))).*(1-X(9,4).^2./(a(4)+a(5)*t).^2).^a(6),0,d(4))...
+integral(@(t)-(a(1)+a(2).*exp(-t./a(3))).*(1-X(9,5).^2./(a(4)+a(5)*t).^2).^a(6),0,d(5))...
+integral(@(t)-(a(1)+a(2).*exp(-t./a(3))).*(1-X(9,6).^2./(a(4)+a(5)*t).^2).^a(6),0,d(6))...
+integral(@(t)-(a(1)+a(2).*exp(-t./a(3))).*(1-X(9,7).^2./(a(4)+a(5)*t).^2).^a(6),0,d(7))...
+integral(@(t)-(a(1)+a(2).*exp(-t./a(3))).*(1-X(9,8).^2./(a(4)+a(5)*t).^2).^a(6),0,d(8))...
+integral(@(t)-(a(1)+a(2).*exp(-t./a(3))).*(1-X(9,9).^2./(a(4)+a(5)*t).^2).^a(6),0,d(9))...
+integral(@(t)-(a(1)+a(2).*exp(-t./a(3))).*(1-X(9,10).^2./(a(4)+a(5)*t).^2).^a(6),0,d(10));
Fints10=@(d)integral(@(t)-(a(1)+a(2).*exp(-t./a(3))).*(1-X(10,1).^2./(a(4)+a(5)*t).^2).^a(6),0,d(1))...
+integral(@(t)-(a(1)+a(2).*exp(-t./a(3))).*(1-X(10,2).^2./(a(4)+a(5)*t).^2).^a(6),0,d(2))...
+integral(@(t)-(a(1)+a(2).*exp(-t./a(3))).*(1-X(10,3).^2./(a(4)+a(5)*t).^2).^a(6),0,d(3))...
+integral(@(t)-(a(1)+a(2).*exp(-t./a(3))).*(1-X(10,4).^2./(a(4)+a(5)*t).^2).^a(6),0,d(4))...
+integral(@(t)-(a(1)+a(2).*exp(-t./a(3))).*(1-X(10,5).^2./(a(4)+a(5)*t).^2).^a(6),0,d(5))...
+integral(@(t)-(a(1)+a(2).*exp(-t./a(3))).*(1-X(10,6).^2./(a(4)+a(5)*t).^2).^a(6),0,d(6))...
+integral(@(t)-(a(1)+a(2).*exp(-t./a(3))).*(1-X(10,7).^2./(a(4)+a(5)*t).^2).^a(6),0,d(7))...
+integral(@(t)-(a(1)+a(2).*exp(-t./a(3))).*(1-X(10,8).^2./(a(4)+a(5)*t).^2).^a(6),0,d(8))...
+integral(@(t)-(a(1)+a(2).*exp(-t./a(3))).*(1-X(10,9).^2./(a(4)+a(5)*t).^2).^a(6),0,d(9))...
+integral(@(t)-(a(1)+a(2).*exp(-t./a(3))).*(1-X(10,10).^2./(a(4)+a(5)*t).^2).^a(6),0,d(10));
d_0=ones(N,1)'; % initial guess
lb=zeros(N,1)'; % lower bounds
dx=lsqnonlin(@CalcTemps,d_0,lb)';
function fun = CalcTemps(d)
fun(1) = Fints1(d);
fun(2) = Fints2(d);
fun(3) = Fints3(d);
fun(4) = Fints4(d);
fun(5) = Fints5(d);
fun(6) = Fints6(d);
fun(7) = Fints7(d);
fun(8) = Fints8(d);
fun(9) = Fints9(d);
fun(10) = Fints10(d);
end

回答 (1 件)

Ayush Gupta
Ayush Gupta 2020 年 10 月 7 日
To simplify equations in MATLAB, simplify function can be used for it. To read about it and have some examples to check how it works, read here.
  1 件のコメント
john zhang
john zhang 2020 年 10 月 7 日
Thank you Gupta for your answer.
What I mean "simplify" is how to write "Fints" functions to a simple form. Now I have to write the Fints functions one by one and they are too long. Are there any method to write them in a shorter/simpler form? Currently, I have to rewrite all Fints functions if I change the number of variables in d.
Thank you.

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeMATLAB についてさらに検索

製品


リリース

R2019b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by