Küsimus:
C / C ++ teek mittelineaarsete võrrandisüsteemide lahendamiseks
tidy
2015-03-06 08:09:07 UTC
view on stackexchange narkive permalink

Minu võrrandisüsteem on selline:

(x - a 1 ) 2 + (y - b 1 ) 2 = c 1

(x - a 2 ) 2 sup> + (y - b 2 ) 2 = c 2

Ma tean, et see on lihtne kasutades matlab:

  lahendama ((x-a1) ^ 2 + (y-b1) ^ 2 - c1, (x-a2) ^ 2 + (y-b2) ^ 2 - c2 )  

Aga kuidas seda probleemi lahendada C / C ++ abil? Ma tean matemaatikakogu nimega lapack , kuid on mõeldud lineaarvõrrandi jaoks. Kas teil on soovitusi?

Kirjutasin ühe Newton-Raphsoni meetodi rakenduse, vt üksikasju siit: https://dilawarnotes.wordpress.com/2016/04/14/multi-dimentional-root-fiding-using-newton-raphson-method/. See pole hästi testitud.
pole keelt, mida nimetatakse C / C ++. C ja C ++ on erinevad keeled
Kolm vastused:
logic
2015-03-24 18:15:46 UTC
view on stackexchange narkive permalink

Viide: Milliseid häid raamatukogusid leidub C ++ mittelineaarsete võrrandite süsteemi lahendamiseks?

Oletan, et mõtlete tasuta tarkvara. Viidates ülaltoodud virnastamisvoo küsimusele, võiksite kasutada järgmist:

  1. Päikesekellad: https://computation.llnl.gov/casc/sundials/main.html
  2. GNU: http://www.gnu.org/software/gsl/manual/html_node/Multidimensional-Root_002dFinding.html#index-nonlinear-systems-of-equations_002c-solution-of-2426

Ülejäänud viidatud virnaülekande küsimuses loetletud on Fortrani põhised. Saate neid kasutada ainult siis, kui kasutate f2c (programm Fortran to C)

Heisenberg
2015-03-27 12:32:56 UTC
view on stackexchange narkive permalink

Sooviksin soovitada vähe vastuseid, mille leidsin veebist pärast natuke otsimist. Kuid alati on asjaolu, et raamatukogu sõltub teie individuaalsetest vajadustest :)

  • Eigen Eigen on lineaaralgebra C ++ mallide teek: maatriksid, vektorid, numbrilised lahendajad ja seotud algoritmid. See toetab kõiki maatriksisuurusi, alates väikestest fikseeritud suurusega maatriksitest kuni suvaliselt suurte tihedateni maatriksid ja isegi hõredad maatriksid. ja toetab kõiki tavalisi numbritüüpe, sealhulgas std :: complex, täisarvud, ja on hõlpsasti laiendatav kohandatud numbritüüpidele. mitmesugused maatriksite lagunemised ja geomeetrilised tunnused. Toetamata moodulite ökosüsteem pakub palju erifunktsioone, näiteks mitte -lineaarne optimeerimine, maatriksfunktsioonid, polünoomi lahendaja, FFT ja palju muud.
  • Trilinos See pakub palju klasse ja funktsioone halduritele ja maatriksid paralleelselt, lineaarsete ja mittelineaarsete süsteemide lahendamiseks, tavaliste diferentsiaalvõrrandite lahendamiseks jaeigenv arvutamiseks alues ​​jne .
  • ALIAS-C ++ A C ++ algoritmide intervallanalüüsi raamatukogu võrrandisüsteemidele lineaarsete ja mittelineaarsete süsteemide lahendamiseks terminid

  • MINPACK See on FORTRAN-i alamprogrammide kogu mittelineaarsete võrrandite süsteemide või vähimruutude lahendamiseks lineaarse või mittelineaarse võrrandi hulga jääkide minimeerimine.

Allikas: loend arvukogudest

Sergei
2018-09-01 04:01:07 UTC
view on stackexchange narkive permalink

kaaluge omnn :: math https://github.com/ohhmm/openmind/blob/master/omnn/math/test/08_System.cpp

  Väärtuslikud a1, a2, b1, b2; // init väärtustega System sys; Muutuja x, y; sys << (x-a1) ^ 2 + (y-b1) ^ 2 - c1; // lisage võrrand võrdusena väärtusele 0 sys << (x-a2) ^ 2 + (y-b2) ^ 2 - c2; for (auto& solution: sys.Solve (x)) std :: cout << lahendus;  

alternatiivne viis on teha üks võrrand:

((x-a1 ) ^ 2 + (y-b1) ^ 2 - c1) ^ 2 + ((x-a2) ^ 2 + (y-b2) ^ 2 - c2) ^ 2 = 0

  Muutuja x, y; väärtuslikud a1, a2, b1, b2; // init väärtustegaauto eq = ((x-a1) ^ 2 + (y-b1) ^ 2 - c1) ^ 2 + ((x-a2) ^ 2 + (y-b2) ^ 2 - c2) ^ 2 ; eq.SetView (väärtuslik :: vaade :: võrrand); // valikuline: võrrandi optimeerimine // funktsiooni y saamine: auto fn = eq (y); // showstd :: cout << fn << std :: endl; // Evalateauto hinnata = fn; hinnata.eval (x, 10); hindama.optimeerima (); // arvuta // näita arvutatud väärtust x = 10 juures: std :: cout << hinda << std :: endl;  

Siin on CMake'i näidisprojekt: https: // github.com/ohhmm/NonLinearSystem

kas teil on Linuxi versioon? Tahad lihtsalt oma koode kiiresti testida. Siin pole aknaid :(
Jah, see on cmake'iga ristplatvorm. Kui teil on kompileerimisega raskusi, proovige seadistamise ajal seadistada klanni kompilaator. Tõmbetaotluste saatmiseks täitke tasuta. Praegune dev-haru on ts.
AilimameohCMT https://www.deduction-fw.org/
kas mul on tõesti vaja klangimist? Ma arvan, et klang on enamasti mõeldud Mac-i kasutajatele. Ma kasutan Linuxis cpp-i jaoks VS-koode ja :: codeblock-i ... arvan, et mul on siin klanni kompilaator :(
im ubuntu 20.04. Ehk peaksin saama clang-9?
Praegu saab seda koos GCC-ga ehitada Ubuntu 20.04


See küsimus ja vastus tõlgiti automaatselt inglise keelest.Algne sisu on saadaval stackexchange-is, mida täname cc by-sa 3.0-litsentsi eest, mille all seda levitatakse.
Loading...