Pull to refresh
  • by relevance
  • by date
  • by rating

Пишем «калькулятор» на C#. Часть I. Вычисление значения, производная, упрощение, и другие гуси

Programming *.NET *C# *Mathematics *
Привет!

Калькулятор у нас почему-то ассоциируется с чем-то, что должен написать каждый новичок. Возможно потому, что исторически компьютеры с той целью и создавались, чтобы считать. Но мы будем писать непростой калькулятор, не sympy конечно, но чтобы умел базовые алгебраические операции, типа дифференциирования, симплификации, а также фичи типа компиляции для ускорения вычислений.

Меньше воды! О чем статья?
Здесь будет поверхностно о построении выражения, парсинге из строки, подстановки переменной, аналитической производной, численным решении уравнения и определенного интеграла, рендеринг в формат LaTeX, комплексных числах, компиляцией функций, упрощении, раскрытии скобок, и бла бла бла. Вероятно, не в одной статье.
Для тех, кому нужно срочно что-нибудь склонировать, ссылка на репозиторий.

Берем оставшиеся с нового года печеньки, и погнали!
Читать дальше →
Total votes 34: ↑34 and ↓0 +34
Views 32K
Comments 15

Пишем «калькулятор». Часть II. Решаем уравнения, рендерим в LaTeX, ускоряем функции до сверхсветовой

Programming *.NET *C# *Mathematics *
Привет!

Итак, в первой части мы уже неплохо поработали, сделав производную, упрощение, и компиляцию. Так, а что еще должен уметь наш простенький калькулятор? Ну хотя бы уравнения вида

$(x - b)(\tan(\sin(x))^2 - 3\tan(\sin(x)) + c) = 0$

точно должен решать. А еще красиво нарисовать это дело в латехе, и будет прямо хорошо! Погнали!



Читать дальше →
Total votes 18: ↑18 and ↓0 +18
Views 8.3K
Comments 10

Developing a symbolic-expression library with C#. Differentiation, simplification, equation solving and many more

Open source *Programming *.NET *C# *Mathematics *
Hello!

[UPD from 12.06.2021: if you're looking for a symbolic algebra library, AngouriMath is actively developed. It's on Github and has a website. Discord for questions]

Why does programming a calculator seem to be a task, which every beginner undertakes? History might have the answer — computers were created for this exact purpose. Unlike the beginners, we will develop a smart calculator, which, although won't reach the complexity of SymPy, will be able to perform such algebraic operations as differentiation, simplification, and equations solving, will have built-in latex support, and have implemented features such as compilation to speed up the computations.

What are the articles about?
It will superficially tell about assembling an expression, parsing from a string, variable substitution, analytic derivative, equation numerical solving, and definite integration, rendering to LaTeX format, complex numbers, compiling functions, simplifying, expanding brackets, and blah blah blah.
For those who urgently need to clone something, repository link.

Let's do it!
Read more →
Total votes 6: ↑5 and ↓1 +4
Views 3.6K
Comments 0

Тензоры для C#. И матрицы, и векторы, и кастомный тип, и сравнительно быстро

.NET *C# *Mathematics *
Привет!

Понадобились мне как-то тензоры (расширения матриц) для моего проектика. Погуглил, нашел целый ряд всяких библиотек, все вокруг да около, а чего нужно — нет. Пришлось реализовать пятидневку и имплементировать то, что надо. Короткая заметка о работе с тензорами и трюках оптимизации.


Читать дальше →
Total votes 14: ↑13 and ↓1 +12
Views 4.4K
Comments 15

Jupyter для .NET. «Как в питоне»

.NET *C# *Mathematics *F# *
Несколько месяцев назад Microsoft рассказали о Jupyter в .NET. Но активности по этому топику очень мало, а ведь тема очень интересная. Но что такое прикольное придумать? Я решил сделать удобный вывод класса Entity из библиотеки символьной алгебры:



Выглядит круче, чем в питоне. Делается просто, доставляет массу удовольствия. Приглашаю под кат!
Читать дальше →
Total votes 24: ↑24 and ↓0 +24
Views 7K
Comments 11

Jupyter for .NET. «Like Python»

.NET *C# *Mathematics *F# *
Translation
A few months ago Microsoft announced about the creation of Jupyter for .NET. However, people are barely interested in it despite how attractive the topic is. I decided to make a LaTeX wrapper for the Entity class from a symbolic algebra library:



Looks awesome. Is simple. Very enjoyable. Let's see more!
Read more →
Total votes 2: ↑2 and ↓0 +2
Views 1.1K
Comments 0

Что нового в AngouriMath 1.2?

.NET *Algorithms *C# *Mathematics *F# *

Спустя 210 дней, 600 коммитов, десятки дебажных ночей и тысячи сообщений в обсуждениях проекта, я таки выпустил релиз AngouriMath 1.2.

Это небольшая опен-сорсная библиотека символьной алгебры для C# и F#, но вдруг кому-нибудь интересно?

Читать далее
Total votes 24: ↑24 and ↓0 +24
Views 1.8K
Comments 2

Компилируем математические выражения

Programming *.NET *Algorithms *C# *Mathematics *

Хочу рассказать свою реализацию компиляции математических выражений. Будем компилировать в функцию от произвольных аргументов. В планах:

1. Арифметические операции, тригонометрия, и другие численные функции.

2. Булева алгебра (логика), логические операторы (и, или, и т. д.), а так же знаки сравнения.

3. Произвольные типы в качестве входных, выходных, и промежуточных.

Приятного чтения!

Читать далее
Total votes 25: ↑25 and ↓0 +25
Views 5.1K
Comments 25

Compilation of math functions into Linq.Expression

Programming *.NET *Algorithms *C# *Mathematics *

Here I am going to cover my own approach to compilation of mathematical functions into Linq.Expression. What we are going to have implemented at the end:

1. Arithmetical operations, trigonometry, and other numerical functions

2. Boolean algebra (logic), less/greater and other operators

3. Arbitrary types as the function's input, output, and those intermediate

Hope it's going to be interesting!

Read more →
Total votes 4: ↑4 and ↓0 +4
Views 3.9K
Comments 1

AngouriMath 1.3 update

Open source *.NET *C# *Mathematics *F# *

Four months of awesome work together with a few new contributors finally result in a new major release, which I'm happy to announce about.

Now we get completely new matrices, improved parser, a lot of new functions, almost rewritten interactive package (for working in Jupyter) and many more.

This article about a big update in a FOSS symbolic algebra library for .NET, I hope it may be interesting for someone!

Read more
Total votes 5: ↑5 and ↓0 +5
Views 2.8K
Comments 0

Обновление AngouriMath 1.3

Open source *.NET *C# *Mathematics *F# *
Sandbox
Translation

Четыре месяца работы вместе с небольшим количеством новых контрибьютеров наконец-то дали свои плоды в виде нового большого релиза, с которым с удовольствием автор хочет Вас познакомить

Теперь в AngouriMath есть инструменты работы с матрицами, улучшенный парсер, много новых функций, практически полностью переписанный пакет Interactive (для работы в Jupyter) и многое другое.

Эта статья повествует о большом обновлении в FOSS библиотеке символьной алгебры для .NET

Читать далее
Total votes 10: ↑10 and ↓0 +10
Views 1.7K
Comments 0