CANNOT FIND EXPLICIT SOLUTION
4 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
A=6.30; B=9.40;delta=0.34;
EG0=1.519;a=0.472*10^(-3);seta=230;p=2.44;
T1=293.15;T2=373.15;
y=900*10^(-9):10^(-9):1700*10^(-9);
h=4.13566*10^(-15);
EG1=EG0-a*seta*0.5*(power(1+((2*T1)/seta)^p,1/p)-1);
EG2=EG0-a*seta*0.5*(power(1+((2*T2)/seta)^p,1/p)-1);
EG3=EG0-a*seta*0.5*(power(1+((2*300)/seta)^p,1/p)-1);
syms nr
c=299792452;
hw=(h*c)./(nr*y);
x1=hw/EG1; x2=hw/(EG1+delta);
fx1=power(x1,-2).*(2-sqrt(1+x1)-sqrt(1-x1));
fx2=power(x2,-2).*(2-sqrt(1+x2)-sqrt(1-x2));
eq=nr^2-A*(fx1+0.5*fx2*(EG1/(EG1+delta))^1.5)-B
solve(eq,nr);
I don't know how to solve the 'nr'. The only unknown number is nr, But MATLAB says 'Cannot find explicit solution.' In solve(line 316). how can I solve it?
0 Kommentare
Antworten (1)
Jesús Zambrano
am 29 Mär. 2020
Hi Jiyoung,
What I see from your code is that there is a variable 'y' which is a vector of 801 elements. Thas makes you to have, after following the rest of lines in the code, 801 elements in your 'eq'. I guess you want to solve each element of 'eq' for 'nr', right?
If so, then put the solve in a for-loop that executes it for each elements of the vector 'eq'. Note that when you solve it for the first element, i.e. eq(1), you will get:
solve(eq(1),nr)
ans =
-3.4055195247431015387149927562818
3.4055195247431015387149927562818
- 0.23371803267167591292641549805172 - 0.84472889222660849307066527049399i
- 0.23371803267167591292641549805172 + 0.84472889222660849307066527049399i
- 0.2188548808156796407592891677842 - 1.2614207237196718736658771540873i
- 0.2188548808156796407592891677842 + 1.2614207237196718736658771540873i
- 0.2009831298087114922620258832011 - 0.63984098829267138761023290039748i
- 0.2009831298087114922620258832011 + 0.63984098829267138761023290039748i
- 0.095279410850735997800776403284443 - 0.55834240108227279261730458860913i
- 0.095279410850735997800776403284443 + 0.55834240108227279261730458860913i
- 0.073816698835835126920532553463148 - 0.67770646926384383539367083081255i
- 0.073816698835835126920532553463148 + 0.67770646926384383539367083081255i
- 0.035279698323879157508614161138525 - 0.50104079719727104870701077365044i
- 0.035279698323879157508614161138525 + 0.50104079719727104870701077365044i
- 5.3926038442842603885567382392378e-33 - 0.58125154905583862889817538507886i
- 5.3926038442842603885567382392378e-33 + 0.58125154905583862889817538507886i
- 7.7037197775489434122239117703397e-34 - 0.84730569050904191778663882760979i
- 7.7037197775489434122239117703397e-34 + 0.84730569050904191778663882760979i
0.000000000000000000000000000000014637067577342992483225432363645 - 0.44729847829331506330489730016435i
0.000000000000000000000000000000014637067577342992483225432363645 + 0.44729847829331506330489730016435i
0.035279698323879157508614161138514 - 0.50104079719727104870701077365046i
0.035279698323879157508614161138514 + 0.50104079719727104870701077365046i
0.073816698835835126920532553463143 - 0.67770646926384383539367083081256i
0.073816698835835126920532553463143 + 0.67770646926384383539367083081256i
0.095279410850735997800776403284446 - 0.55834240108227279261730458860914i
0.095279410850735997800776403284446 + 0.55834240108227279261730458860914i
0.2009831298087114922620258832011 - 0.63984098829267138761023290039749i
0.2009831298087114922620258832011 + 0.63984098829267138761023290039749i
0.2188548808156796407592891677842 - 1.2614207237196718736658771540873i
0.2188548808156796407592891677842 + 1.2614207237196718736658771540873i
0.23371803267167591292641549805172 - 0.84472889222660849307066527049399i
0.23371803267167591292641549805172 + 0.84472889222660849307066527049399i
Also, try to use the command 'vpa' so to simplify coefficient on symbolic fractions before use 'solve'. This might reduce a lot the time it takes for 'solve' to give the numerical results.
Hope this can help to solve the problem.
4 Kommentare
Siehe auch
Kategorien
Mehr zu Ordinary Differential Equations finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!