首页 > 编程知识 正文

一元二次方程求导公式,一元二次方程求偏导

时间:2023-05-03 20:10:46 阅读:240353 作者:3714

/** * 这个类,实现对函数的求导算法 * 最大目标 实现对任意多元函数的偏导数和全导数的求导算法 * 最小目标 实现对一元N次函数的求导算法 * * @author Administrator */public class SystemMathTools { /* * 还不是很完善,需要进一步修改。。。 * * by comsci 2019.2.4 经过进一步的修改,完善了一些,但是算符的替换仍然有点问题 * * x*x+3*x+1 * 一元N次方程组的导数,给出字符串变量的导数形式,用导数公式来生成导数 * * DerivedFunction(原函数) * 输出 导数函数 * n*x*x+n*x+1 类似这种一元N次方程的导数,先计算出指数,在进行求导公式演算 * * 1: 分割字符串,读出子字符串 2: 读入子字符串,统计变量X相乘的个数是几个?统计出指数 * 3: 用指数乘以子字符串,然后删除一个变量X,形成子串导数 * 4: 用新的子串导数替换原来的子串函数 * * */ public static int counter(String string, String a) { int m; int i = string.length() - string.replace(a, "").length(); m = i / a.length(); // System.out.println("x指数为:" + m); return m; } public static String deleteString(String str1, String str2) { StringBuffer sb = new StringBuffer(str1); String str3; int index = sb.indexOf(str2); if (index == -1) { } str3 = sb.delete(index, index + str2.length()).toString(); return str3; } public static void main(String[] args) { String str = "n*x*x*x+m*x*x-s*x+1";//一元三次方程 String str1 = "n*x*x+m*x-2";//一元二次方程 String str2 = "n*x*x*x*x+m*x*x*x-s*x*x+k*x+3";//一元四次方程 StringBuffer str4 = new StringBuffer(); System.out.println("原函数为:" + str2); String[] strArray = str2.split("\+|\-");//分割为子串,以便分别求导 //如果字符串的子串有N个,那么需要增加一个FOR循环,完全读出所有的子串 for (int i = 0; i < strArray.length; i++) { if (strArray[i].trim().indexOf("x") != -1) { System.out.println(strArray[i].trim() + " x指数为:" + counter(strArray[i].trim(), "x")); str4.append(counter(strArray[i].trim(), "x") + "*" + deleteString(strArray[i].trim(), "*x") + "+"); if (i == strArray.length - 2) { str4.deleteCharAt(str4.length() - 1); System.out.println("导数为:" + str4); } } } }}

 

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。