Best programming language for solving numerical PDEs












4












$begingroup$


I have been using matlab to write my finite difference, finite volume and level set codes when solving PDEs. The codes become even complicated hence taking longer to run when I go to 3D cases. This causes the temperature of the laptop to be high (about 71 degree celcius measured by Sensor) and surfing internet while running the codes to be difficult, due to its slow speed. I like matlab since I have been using it since 5 years ago, and there are functions that I think are simple that I can easily remember. On the other hand, I have previously and occasionally used (although not an expert) R (through Rstudio), Python (through Spyder/Anaconda) and C++ (for example using CodeBlocks). Is it worth to change from matlab to other languange/software since that would need me to convert all my codes and find appropriate functions that are equivalent to those from matlab? What I meant by functions here are not the simple ones like ode45 (which I could write on my own), but rather the complicated ones such as isosurface, patch etc.



Edit: I am using ubuntu 16.04 LTS, Memory: 3.7 GiB, Processor: Intel Core i7-4500U CPU @ 1.80GHz x 4, Graphics: Intel Haswell Mobile, Disk: 343.9 GB. It is a dual boot laptop (Asus F550L).










share|cite|improve this question











$endgroup$

















    4












    $begingroup$


    I have been using matlab to write my finite difference, finite volume and level set codes when solving PDEs. The codes become even complicated hence taking longer to run when I go to 3D cases. This causes the temperature of the laptop to be high (about 71 degree celcius measured by Sensor) and surfing internet while running the codes to be difficult, due to its slow speed. I like matlab since I have been using it since 5 years ago, and there are functions that I think are simple that I can easily remember. On the other hand, I have previously and occasionally used (although not an expert) R (through Rstudio), Python (through Spyder/Anaconda) and C++ (for example using CodeBlocks). Is it worth to change from matlab to other languange/software since that would need me to convert all my codes and find appropriate functions that are equivalent to those from matlab? What I meant by functions here are not the simple ones like ode45 (which I could write on my own), but rather the complicated ones such as isosurface, patch etc.



    Edit: I am using ubuntu 16.04 LTS, Memory: 3.7 GiB, Processor: Intel Core i7-4500U CPU @ 1.80GHz x 4, Graphics: Intel Haswell Mobile, Disk: 343.9 GB. It is a dual boot laptop (Asus F550L).










    share|cite|improve this question











    $endgroup$















      4












      4








      4





      $begingroup$


      I have been using matlab to write my finite difference, finite volume and level set codes when solving PDEs. The codes become even complicated hence taking longer to run when I go to 3D cases. This causes the temperature of the laptop to be high (about 71 degree celcius measured by Sensor) and surfing internet while running the codes to be difficult, due to its slow speed. I like matlab since I have been using it since 5 years ago, and there are functions that I think are simple that I can easily remember. On the other hand, I have previously and occasionally used (although not an expert) R (through Rstudio), Python (through Spyder/Anaconda) and C++ (for example using CodeBlocks). Is it worth to change from matlab to other languange/software since that would need me to convert all my codes and find appropriate functions that are equivalent to those from matlab? What I meant by functions here are not the simple ones like ode45 (which I could write on my own), but rather the complicated ones such as isosurface, patch etc.



      Edit: I am using ubuntu 16.04 LTS, Memory: 3.7 GiB, Processor: Intel Core i7-4500U CPU @ 1.80GHz x 4, Graphics: Intel Haswell Mobile, Disk: 343.9 GB. It is a dual boot laptop (Asus F550L).










      share|cite|improve this question











      $endgroup$




      I have been using matlab to write my finite difference, finite volume and level set codes when solving PDEs. The codes become even complicated hence taking longer to run when I go to 3D cases. This causes the temperature of the laptop to be high (about 71 degree celcius measured by Sensor) and surfing internet while running the codes to be difficult, due to its slow speed. I like matlab since I have been using it since 5 years ago, and there are functions that I think are simple that I can easily remember. On the other hand, I have previously and occasionally used (although not an expert) R (through Rstudio), Python (through Spyder/Anaconda) and C++ (for example using CodeBlocks). Is it worth to change from matlab to other languange/software since that would need me to convert all my codes and find appropriate functions that are equivalent to those from matlab? What I meant by functions here are not the simple ones like ode45 (which I could write on my own), but rather the complicated ones such as isosurface, patch etc.



      Edit: I am using ubuntu 16.04 LTS, Memory: 3.7 GiB, Processor: Intel Core i7-4500U CPU @ 1.80GHz x 4, Graphics: Intel Haswell Mobile, Disk: 343.9 GB. It is a dual boot laptop (Asus F550L).







      computer-science computational-mathematics programming






      share|cite|improve this question















      share|cite|improve this question













      share|cite|improve this question




      share|cite|improve this question








      edited Jan 8 at 6:38







      mohd

















      asked Jan 8 at 6:14









      mohdmohd

      275




      275






















          2 Answers
          2






          active

          oldest

          votes


















          4












          $begingroup$

          In reality, this is more of a question of data structuring/algorithmic development than it is of the most efficient language. In my experience in dealing with people in your situation the most common issue I observe is that the user is relying on built in packages (say the LU function in matlab) and that they are either not calling it correctly for the matrix(/ces) they are working with AND/OR are using a built in package that is inefficient for the situation they are in (i.e. you have a matrix of a certain structure in which many of the operations in the built in package are superfluous).



          If you want to go 'hardcore' and build everything yourself then I personally recommend C/C++. If you want to really boost your performance you can run a stack of GPU's together in parallel with CUDA. There are also a number of incredibly amazing C++ Boost libraries that have been built that serve (not exclusively) in solving PDE's numerically.



          There are other 'mathsy' languages out there that are great to use. I've been using Julia (on and off) over the past few years and it's great - very much written for ease of maths coding.



          Addition
          My recommendation is that before you move to another dev environment/language have a good read into the matlab packages you use to make sure they are not 'over working' the data you are working with. By 'over working' I mean performing unnecessary operations. For example performing a LU decomposition on a sparse matrix in which the overwhelming operations are meaningless (converting 0's to 0's is the most common).



          There is also a CUDA package for Matlab too. I've not personally used it, but might be worth investigating.






          share|cite|improve this answer











          $endgroup$









          • 1




            $begingroup$
            thanks for your comments. I will have a look at them all.
            $endgroup$
            – mohd
            Jan 9 at 1:39






          • 1




            $begingroup$
            No worries. Please at any time shoot me a message on this topic. Computational Mathematics is one of my favs of the Applied Mathematics.
            $endgroup$
            – DavidG
            Jan 9 at 1:41



















          2












          $begingroup$

          I would use C/C++. In any interpreted language (Matlab, Python, etc), writing for loops is extremely inefficient. That's why in Matlab for example you can write an external library in C. The speed up is at least one order of magnitude. The advantage of C++ is that you can also (with some effort) write nice parallel code, to use more than one core in the processor.






          share|cite|improve this answer









          $endgroup$









          • 1




            $begingroup$
            Matlab has built in multi-processor parallel coding (has been around for at least 5 years - (for example the 'parfor loop'
            $endgroup$
            – DavidG
            Jan 8 at 6:22










          • $begingroup$
            Thanks @Andrei for your answer. I know about the parfor loop, and in certain circumstances, I use vectorization rather than for loop in order to run faster (whenever possible). It is just that I think matlab is too heavy for my laptop. Besides, I don't know if C/C++ has the functions that I need.
            $endgroup$
            – mohd
            Jan 8 at 6:25








          • 1




            $begingroup$
            @mohd - If you are using either Windows or Mac, you may want to consider using a Linux Distro. I use Ubuntu primarily and I've found that Matlab (overall) performs much better in a Linux environment.
            $endgroup$
            – DavidG
            Jan 8 at 6:31






          • 1




            $begingroup$
            You can also use a lot of the C/C++ binders/wrappers in Python too. But as Andrei pointed out, it's still an interpretive language and as such will not be as efficient.
            $endgroup$
            – DavidG
            Jan 8 at 6:36











          Your Answer





          StackExchange.ifUsing("editor", function () {
          return StackExchange.using("mathjaxEditing", function () {
          StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix) {
          StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["$", "$"], ["\\(","\\)"]]);
          });
          });
          }, "mathjax-editing");

          StackExchange.ready(function() {
          var channelOptions = {
          tags: "".split(" "),
          id: "69"
          };
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function() {
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled) {
          StackExchange.using("snippets", function() {
          createEditor();
          });
          }
          else {
          createEditor();
          }
          });

          function createEditor() {
          StackExchange.prepareEditor({
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          bindNavPrevention: true,
          postfix: "",
          imageUploader: {
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          },
          noCode: true, onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          });


          }
          });














          draft saved

          draft discarded


















          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmath.stackexchange.com%2fquestions%2f3065859%2fbest-programming-language-for-solving-numerical-pdes%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown

























          2 Answers
          2






          active

          oldest

          votes








          2 Answers
          2






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          4












          $begingroup$

          In reality, this is more of a question of data structuring/algorithmic development than it is of the most efficient language. In my experience in dealing with people in your situation the most common issue I observe is that the user is relying on built in packages (say the LU function in matlab) and that they are either not calling it correctly for the matrix(/ces) they are working with AND/OR are using a built in package that is inefficient for the situation they are in (i.e. you have a matrix of a certain structure in which many of the operations in the built in package are superfluous).



          If you want to go 'hardcore' and build everything yourself then I personally recommend C/C++. If you want to really boost your performance you can run a stack of GPU's together in parallel with CUDA. There are also a number of incredibly amazing C++ Boost libraries that have been built that serve (not exclusively) in solving PDE's numerically.



          There are other 'mathsy' languages out there that are great to use. I've been using Julia (on and off) over the past few years and it's great - very much written for ease of maths coding.



          Addition
          My recommendation is that before you move to another dev environment/language have a good read into the matlab packages you use to make sure they are not 'over working' the data you are working with. By 'over working' I mean performing unnecessary operations. For example performing a LU decomposition on a sparse matrix in which the overwhelming operations are meaningless (converting 0's to 0's is the most common).



          There is also a CUDA package for Matlab too. I've not personally used it, but might be worth investigating.






          share|cite|improve this answer











          $endgroup$









          • 1




            $begingroup$
            thanks for your comments. I will have a look at them all.
            $endgroup$
            – mohd
            Jan 9 at 1:39






          • 1




            $begingroup$
            No worries. Please at any time shoot me a message on this topic. Computational Mathematics is one of my favs of the Applied Mathematics.
            $endgroup$
            – DavidG
            Jan 9 at 1:41
















          4












          $begingroup$

          In reality, this is more of a question of data structuring/algorithmic development than it is of the most efficient language. In my experience in dealing with people in your situation the most common issue I observe is that the user is relying on built in packages (say the LU function in matlab) and that they are either not calling it correctly for the matrix(/ces) they are working with AND/OR are using a built in package that is inefficient for the situation they are in (i.e. you have a matrix of a certain structure in which many of the operations in the built in package are superfluous).



          If you want to go 'hardcore' and build everything yourself then I personally recommend C/C++. If you want to really boost your performance you can run a stack of GPU's together in parallel with CUDA. There are also a number of incredibly amazing C++ Boost libraries that have been built that serve (not exclusively) in solving PDE's numerically.



          There are other 'mathsy' languages out there that are great to use. I've been using Julia (on and off) over the past few years and it's great - very much written for ease of maths coding.



          Addition
          My recommendation is that before you move to another dev environment/language have a good read into the matlab packages you use to make sure they are not 'over working' the data you are working with. By 'over working' I mean performing unnecessary operations. For example performing a LU decomposition on a sparse matrix in which the overwhelming operations are meaningless (converting 0's to 0's is the most common).



          There is also a CUDA package for Matlab too. I've not personally used it, but might be worth investigating.






          share|cite|improve this answer











          $endgroup$









          • 1




            $begingroup$
            thanks for your comments. I will have a look at them all.
            $endgroup$
            – mohd
            Jan 9 at 1:39






          • 1




            $begingroup$
            No worries. Please at any time shoot me a message on this topic. Computational Mathematics is one of my favs of the Applied Mathematics.
            $endgroup$
            – DavidG
            Jan 9 at 1:41














          4












          4








          4





          $begingroup$

          In reality, this is more of a question of data structuring/algorithmic development than it is of the most efficient language. In my experience in dealing with people in your situation the most common issue I observe is that the user is relying on built in packages (say the LU function in matlab) and that they are either not calling it correctly for the matrix(/ces) they are working with AND/OR are using a built in package that is inefficient for the situation they are in (i.e. you have a matrix of a certain structure in which many of the operations in the built in package are superfluous).



          If you want to go 'hardcore' and build everything yourself then I personally recommend C/C++. If you want to really boost your performance you can run a stack of GPU's together in parallel with CUDA. There are also a number of incredibly amazing C++ Boost libraries that have been built that serve (not exclusively) in solving PDE's numerically.



          There are other 'mathsy' languages out there that are great to use. I've been using Julia (on and off) over the past few years and it's great - very much written for ease of maths coding.



          Addition
          My recommendation is that before you move to another dev environment/language have a good read into the matlab packages you use to make sure they are not 'over working' the data you are working with. By 'over working' I mean performing unnecessary operations. For example performing a LU decomposition on a sparse matrix in which the overwhelming operations are meaningless (converting 0's to 0's is the most common).



          There is also a CUDA package for Matlab too. I've not personally used it, but might be worth investigating.






          share|cite|improve this answer











          $endgroup$



          In reality, this is more of a question of data structuring/algorithmic development than it is of the most efficient language. In my experience in dealing with people in your situation the most common issue I observe is that the user is relying on built in packages (say the LU function in matlab) and that they are either not calling it correctly for the matrix(/ces) they are working with AND/OR are using a built in package that is inefficient for the situation they are in (i.e. you have a matrix of a certain structure in which many of the operations in the built in package are superfluous).



          If you want to go 'hardcore' and build everything yourself then I personally recommend C/C++. If you want to really boost your performance you can run a stack of GPU's together in parallel with CUDA. There are also a number of incredibly amazing C++ Boost libraries that have been built that serve (not exclusively) in solving PDE's numerically.



          There are other 'mathsy' languages out there that are great to use. I've been using Julia (on and off) over the past few years and it's great - very much written for ease of maths coding.



          Addition
          My recommendation is that before you move to another dev environment/language have a good read into the matlab packages you use to make sure they are not 'over working' the data you are working with. By 'over working' I mean performing unnecessary operations. For example performing a LU decomposition on a sparse matrix in which the overwhelming operations are meaningless (converting 0's to 0's is the most common).



          There is also a CUDA package for Matlab too. I've not personally used it, but might be worth investigating.







          share|cite|improve this answer














          share|cite|improve this answer



          share|cite|improve this answer








          edited Jan 8 at 6:50

























          answered Jan 8 at 6:37









          DavidGDavidG

          2,1851720




          2,1851720








          • 1




            $begingroup$
            thanks for your comments. I will have a look at them all.
            $endgroup$
            – mohd
            Jan 9 at 1:39






          • 1




            $begingroup$
            No worries. Please at any time shoot me a message on this topic. Computational Mathematics is one of my favs of the Applied Mathematics.
            $endgroup$
            – DavidG
            Jan 9 at 1:41














          • 1




            $begingroup$
            thanks for your comments. I will have a look at them all.
            $endgroup$
            – mohd
            Jan 9 at 1:39






          • 1




            $begingroup$
            No worries. Please at any time shoot me a message on this topic. Computational Mathematics is one of my favs of the Applied Mathematics.
            $endgroup$
            – DavidG
            Jan 9 at 1:41








          1




          1




          $begingroup$
          thanks for your comments. I will have a look at them all.
          $endgroup$
          – mohd
          Jan 9 at 1:39




          $begingroup$
          thanks for your comments. I will have a look at them all.
          $endgroup$
          – mohd
          Jan 9 at 1:39




          1




          1




          $begingroup$
          No worries. Please at any time shoot me a message on this topic. Computational Mathematics is one of my favs of the Applied Mathematics.
          $endgroup$
          – DavidG
          Jan 9 at 1:41




          $begingroup$
          No worries. Please at any time shoot me a message on this topic. Computational Mathematics is one of my favs of the Applied Mathematics.
          $endgroup$
          – DavidG
          Jan 9 at 1:41











          2












          $begingroup$

          I would use C/C++. In any interpreted language (Matlab, Python, etc), writing for loops is extremely inefficient. That's why in Matlab for example you can write an external library in C. The speed up is at least one order of magnitude. The advantage of C++ is that you can also (with some effort) write nice parallel code, to use more than one core in the processor.






          share|cite|improve this answer









          $endgroup$









          • 1




            $begingroup$
            Matlab has built in multi-processor parallel coding (has been around for at least 5 years - (for example the 'parfor loop'
            $endgroup$
            – DavidG
            Jan 8 at 6:22










          • $begingroup$
            Thanks @Andrei for your answer. I know about the parfor loop, and in certain circumstances, I use vectorization rather than for loop in order to run faster (whenever possible). It is just that I think matlab is too heavy for my laptop. Besides, I don't know if C/C++ has the functions that I need.
            $endgroup$
            – mohd
            Jan 8 at 6:25








          • 1




            $begingroup$
            @mohd - If you are using either Windows or Mac, you may want to consider using a Linux Distro. I use Ubuntu primarily and I've found that Matlab (overall) performs much better in a Linux environment.
            $endgroup$
            – DavidG
            Jan 8 at 6:31






          • 1




            $begingroup$
            You can also use a lot of the C/C++ binders/wrappers in Python too. But as Andrei pointed out, it's still an interpretive language and as such will not be as efficient.
            $endgroup$
            – DavidG
            Jan 8 at 6:36
















          2












          $begingroup$

          I would use C/C++. In any interpreted language (Matlab, Python, etc), writing for loops is extremely inefficient. That's why in Matlab for example you can write an external library in C. The speed up is at least one order of magnitude. The advantage of C++ is that you can also (with some effort) write nice parallel code, to use more than one core in the processor.






          share|cite|improve this answer









          $endgroup$









          • 1




            $begingroup$
            Matlab has built in multi-processor parallel coding (has been around for at least 5 years - (for example the 'parfor loop'
            $endgroup$
            – DavidG
            Jan 8 at 6:22










          • $begingroup$
            Thanks @Andrei for your answer. I know about the parfor loop, and in certain circumstances, I use vectorization rather than for loop in order to run faster (whenever possible). It is just that I think matlab is too heavy for my laptop. Besides, I don't know if C/C++ has the functions that I need.
            $endgroup$
            – mohd
            Jan 8 at 6:25








          • 1




            $begingroup$
            @mohd - If you are using either Windows or Mac, you may want to consider using a Linux Distro. I use Ubuntu primarily and I've found that Matlab (overall) performs much better in a Linux environment.
            $endgroup$
            – DavidG
            Jan 8 at 6:31






          • 1




            $begingroup$
            You can also use a lot of the C/C++ binders/wrappers in Python too. But as Andrei pointed out, it's still an interpretive language and as such will not be as efficient.
            $endgroup$
            – DavidG
            Jan 8 at 6:36














          2












          2








          2





          $begingroup$

          I would use C/C++. In any interpreted language (Matlab, Python, etc), writing for loops is extremely inefficient. That's why in Matlab for example you can write an external library in C. The speed up is at least one order of magnitude. The advantage of C++ is that you can also (with some effort) write nice parallel code, to use more than one core in the processor.






          share|cite|improve this answer









          $endgroup$



          I would use C/C++. In any interpreted language (Matlab, Python, etc), writing for loops is extremely inefficient. That's why in Matlab for example you can write an external library in C. The speed up is at least one order of magnitude. The advantage of C++ is that you can also (with some effort) write nice parallel code, to use more than one core in the processor.







          share|cite|improve this answer












          share|cite|improve this answer



          share|cite|improve this answer










          answered Jan 8 at 6:20









          AndreiAndrei

          11.8k21026




          11.8k21026








          • 1




            $begingroup$
            Matlab has built in multi-processor parallel coding (has been around for at least 5 years - (for example the 'parfor loop'
            $endgroup$
            – DavidG
            Jan 8 at 6:22










          • $begingroup$
            Thanks @Andrei for your answer. I know about the parfor loop, and in certain circumstances, I use vectorization rather than for loop in order to run faster (whenever possible). It is just that I think matlab is too heavy for my laptop. Besides, I don't know if C/C++ has the functions that I need.
            $endgroup$
            – mohd
            Jan 8 at 6:25








          • 1




            $begingroup$
            @mohd - If you are using either Windows or Mac, you may want to consider using a Linux Distro. I use Ubuntu primarily and I've found that Matlab (overall) performs much better in a Linux environment.
            $endgroup$
            – DavidG
            Jan 8 at 6:31






          • 1




            $begingroup$
            You can also use a lot of the C/C++ binders/wrappers in Python too. But as Andrei pointed out, it's still an interpretive language and as such will not be as efficient.
            $endgroup$
            – DavidG
            Jan 8 at 6:36














          • 1




            $begingroup$
            Matlab has built in multi-processor parallel coding (has been around for at least 5 years - (for example the 'parfor loop'
            $endgroup$
            – DavidG
            Jan 8 at 6:22










          • $begingroup$
            Thanks @Andrei for your answer. I know about the parfor loop, and in certain circumstances, I use vectorization rather than for loop in order to run faster (whenever possible). It is just that I think matlab is too heavy for my laptop. Besides, I don't know if C/C++ has the functions that I need.
            $endgroup$
            – mohd
            Jan 8 at 6:25








          • 1




            $begingroup$
            @mohd - If you are using either Windows or Mac, you may want to consider using a Linux Distro. I use Ubuntu primarily and I've found that Matlab (overall) performs much better in a Linux environment.
            $endgroup$
            – DavidG
            Jan 8 at 6:31






          • 1




            $begingroup$
            You can also use a lot of the C/C++ binders/wrappers in Python too. But as Andrei pointed out, it's still an interpretive language and as such will not be as efficient.
            $endgroup$
            – DavidG
            Jan 8 at 6:36








          1




          1




          $begingroup$
          Matlab has built in multi-processor parallel coding (has been around for at least 5 years - (for example the 'parfor loop'
          $endgroup$
          – DavidG
          Jan 8 at 6:22




          $begingroup$
          Matlab has built in multi-processor parallel coding (has been around for at least 5 years - (for example the 'parfor loop'
          $endgroup$
          – DavidG
          Jan 8 at 6:22












          $begingroup$
          Thanks @Andrei for your answer. I know about the parfor loop, and in certain circumstances, I use vectorization rather than for loop in order to run faster (whenever possible). It is just that I think matlab is too heavy for my laptop. Besides, I don't know if C/C++ has the functions that I need.
          $endgroup$
          – mohd
          Jan 8 at 6:25






          $begingroup$
          Thanks @Andrei for your answer. I know about the parfor loop, and in certain circumstances, I use vectorization rather than for loop in order to run faster (whenever possible). It is just that I think matlab is too heavy for my laptop. Besides, I don't know if C/C++ has the functions that I need.
          $endgroup$
          – mohd
          Jan 8 at 6:25






          1




          1




          $begingroup$
          @mohd - If you are using either Windows or Mac, you may want to consider using a Linux Distro. I use Ubuntu primarily and I've found that Matlab (overall) performs much better in a Linux environment.
          $endgroup$
          – DavidG
          Jan 8 at 6:31




          $begingroup$
          @mohd - If you are using either Windows or Mac, you may want to consider using a Linux Distro. I use Ubuntu primarily and I've found that Matlab (overall) performs much better in a Linux environment.
          $endgroup$
          – DavidG
          Jan 8 at 6:31




          1




          1




          $begingroup$
          You can also use a lot of the C/C++ binders/wrappers in Python too. But as Andrei pointed out, it's still an interpretive language and as such will not be as efficient.
          $endgroup$
          – DavidG
          Jan 8 at 6:36




          $begingroup$
          You can also use a lot of the C/C++ binders/wrappers in Python too. But as Andrei pointed out, it's still an interpretive language and as such will not be as efficient.
          $endgroup$
          – DavidG
          Jan 8 at 6:36


















          draft saved

          draft discarded




















































          Thanks for contributing an answer to Mathematics Stack Exchange!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid



          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.


          Use MathJax to format equations. MathJax reference.


          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmath.stackexchange.com%2fquestions%2f3065859%2fbest-programming-language-for-solving-numerical-pdes%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          Can a sorcerer learn a 5th-level spell early by creating spell slots using the Font of Magic feature?

          Does disintegrating a polymorphed enemy still kill it after the 2018 errata?

          A Topological Invariant for $pi_3(U(n))$