i have been trying to solve 50 nonlinear equations simultaneously
1 次查看(过去 30 天)
显示 更早的评论
this is my function file
function F=my_fin(X)
%parameters
L=1; %length of fin
%W=0.0598; %width og fin
%T=50;
%T_b=100; %base temperature of fin
%T_a=20; %ambient temperature of fin
% k_a=30; %ka is the thermal conductivity at the ambient fluid temperature of the fin
%alpha=0.01; %? is the parameter describing the variation of thermal conductivity 0r temperature coefficient of thermal conductivity
% h=11; %heat transfer coefficient
%t=0.001; %thickness of fin
%P=2*(W+t); %fin perimeter...m(unit)
% A_c=(W*t); %cross-sectional area of the fin
%M=sqrt((h*P*L^2)/(A_c*k_a)); %thermo-geometric fin parameter
M=0.5;
n=50; % no of nodes
dx=(L/(n-1)); %space between nodes
%B=alpha*(T_b-T_a); % B dimensionless parameter describing variation of the thermal conductivity
B=0.2;
X(1)=0;
X(51)=1;
F=zeros(1,50);
R=1;
%X(N)=(T-T_b)/(T_a-T_b);
F(1)=(1+B*(X(R+1)))*(X(R+2)-2*X(R+1)+X(R))+((B/4)*(X(R+2))^2)-((B/2)*(X(R+2)*X(R)))+((B/4)*(X(R))^2)-((M)*(X(R+1))*(dx)^2); %let (X(0))=X(1))=1 which is base temp
for j=1:n-3
%X(j)=(T-T_b)/(T_a-T_b);
F(j+1)=(1+B*(X(j+2)))*(X(j+3)-2*X(j+2)+X(j+1))+((B/4)*(X(j+3))^2)-((B/2)*(X(j+3)*X(j+1)))+((B/4)*X(j+1)^2)-((M)*(X(j+2))*(dx)^2);
end
k=1;
% X(k)=(T-T_b)/(T_a-T_b);
F(50)=(1+B*X(k+50))*(X(k+48)*X(k+50))+(B/2)*(X(k+50)-X(k+49))^2-(M*(2*(dx)^2)*X(k+50)); %X(20)=X(21)=0 insulated boundary
end
this is my fsolve command file
clc
clear all
mata=zeros(1,50);
N=100;
OPTs = optimoptions('fsolve', 'MaxIter', N, 'Display','iter');
fun=@my_fin;
x=fsolve(fun,mata);
[Solution, Fval] = fsolve(fun, mata , OPTs)
plot(x)
and output is
Solver stopped prematurely.
fsolve stopped because it exceeded the iteration limit,
options.MaxIterations = 4.000000e+02.
Norm of First-order Trust-region
Iteration Func-count f(x) step optimality radius
0 51 0.00991687 0.12 1
1 102 0.00781698 0.0172541 0.0707 1
2 153 0.0070298 0.0103857 0.0477 1
3 204 0.00649362 0.0084817 0.0461 1
4 255 0.00606564 0.00754073 0.0329 1
5 306 0.00570042 0.00690803 0.0347 1
6 357 0.00537765 0.00649566 0.0281 1
7 408 0.00508647 0.00612239 0.028 1
8 459 0.00482033 0.00586997 0.0244 1
9 510 0.00457487 0.00559464 0.0234 1
10 561 0.00434705 0.00541385 0.0213 1
11 612 0.00413458 0.00518789 0.0202 1
12 663 0.00393573 0.00504675 0.0189 1
13 714 0.0037491 0.00485059 0.019 1
14 765 0.00357353 0.00473455 0.0168 1
15 816 0.00340806 0.00455874 0.0182 1
16 867 0.00325188 0.00446011 0.016 1
17 918 0.00310427 0.00429948 0.0174 1
18 969 0.0029646 0.00421372 0.0154 1
19 1020 0.00283233 0.00406518 0.0166 1
20 1071 0.00270694 0.00398941 0.0149 1
21 1122 0.00258801 0.00385093 0.0159 1
22 1173 0.00247512 0.0037832 0.0143 1
23 1224 0.00236789 0.00365338 0.0152 1
24 1275 0.002266 0.00359227 0.0138 1
25 1326 0.00216913 0.00347009 0.0145 1
26 1377 0.00207699 0.00341458 0.0132 1
27 1428 0.00198932 0.00329925 0.0138 1
28 1479 0.00190587 0.00324854 0.0127 1
29 1530 0.00182639 0.00313944 0.0132 1
30 1581 0.0017507 0.0030929 0.0122 1
31 1632 0.00167857 0.00298952 0.0126 1
32 1683 0.00160983 0.00294665 0.0116 1
33 1734 0.00154429 0.00284855 0.012 1
34 1785 0.00148179 0.00280892 0.0112 1
35 1836 0.00142217 0.00271574 0.0115 1
36 1887 0.0013653 0.00267902 0.0107 1
37 1938 0.00131103 0.00259042 0.011 1
38 1989 0.00125922 0.0025563 0.0102 1
39 2040 0.00120977 0.00247201 0.0105 1
40 2091 0.00116255 0.00244025 0.0098 1
41 2142 0.00111745 0.00235999 0.01 1
42 2193 0.00107437 0.00233038 0.00938 1
43 2244 0.00103322 0.00225392 0.00958 1
44 2295 0.000993894 0.00222626 0.00898 1
45 2346 0.000956312 0.00215339 0.00916 1
46 2397 0.000920391 0.00212751 0.00859 1
47 2448 0.00088605 0.00205804 0.00875 1
48 2499 0.000853216 0.0020338 0.00822 1
49 2550 0.000821818 0.00196753 0.00836 1
50 2601 0.000791789 0.0019448 0.00787 1
51 2652 0.000763065 0.00188157 0.00799 1
52 2703 0.000735586 0.00186024 0.00753 1
53 2754 0.000709294 0.00179989 0.00764 1
54 2805 0.000684135 0.00177985 0.0072 1
55 2856 0.000660056 0.00172222 0.0073 1
56 2907 0.000637008 0.00170338 0.00689 1
57 2958 0.000614945 0.00164835 0.00697 1
58 3009 0.000593822 0.00163062 0.00659 1
59 3060 0.000573595 0.00157806 0.00667 1
60 3111 0.000554226 0.00156136 0.00631 1
61 3162 0.000535674 0.00151114 0.00637 1
62 3213 0.000517905 0.00149541 0.00603 1
63 3264 0.000500881 0.00144742 0.00609 1
64 3315 0.000484571 0.0014326 0.00577 1
65 3366 0.000468943 0.00138672 0.00582 1
66 3417 0.000453966 0.00137274 0.00552 1
67 3468 0.000439611 0.00132889 0.00556 1
68 3519 0.000425852 0.0013157 0.00528 1
69 3570 0.000412662 0.00127377 0.00532 1
70 3621 0.000400015 0.00126132 0.00505 1
71 3672 0.000387889 0.00122122 0.00508 1
72 3723 0.00037626 0.00120947 0.00483 1
73 3774 0.000365107 0.00117112 0.00486 1
74 3825 0.000354408 0.00116003 0.00462 1
75 3876 0.000344145 0.00112333 0.00464 1
76 3927 0.000334299 0.00111286 0.00442 1
77 3978 0.000324851 0.00107776 0.00444 1
78 4029 0.000315784 0.00106787 0.00423 1
79 4080 0.000307082 0.00103428 0.00424 1
80 4131 0.000298729 0.00102494 0.00404 1
81 4182 0.00029071 0.000992789 0.00406 1
82 4233 0.000283011 0.00098397 0.00386 1
83 4284 0.000275619 0.0009532 0.00388 1
84 4335 0.000268519 0.000944873 0.00369 1
85 4386 0.000261701 0.000915419 0.0037 1
86 4437 0.000255151 0.000907557 0.00353 1
87 4488 0.000248858 0.000879359 0.00354 1
88 4539 0.000242812 0.000871937 0.00338 1
89 4590 0.000237002 0.000844939 0.00338 1
90 4641 0.000231418 0.000837935 0.00323 1
91 4692 0.000226051 0.000812082 0.00323 1
92 4743 0.000220892 0.000805475 0.00309 1
93 4794 0.000215931 0.000780716 0.00309 1
94 4845 0.000211161 0.000774486 0.00295 1
95 4896 0.000206573 0.000750773 0.00295 1
96 4947 0.00020216 0.0007449 0.00282 1
97 4998 0.000197915 0.000722186 0.00282 1
98 5049 0.00019383 0.000716654 0.00269 1
Solver stopped prematurely.
fsolve stopped because it exceeded the function evaluation limit,
options.MaxFunctionEvaluations = 5.000000e+03.
Solution =
Columns 1 through 10
0 -0.0000 0.0000 -0.0000 0.0000 -0.0000 0.0000 -0.0000 0.0000 -0.0000
Columns 11 through 20
0.0000 -0.0000 0.0000 -0.0000 0.0000 -0.0000 0.0000 -0.0000 0.0000 -0.0000
Columns 21 through 30
0.0000 -0.0000 0.0000 -0.0000 0.0000 -0.0000 0.0000 -0.0000 0.0001 0.0000
Columns 31 through 40
0.0001 -0.0001 -0.0001 -0.0004 -0.0004 -0.0006 -0.0001 0.0006 0.0022 0.0038
Columns 41 through 50
0.0054 0.0055 0.0032 -0.0030 -0.0139 -0.0299 -0.0503 -0.0733 -0.0958 -0.1136
Fval =
Columns 1 through 10
0.0000 -0.0000 0.0000 -0.0000 0.0000 -0.0000 0.0000 -0.0000 0.0000 -0.0000
Columns 11 through 20
0.0000 -0.0000 0.0000 -0.0000 0.0000 -0.0001 0.0001 -0.0001 0.0001 -0.0001
Columns 21 through 30
0.0001 -0.0001 0.0001 -0.0001 0.0002 -0.0002 0.0002 -0.0002 0.0002 -0.0003
Columns 31 through 40
0.0002 -0.0003 0.0003 -0.0001 0.0006 0.0003 0.0008 0.0001 -0.0001 -0.0015
Columns 41 through 50
-0.0023 -0.0040 -0.0046 -0.0051 -0.0042 -0.0025 0.0006 0.0047 0 0.0086
now why my output show me it is not fully solved prematurely stop how i can increase iteration
回答(2 个)
Torsten
2024-1-14
编辑:Torsten
2024-1-14
Does the approximate solution below look correct ?
Note that you don't set F(49) in your code.
clc
clear all
mata=zeros(1,50);
OPTs = optimoptions('fsolve', 'MaxIterations', 100000, 'MaxFunctionEvaluations',100000);
fun=@my_fin;
[x, Fval,errorflag] = fsolve(fun, mata , OPTs);
errorflag
plot(linspace(0,1,50),x)
function F=my_fin(X)
%parameters
L=1; %length of fin
%W=0.0598; %width og fin
%T=50;
%T_b=100; %base temperature of fin
%T_a=20; %ambient temperature of fin
% k_a=30; %ka is the thermal conductivity at the ambient fluid temperature of the fin
%alpha=0.01; %? is the parameter describing the variation of thermal conductivity 0r temperature coefficient of thermal conductivity
% h=11; %heat transfer coefficient
%t=0.001; %thickness of fin
%P=2*(W+t); %fin perimeter...m(unit)
% A_c=(W*t); %cross-sectional area of the fin
%M=sqrt((h*P*L^2)/(A_c*k_a)); %thermo-geometric fin parameter
M=0.5;
n=50; % no of nodes
dx=(L/(n-1)); %space between nodes
%B=alpha*(T_b-T_a); % B dimensionless parameter describing variation of the thermal conductivity
B=0.2;
X(1)=0;
X(51)=1;
F=zeros(1,50);
R=1;
%X(N)=(T-T_b)/(T_a-T_b);
F(1)=(1+B*(X(R+1)))*(X(R+2)-2*X(R+1)+X(R))+((B/4)*(X(R+2))^2)-((B/2)*(X(R+2)*X(R)))+((B/4)*(X(R))^2)-((M)*(X(R+1))*(dx)^2); %let (X(0))=X(1))=1 which is base temp
for j=1:n-3
%X(j)=(T-T_b)/(T_a-T_b);
F(j+1)=(1+B*(X(j+2)))*(X(j+3)-2*X(j+2)+X(j+1))+((B/4)*(X(j+3))^2)-((B/2)*(X(j+3)*X(j+1)))+((B/4)*X(j+1)^2)-((M)*(X(j+2))*(dx)^2);
end
k=1;
% X(k)=(T-T_b)/(T_a-T_b);
F(50)=(1+B*X(k+50))*(X(k+48)*X(k+50))+(B/2)*(X(k+50)-X(k+49))^2-(M*(2*(dx)^2)*X(k+50)); %X(20)=X(21)=0 insulated boundary
end
2 个评论
Walter Roberson
2024-1-14
clc
clear all
mata=zeros(1,50);
OPTs = optimoptions('fsolve', 'MaxIterations', 100000000, 'MaxFunctionEvaluations', 100000000);
fun=@my_fin;
[x, Fval,errorflag] = fsolve(fun, mata , OPTs);
errorflag
plot(linspace(0,1,50),x)
function F=my_fin(X)
%parameters
L=1; %length of fin
%W=0.0598; %width og fin
%T=50;
%T_b=100; %base temperature of fin
%T_a=20; %ambient temperature of fin
% k_a=30; %ka is the thermal conductivity at the ambient fluid temperature of the fin
%alpha=0.01; %? is the parameter describing the variation of thermal conductivity 0r temperature coefficient of thermal conductivity
% h=11; %heat transfer coefficient
%t=0.001; %thickness of fin
%P=2*(W+t); %fin perimeter...m(unit)
% A_c=(W*t); %cross-sectional area of the fin
%M=sqrt((h*P*L^2)/(A_c*k_a)); %thermo-geometric fin parameter
M=0.5;
n=50; % no of nodes
dx=(L/(n-1)); %space between nodes
%B=alpha*(T_b-T_a); % B dimensionless parameter describing variation of the thermal conductivity
B=0.2;
X(1)=0;
X(51)=1;
F=zeros(1,50);
R=1;
%X(N)=(T-T_b)/(T_a-T_b);
F(1)=(1+B*(X(R+1)))*(X(R+2)-2*X(R+1)+X(R))+((B/4)*(X(R+2))^2)-((B/2)*(X(R+2)*X(R)))+((B/4)*(X(R))^2)-((M)*(X(R+1))*(dx)^2); %let (X(0))=X(1))=1 which is base temp
for j=1:n-3
%X(j)=(T-T_b)/(T_a-T_b);
F(j+1)=(1+B*(X(j+2)))*(X(j+3)-2*X(j+2)+X(j+1))+((B/4)*(X(j+3))^2)-((B/2)*(X(j+3)*X(j+1)))+((B/4)*X(j+1)^2)-((M)*(X(j+2))*(dx)^2);
end
k=1;
% X(k)=(T-T_b)/(T_a-T_b);
F(50)=(1+B*X(k+50))*(X(k+48)*X(k+50))+(B/2)*(X(k+50)-X(k+49))^2-(M*(2*(dx)^2)*X(k+50)); %X(20)=X(21)=0 insulated boundary
end
Torsten
2024-1-14
编辑:Torsten
2024-1-14
epsilon = 0.2;
N = 0.5;
L = 1;
bvpfcn = @(x,y)[y(2);(-epsilon*y(2)^2+N^2*y(1))/(1+epsilon*y(1))];
bcfcn = @(ya,yb)[ya(2);yb(1)-1];
guess = @(x)[0;1];
xmesh = linspace(0,L,100);
solinit = bvpinit(xmesh, guess);
sol = bvp4c(bvpfcn, bcfcn, solinit);
figure(1)
plot(sol.x, sol.y(1,:))
Npts = 50;
x = linspace(0,L,Npts);
dx = x(2)-x(1);
T0 = ones(Npts,1);
T = fsolve(@(x)fun(x,Npts,x,dx,epsilon,N),T0);
figure(2)
plot(x,T)
function res = fun(T,Npts,x,dx,epsilon,N)
res = zeros(size(T));
res(1) = (1+epsilon*T(1))*2*(T(2)-T(1))/dx^2 + epsilon*((T(2)-T(1))/dx)^2 - N^2*T(1);
res(2:Npts-1) = (1+epsilon*T(2:Npts-1)).*(T(3:Npts)-2*T(2:Npts-1)+T(1:Npts-2))/dx^2 + epsilon*((T(3:Npts)-T(1:Npts-2))/(2*dx)).^2 - N^2*T(2:Npts-1);
res(Npts) = T(Npts)-1;
end
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Systems of Nonlinear Equations 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!