How to simplify non-linear equations for lsqnonlin

2 views (last 30 days)
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

Answers (1)

Ayush Gupta
Ayush Gupta on 7 Oct 2020
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 Comment
john zhang
john zhang on 7 Oct 2020
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.

Sign in to comment.

Categories

Find more on MATLAB in Help Center and File Exchange

Products


Release

R2019b

Community Treasure Hunt

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

Start Hunting!