rootfunctions.java~1~
来自「一个一元曲线多项式数值演示例子」· JAVA~1~ 代码 · 共 296 行
JAVA~1~
296 行
package numbercruncher.rootutils;import java.util.Hashtable;import numbercruncher.mathutils.Function;/** * Load into a global table the functions whose roots we want to find. */public class RootFunctions{ /** global function table */ private static Hashtable TABLE = new Hashtable(32); // Enter the functions into the global function table. static { enterFunctions(); } /** * Return the function with the given hash key * @param key the hash key * @return the function */ public static Function function(String key) { return (Function) TABLE.get(key); } /** * Enter all the functions into the global function table. */ private static void enterFunctions() { // Function f(x) = x^2 - 4 // f'(x) = 2x TABLE.put( "x^2 - 4", new Function() { public float at(float x) { return x*x - 4; } public float derivativeAt(float x) { return 2*x; } }); // Function f(x) = -x^2 + 4x + 5 // f'(x) = -2x + 4 TABLE.put( "-x^2 + 4x + 5", new Function() { public float at(float x) { return -x*x + 4*x + 5; } public float derivativeAt(float x) { return -2*x + 4; } }); // Function f(x) = x^3 + 3x^2 - 9x - 10 // f'(x) = 3x^2 + 6x - 9 TABLE.put( "x^3 + 3x^2 - 9x - 10", new Function() { public float at(float x) { return x*x*x + 3*x*x - 9*x - 10; } public float derivativeAt(float x) { return 3*x*x + 6*x - 9; } }); // Function f(x) = x^2 - 2x + 3 // f'(x) = 2x - 2 TABLE.put( "x^2 - 2x + 3", new Function() { public float at(float x) { return x*x - 2*x + 3; } public float derivativeAt(float x) { return 2*x - 2; } }); // Function f(x) = 2x^3 - 10x^2 + 11x - 5 // f'(x) = 6x^2 - 20x + 11 TABLE.put( "2x^3 - 10x^2 + 11x - 5", new Function() { public float at(float x) { return 2*x*x*x - 10*x*x + 11*x - 5; } public float derivativeAt(float x) { return 6*x*x - 20*x + 11; } }); // Function f(x) = e^-x - x // f'(x) = -e^-x - 1 TABLE.put( "e^-x - x", new Function() { public float at(float x) { return ((float) Math.exp(-x)) - x; } public float derivativeAt(float x) { return (float) -Math.exp(-x) - 1; } }); // Function f(x) = x - e^(1/x) // f'(x) = 1 + (1/x^2)e^(1/x) TABLE.put( "x - e^(1/x)", new Function() { public float at(float x) { return x - ((float) Math.exp(1/x)); } public float derivativeAt(float x) { return 1 + (1/(x*x))*((float) Math.exp(1/x)); } }); // Function g(x) = (x + 4/x)/2 TABLE.put( "(x + 4/x)/2", new Function() { public float at(float x) { return (x + 4/x)/2; } }); // Function g(x) = 4/x TABLE.put( "4/x", new Function() { public float at(float x) { return 4/x; } }); // Function g(x) = sqrt(x + 2) TABLE.put( "sqrt(x + 2)", new Function() { public float at(float x) { return (float) Math.sqrt(x + 2); } }); // Function g(x) = 2/x + 1 TABLE.put( "2/x + 1", new Function() { public float at(float x) { return 2/x + 1; } }); // Function g(x) = x^2 - 2 TABLE.put( "x*x - 2", new Function() { public float at(float x) { return x*x - 2; } }); // Function g(x) = e^-x TABLE.put( "exp(-x)", new Function() { public float at(float x) { return (float) Math.exp(-x); } }); // Function g(x) = -ln(x) TABLE.put( "-log(x)", new Function() { public float at(float x) { return (float) -Math.log(x); } }); // Function g(x) = e^(1/x) TABLE.put( "exp(1/x)", new Function() { public float at(float x) { return (float) Math.exp(1/x); } }); // Function g(x) = (x + e^(1/x))/2 TABLE.put( "(x + exp(1/x))/2", new Function() { public float at(float x) { return (x + ((float) Math.exp(1/x)))/2; } }); // Function g(x) = 1/ln(x) TABLE.put( "1/log(x)", new Function() { public float at(float x) { return 1/((float) Math.log(x)); } }); // Function g(x) = sin(x)/2 + 1 TABLE.put( "sin(x)/2 + 1", new Function() { public float at(float x) { return ((float) Math.sin(x)/2) + 1; } }); // Function g(x) = 1 + 1/x + 1/x^2 TABLE.put( "1 + 1/x + 1/(x*x)", new Function() { public float at(float x) { return 1 + 1/x + 1/(x*x); } }); // Function g(x) = 20/(x^2 + 2x + 10) TABLE.put( "20/(x*x + 2*x + 10)", new Function() { public float at(float x) { return 20/(x*x + 2*x + 10); } }); }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?