ImageVerifierCode 换一换
格式:DOCX , 页数:13 ,大小:16.95KB ,
资源ID:7459847      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/7459847.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(复数类Java实现.docx)为本站上传会员【xrp****65】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

复数类Java实现.docx

1、/* * 操作复数的类Complex * * 周长发编制 */ package javaalgorithm.algorithm; /** * 操作复数的类Complex * @author 周长发 * @version 1.0 */ public class Complex { private double real = 0.0; // 复数的实部 private double imaginary = 0.0; // 复数的虚部 private double eps = 0.0; // 缺省精度 /

2、 * 基本构造函数 */ public Complex() { } /** * 指定值构造函数 * * @param dblX - 指定的实部 * @param dblY - 指定的虚部 */ public Complex(double dblX, double dblY) { real = dblX; imaginary = dblY; } /** * 拷贝构造函数 * * @param other - 源复数 */ public Complex(Complex

3、 other) { real = other.real; imaginary = other.imaginary; } /** * 根据"a,b"形式的字符串来构造复数,以a为复数的实部,b为复数的虚部 * * @param s - "a,b"形式的字符串,a为复数的实部,b为复数的虚部 * @param sDelim - a, b之间的分隔符 */ public Complex(String s, String sDelim) { setValue(s, sDelim); } /** * 设置复数运算

4、的精度 * * @param newEps - 新的精度值 */ public void setEps(double newEps) { eps = newEps; } /** * 取复数的精度值 * * @return double型,复数的精度值 */ public double getEps() { return eps; } /** * 指定复数的实部 * * @param dblX - 复数的实部 */ public void setReal(double

5、 dblX) { real = dblX; } /** * 指定复数的虚部 * * @param dblY - 复数的虚部 */ public void setImag(double dblY) { imaginary = dblY; } /** * 取复数的实部 * * @return double 型,复数的实部 */ public double getReal() { return real; } /** * 取复数的虚部 * * @retur

6、n double 型,复数的虚部 */ public double getImag() { return imaginary; } /** * 指定复数的实部和虚部值 * * @param real - 指定的实部 * @param imag - 指定的虚部 */ public void setValue(double real, double imag) { setReal(real); setImag(imag); } /** * 将"a,b"形式的字符串转化为复数,以a为复数的实部,b

7、为复数的虚部 * * @param s - "a,b"形式的字符串,a为复数的实部,b为复数的虚部 * @param sDelim - a, b之间的分隔符 */ public void setValue(String s, String sDelim) { int nPos = s.indexOf(sDelim); if (nPos == -1) { s = s.trim(); real = Double.parseDouble(s); imaginary = 0; } else { int

8、 nLen = s.length(); String sLeft = s.substring(0, nPos); String sRight = s.substring(nPos+1, nLen); sLeft = sLeft.trim(); sRight = sRight.trim(); real = Double.parseDouble(sLeft); imaginary = Double.parseDouble(sRight); } } /** * 将复数转化为"a+bj"形式的字符串 * * @ret

9、urn String 型,"a+bj"形式的字符串 */ public String toString() { String s; if (real != 0.0) { if (imaginary > 0) s = new Float(real).toString() + "+" + new Float(imaginary).toString() + "j"; else if (imaginary < 0) s = new Float(real).toString() + "-" + new Float(-1*imaginar

10、y).toString() + "j"; else s = new Float(real).toString(); } else { if (imaginary > 0) s = new Float(imaginary).toString() + "j"; else if (imaginary < 0) s = new Float(-1*imaginary).toString() + "j"; else s = new Float(real).toString(); } return s;

11、 } /** * 比较两个复数是否相等 * * @param cpxX - 用于比较的复数 * @return boolean型,相等则为true,否则为false */ public boolean equal(Complex cpxX) { return Math.abs(real - cpxX.real) <= eps && Math.abs(imaginary - cpxX.imaginary) <= eps; } /** * 给复数赋值 * * @param cpxX - 用于给复数

12、赋值的源复数 * @return Complex型,与cpxX相等的复数 */ public Complex setValue(Complex cpxX) { real = cpxX.real; imaginary = cpxX.imaginary; return this; } /** * 实现复数的加法 * * @param cpxX - 与指定复数相加的复数 * @return Complex型,指定复数与cpxX相加之和 */ public Complex add(Complex cpxX)

13、{ double x = real + cpxX.real; double y = imaginary + cpxX.imaginary; return new Complex(x, y); } /** * 实现复数的减法 * * @param cpxX - 与指定复数相减的复数 * @return Complex型,指定复数减去cpxX之差 */ public Complex subtract(Complex cpxX) { double x = real - cpxX.real; double y = i

14、maginary - cpxX.imaginary; return new Complex(x, y); } /** * 实现复数的乘法 * * @param cpxX - 与指定复数相乘的复数 * @return Complex型,指定复数与cpxX相乘之积 */ public Complex multiply(Complex cpxX) { double x = real * cpxX.real - imaginary * cpxX.imaginary; double y = real * cpxX.im

15、aginary + imaginary * cpxX.real; return new Complex(x, y); } /** * 实现复数的除法 * * @param cpxX - 与指定复数相除的复数 * @return Complex型,指定复数除与cpxX之商 */ public Complex divide(Complex cpxX) { double e, f, x, y; if (Math.abs(cpxX.real) >= Math.abs(cpxX.imaginary))

16、 { e = cpxX.imaginary / cpxX.real; f = cpxX.real + e * cpxX.imaginary; x = (real + imaginary * e) / f; y = (imaginary - real * e) / f; } else { e = cpxX.real / cpxX.imaginary; f = cpxX.imaginary + e * cpxX.real;

17、 x = (real * e + imaginary) / f; y = (imaginary * e - real) / f; } return new Complex(x, y); } /** * 计算复数的模 * * @return double型,指定复数的模 */ public double abs() { // 求取实部和虚部的绝对值 double x = Math.abs(real); double y = Math.abs(ima

18、ginary); if (real == 0) return y; if (imaginary == 0) return x; // 计算模 if (x > y) return (x * Math.sqrt(1 + (y / x) * (y / x))); return (y * Math.sqrt(1 + (x / y) * (x / y))); } /** * 计算复数的根 * * @param n - 待求根的根次

19、 * @param cpxR - Complex型数组,长度为n,返回复数的所有根 */ public void root(int n, Complex[] cpxR) { if (n<1) return; double q = Math.atan2(imaginary, real); double r = Math.sqrt(real*real + imaginary*imaginary); if (r != 0) { r = (1.0/n)*Math.log(r); r = Math

20、exp(r); } for (int k=0; k<=n-1; k++) { double t = (2.0*k*3.1415926+q)/n; cpxR[k] = new Complex(r*Math.cos(t), r*Math.sin(t)); } } /** * 计算复数的实幂指数 * * @param dblW - 待求实幂指数的幂次 * @return Complex型,复数的实幂指数值 */ public Complex pow(double dblW)

21、 { // 常量 final double PI = 3.14159265358979; // 局部变量 double r, t; // 特殊值处理 if ((real == 0) && (imaginary == 0)) return new Complex(0, 0); // 幂运算公式中的三角函数运算 if (real == 0) { if (imaginary > 0) t = 1.5707963268;

22、 else t = -1.5707963268; } else { if (real > 0) t = Math.atan2(imaginary, real); else { if (imaginary >= 0) t = Math.atan2(imaginary, real) + PI; else t = Math.atan2(imagina

23、ry, real) - PI; } } // 模的幂 r = Math.exp(dblW * Math.log(Math.sqrt(real * real + imaginary * imaginary))); // 复数的实幂指数 return new Complex(r * Math.cos(dblW * t), r * Math.sin(dblW * t)); } /** * 计算复数的复幂指数 * * @param cpxW - 待求复幂指数的幂次 *

24、@param n - 控制参数,默认值为0。当n=0时,求得的结果为复幂指数的主值 * @return Complex型,复数的复幂指数值 */ public Complex pow(Complex cpxW, int n) { // 常量 final double PI = 3.14159265358979; // 局部变量 double r, s, u, v; // 特殊值处理 if (real == 0) { if (imaginary == 0) return n

25、ew Complex(0, 0); s = 1.5707963268 * (Math.abs(imaginary) / imaginary + 4 * n); } else { s = 2 * PI * n + Math.atan2(imaginary, real); if (real < 0) { if (imaginary > 0) s = s + PI;

26、else s = s - PI; } } // 求幂运算公式 r = 0.5 * Math.log(real * real + imaginary * imaginary); v = cpxW.real * r + cpxW.imaginary * s; u = Math.exp(cpxW.real * r - cpxW.imaginary * s); return new Complex(u * Math.cos(v), u * Math.sin(

27、v)); } /** * 计算复数的自然对数 * * @return Complex型,复数的自然对数值 */ public Complex log() { double p = Math.log(Math.sqrt(real*real + imaginary*imaginary)); return new Complex(p, Math.atan2(imaginary, real)); } /** * 计算复数的正弦 * * @return Complex型,复数的正弦值 */ publ

