标签: equation-solving

用R求解联立方程

假设我有以下等式:

 x + 2y + 3z = 20  
2x + 5y + 9z = 100  
5x + 7y + 8z = 200
Run Code Online (Sandbox Code Playgroud)

如何解决这些方程x,yz?如果可能,我想使用R或任何其他计算机工具来解决这些方程式.

r equation-solving

33
推荐指数
3
解决办法
3万
查看次数

SymPy - 任意数量的符号

我正在编写一个函数来解决任意数量的联立方程.方程的数量由函数的一个参数设置,每个方程由许多符号构成 - 与方程一样多的符号.这意味着我不能简单地对方程式进行硬编码,甚至不需要将方程组合在一起所需的符号; 该函数需要能够处理任意数量的方程.所以,我的问题是,我如何生成符号列表?

我有一个可能的解决方案,但我的直觉告诉我,它不会非常有效.如果有更好的方法,请告诉我.

我是SymPy的新手,我仍然在摸索着.据我所知,符号需要用字符串定义.因此,我可以通过在字母上添加递增数字(例如't0','t1'等)来生成一系列字符串,将它们添加到列表中,然后使用这些字符串作为参数创建符号.这些符号本身将存储在列表中,并用于生成方程式.

def solveEquations(numEquations):
    symbolNameList = []
    symbolList = []
    equationList = []
    for i in range(numEquations):
        name = 't' + str(i)
        symbolNameList.append(name)
        symbolList.append(Symbol(name))

    for i in range(numEquations):
        equation = 0
        for sym in symbolList:
            equation += sym ** i # Or whatever structure the equation needs
        equationList.append(equation)


    #Then go on to solve the equations...
Run Code Online (Sandbox Code Playgroud)

这是最好的方法吗,还是有更有效的方法?

python symbols sympy equation-solving

21
推荐指数
3
解决办法
8262
查看次数

