查找隐式函数的弧长

时间:2017-10-12 12:42:22

标签: matlab

我想转换功能

f(x)= x ^ 2 + y ^ 2 -4.5 * sin(x * y)-1。

由x = r cos(t)和y = r sin(t)形成极性形式。替换为极坐标的代码是

  .................
  ......................
 Iterator<Row> rowIterator = sheet.rowIterator();

    while(rowIterator.hasNext()) {
        XSSFRow currentRow = (XSSFRow) rowIterator.next();
        Iterator<Cell> cellIterator = currentRow.cellIterator();
        while(cellIterator.hasNext()) {
            XSSFCell currentCell = (XSSFCell) cellIterator.next();

            if(currentCell.getStringCellValue().equalsIgnoreCase("xxxxxx")){
                        sheet.shiftRows(13, sheet.getLastRowNum(), 10);//java.util.ConcurrentModificationException

                        //fill these cells just created
            }
        }
    }

我的功能变为

t=linspace(0,2*pi);
x=r*cos(t)
y=r*sin(t)

但现在我的任务是根据角度t求解半径r,然后使用f(t)=(r.*cos(t)).^2 + (r.*sin(t)).^2 - 4.5.*sin((r.*cos(t)).*(r.*sin(t))) - 1 计算不同角度的不同半径。在基本方程方面,我无法用方程f(t)= 0来求解r。怎么做的?

1 个答案:

答案 0 :(得分:0)

首先定义相关的syms,然后使用solve函数求解:

syms r t;
solutions = solve((r*cos(t))^2 + (r*sin(t))^2 - 4.5*sin((r*cos(t))*(r*sin(t))) - 1, r);

对于这种情况,您不需要在运算符之前使用点。

此外,您可以将(r*cos(t))^2 + (r*sin(t))^2替换为r^2

来简化它
solutions = solve(r^2 - 4.5*sin((r*cos(t))*(r*sin(t)), r);