28、ic Complex sin() { int i; double x, y, y1, br, b1, b2; double[] c = new double[6]; // 切比雪夫公式的常数系数 c[0] = 1.13031820798497; c[1] = 0.04433684984866; c[2] = 0.00054292631191; c[3] = 0.00000319843646; c[4] = 0.00000001103607; c[5] = 0

29、00000000002498; y1 = Math.exp(imaginary); x = 0.5 * (y1 + 1 / y1); br = 0; if (Math.abs(imaginary) >= 1) y = 0.5 * (y1 - 1 / y1); else { b1 = 0; b2 = 0; y1 = 2 * (2 * imaginary * imaginary - 1); for (i = 5; i >=0

30、 --i) { br = y1 * b1 - b2 - c[i]; if (i != 0) { b2 = b1; b1 = br; } } y = imaginary * (br - b1); } // 组合计算结果 x = x * Math.sin(real); y = y * Math.cos(

31、real); return new Complex(x, y); } /** * 计算复数的余弦 * * @return Complex型,复数的余弦值 */ public Complex cos() { int i; double x, y, y1, br, b1, b2; double[] c = new double[6]; // 切比雪夫公式的常数系数 c[0] = 1.13031820798497; c[1] = 0.0443368498486

32、6; c[2] = 0.00054292631191; c[3] = 0.00000319843646; c[4] = 0.00000001103607; c[5] = 0.00000000002498; y1 = Math.exp(imaginary); x = 0.5 * (y1 + 1 / y1); br = 0; if (Math.abs(imaginary) >= 1) y = 0.5 * (y1 - 1 / y1); else {

33、 b1 = 0; b2 = 0; y1 = 2 * (2 * imaginary * imaginary - 1); for (i=5 ; i>=0; --i) { br = y1 * b1 - b2 - c[i]; if (i != 0) { b2 = b1; b1 = br; } } y = imaginary * (br - b1); } // 组合计算结果 x = x * Math.cos(real); y = -y * Math.sin(real); return new Complex(x, y); } /** * 计算复数的正切 * * @return Complex型,复数的正切值 */ public Complex tan() { return sin().divide(cos()); } }

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服