如何实现Matlab的mldivide(又名反斜杠运算符"\")

我正在尝试开发一个面向矩阵的小型数学库(我使用Eigen 3进行矩阵数据结构和操作)我想实现一些方便的Matlab函数,比如广泛使用的反斜杠运算符(相当于mldivide)以计算线性系统的解(以矩阵形式表示).

有关如何实现这一目标的详细解释吗?(我已经用经典的SVD分解实现了Moore-Penrose伪反向pinv函数,但我读过的地方A\b并不总是如此pinv(A)*b,至少Matalb并不是那么简单)

谢谢

c++ matlab matrix linear-algebra equation-solving

19
推荐指数
1
解决办法
2万
查看次数

方程式线程:为什么默认行为?

我最近重新发现了Roman Maeder的一个小包,它告诉Mathematica自动在算术和类似函数上进行线程,例如x == y.链接到Maeder的包裹.

首先,为了演示,这是Maeder给出的一个例子:

In[1]:= Needs["EqualThread`"]
Run Code Online (Sandbox Code Playgroud)

现在继续使用线程行为来解决x'手动'的以下等式:

In[7]:= a == b Log[2 x]
In[8]:= %/b
Out[8]:= a/b == Log[2 x]
Run Code Online (Sandbox Code Playgroud)

取指数:

In[9]:= Exp[%]
Out[9]= E^(a/b) == 2 x
Run Code Online (Sandbox Code Playgroud)

除以2:

In[10]:= %/2
Out[10]= (E^(a/b))/2 == x
Run Code Online (Sandbox Code Playgroud)

问:从设计角度来看,有人可以解释为什么Mathematica默认设置为这样吗?自动线程似乎是Mathematica初学者所期望的行为类型 - 至少对我来说 - 也许某人可以提供一个或两个会导致整个系统出现问题的例子.(并随意指出任何mathematica无知...)

wolfram-mathematica equations equation-solving

14
推荐指数
2
解决办法
323
查看次数

求解具有两个未知数的两个方程的系统

求解下面两个未知数的两个方程组的系统:

在此输入图像描述

a1,b1,c1,a2,b2和c2由用户自己输入.

我一直试图找到问题的数学解决方案,我似乎无法走远...

到目前为止我尝试过的是:

  1. 从第一个方程找到y.(b1y = c1-a1x,y =(c1-a1x)/ b1)
  2. 然后我在第二个等式中替换y,得到一个方程式,其中1个未知数,在这种情况下为x.但是,我无法解决这个等式,我得到了一些奇数/方程式并停在这里.

这是正确的还是有更简单的方法来做到这一点?

当前代码:

#include <iostream>

using namespace std;

int main()
{
    int a1, b1, c1, a2, b2, c2;
    cout << "Enter the values for the first equation." << endl;
    cout << "Enter the value for a1" << endl;
    cin >> a1;
    cout << "Enter the value for b1" << endl;
    cin >> b1;
    cout << "Enter the value for c1" << endl;
    cin >> c1;
    cout << "Enter the values for …
Run Code Online (Sandbox Code Playgroud)

c++ math equation equation-solving

10
推荐指数
1
解决办法
2万
查看次数

有什么好的库可以解决C++中的非线性方程组?

在我正在编码的C++应用程序中,我需要求解一个非线性方程组(N方程,N个未知数).

我正在解决的系统相当小(最多10个方程/未知数),因此性能不会成为真正的问题.我在网上搜索了一些非线性解算器库,我无法找到一些看起来很容易使用的东西(得到了NOXC/C++ Minpack,但似乎对我的需求来说都是一种矫枉过正) .

为此目的,易于使用的库的任何想法和想法?

c++ math libraries equation-solving

9
推荐指数
1
解决办法
1万
查看次数

算法 - 求解一个变量的线性方程

给定一个字符串形式的表达式,求解x.表达式中x的最高幂将等于1.允许的运算符为+,*和 - .这些都是二元运算符.因此,2x将被写为2*x.每个操作员后面都会跟一个单词或一个常数.

例如,请考虑以下等式:

2*X + 5-(4*X-7 +(4-2))= 10*X-9

这是一个完全有效的方程式.形式1*2*3的表达式无效,但1*(2*3)有效.

给定这样的等式,我们需要找到x的解决方案.如果等式无效,程序应显示错误消息.

有人可以解释如何解决这个问题吗?我现在唯一想到的就是使用Context Free Grammars进行词法分析和解析.但我觉得有一个比这更简单的解决方案.有人可以对它有所启发吗?

string algorithm equation-solving

9
推荐指数
1
解决办法
1844
查看次数

如何用编程语言解决数学方程式?

我需要帮助来解决这个公式((n * 2) + 10) / (n + 1) = 3,最好是在PHP中.(数字2,10和3应该是可以更改的变量.)

我很容易在纸上解决这个等式.但是,当我尝试在PHP中实现它时,我不知道从哪里开始.我已经在这里完成了几个谷歌查询和搜索,似乎没有任何帮助.我错过了处理这个问题的正确方法.

任何提示和指示都会很棒,如果你提供确切的代码,请解释你如何得到这个结果.

php math equation equation-solving

8
推荐指数
3
解决办法
2万
查看次数

关于检查C++中的集合是否是代数组的几个问题

我开始创建一个用抽象代数做事的库.现在我正在尝试创建一个检查集合是否为组的函数.它应该是不言自明的:

在数学中,一个群体是一组元素,同时结合了任何两个元素的运算,形成满足四个条件的第三个元素,称为群组公理,即闭包,关联性,同一性和可逆性.组中最熟悉的一个例子是整数集和加法运算; 任何两个整数的加法形成另一个整数.(http://en.wikipedia.org/wiki/Group_(mathematics))

#include <set>
#include <iostream>

template <typename ObType, typename BinaryFunction>
bool isGroup(const std::set<ObType> & S, BinaryFunction & op)
{
    /*
       isGroup returns true or false depending on whether the set S
       along with the operator op is a group in the Algebraic sense.
       That is, S is a group if and only if all the 4 following
       conditions are true: 
            (1) If a, b in S, then a op b in S
            (2) If a, …
Run Code Online (Sandbox Code Playgroud)

c++ algorithm math linear-algebra equation-solving

8
推荐指数
1
解决办法
352
查看次数

Pythonic方式管理任意数量的变量,用于方程求解.

没有直接的例子,这有点难以解释.因此,让我们以非常简单的理想气体定律为例.对于正常情况下的理想气体,下列等式成立:

PV = RT
Run Code Online (Sandbox Code Playgroud)

这意味着如果我们知道4个变量中的3个(压力,体积,特定气体常数和温度),我们可以解决另一个变量.

我怎么把它放在一个物体里?我想有一个对象,我可以插入3个变量,然后计算第4个.我想知道这是否可以通过属性来实现?

我目前最好的猜测就是插入它:

class gasProperties(object):
    __init__(self, P=None, V=None, R=None, T=None)
        self.setFlowParams(P, V, R, T)
    def setFlowParams(self, P=None, V=None, R=None, T=None)
        if P is None:
            self._P = R*T/V
            self._V = V
            self._R = R
            self._T = T
        elif V is None:
            self._V = R*T/P
            self._P = P
            self._R = R
            self._T = T
        #etc
Run Code Online (Sandbox Code Playgroud)

虽然这很麻烦,而且容易出错(我必须添加检查以确定其中一个参数设置为"None").

有更好,更清洁的方式吗?

我看到这种"问题"经常以各种各样的方式发生,特别是一旦变量数量增加(增加密度,雷诺数,混合粘度),不同if语句的数量就会快速增长.(IE如果我有8个变量,任何5个使系统唯一,我需要8 nCr 5 = 56 if语句).

python equation-solving

8
推荐指数
1
解决办法
1015
查看次数