精华内容
下载资源
问答
  • 二阶常系数非齐次微分方程的复数解法二阶常系数非齐次微分方程的复数解法二阶常系数非齐次微分方程的复数解法二阶常系数非齐次微分方程的复数解法
  • 复数域内微分解法

    千次阅读 2011-07-12 12:31:01
    复数域内微分解法 先考虑一个简单微分形式y'=e^x*cos x , 这种形式如果考虑分离变量法,需要采用两次局部积分法最后才能获得结果;但如果在复数域 内解答将会很简单,并且我们将验证采用数值解法的结果...
    复数域内的微分解法
    先考虑一个简单的微分形式y'=e^x*cos x ,
    这种形式如果考虑分离变量法,需要采用两次局部积分法最后才能获得结果;但如果在复数域


    内解答将会很简单,并且我们将验证采用数值解法的结果比较;
    将上面形式变为复数域的形式有:
    yy'=Re { e^x*e^ix}
    Go
    yy'=Re{e^{x(1+i)}}
    GO
    yy=Re {1/(1+i)*e^{x(1+i)}+C }  (C为实数)
    Go
    yy=Re { (1-i)/2*e^{x(1+i)}+C }
    Go
    yy=Re { 1/2*e^x*(cos x+i*sin x)  - 1/2*e^x*(i*cos x-*sin x) +C}
    Go
    yy=Re { 1/2*e^x*(cos x-sin x)  + i/2*e^x*(sin x -cos x) +C}
    回到实数领域内有:
    y= 1/2*e^x*(cos x+sin x) +C
    将y代入原微分方程可以获得解答;
    现在假设初始条件y(0)=1,这个时候C为1/2


    下面写程序来证明:
    (setq  c  0.5)




    (defun pow (num count)
    (if (or (> count 1) (eq  count  1) )
          (* num 
             (pow num 
                  (- count 1) ) )
          1))


    (defun slayer ( count)
    (if (or (> count 1) (eq  count  1) )
          (* count 
             (slayer  
                  (- count 1) ) )
          1))


    (defun slayerex (num count)
    (if (or (> count 1) (eq  count  1) )
          (* num 
             (slayerex 
                  (-  num  1) 
                  (- count 1) ) )
          1))




    (setq  e  (calc  30  1))




    (defun  transform (x1)
    (calc  30
           (mymod   x1)))


    (defun  mymod  (x)
    (/ 
        (round  x  1)
        1))


    (defun  expr (x1 y1 )
    (+  y1
        (*  0.01
            (*  (cos x1)
                (transform   x1)))))


    (defun  calc (n x)
    (if  (eq  n  0)
           1.0
        (+ (calc (1- n)
                 x)
           (*  (pow  x  
                     n)
               (/    1
                     (slayer n))))))
          
    (defun  mysqrt (x)
    (calc  10
           (*  1/2 
               (log x))))


    (defun  formula  (x)
    (+   (*  0.5
             (calc 30 x)
             (+  (cos x)
                 (sin x)))
          c))  




    (defun  exprhelp (x1 )
    (if (< (abs (-  x1  0))
           0.001)
            (formula  0)
        (expr  x1  
               (exprhelp  (-  x1  
                              0.01)))))                  


    (defun  test (n)
    (if (> n 0)
      (progn 
           (print (exprhelp n))
           (print  'compare)
           (print (formula n))      
           (test (- n  1)))
      (print 'over)))


    [365]> (test  10)


    -16685.893
    COMPARE
    -15231.83
    -2424.1306
    COMPARE
    -2021.2682
    1294.8411
    COMPARE
    1258.2537
    843.1325
    COMPARE
    774.11414
    160.25563
    COMPARE
    137.8181
    -50.077778
    COMPARE
    -49.608906
    -41.681297
    COMPARE
    -38.003887
    -9.392899
    COMPARE
    -8.025031
    2.224791
    COMPARE
    2.321959
    2.473438
    COMPARE
    2.3780246
    OVER
    OVER
    从这里可以看出误差还是有一些,不过相对已经很接近了;主要原因还是float计算能力的限


    制,比如(calc 30 x)中如果x是整数是能够计算出结果的,如果是小数就不能了;


    展开全文
  • 复数域内微分解法(温度扩散模型)将以前温度扩散模型做些改变有:y'-ky=k*cos wx (k为整数)在复数域内解答,先对左边部分采用标准解法有:u=A*e^(-kx)这样有:(yy*u)'=Re{ k*u*e^i*wx }GO(yy*u)'=Re{ k*A*e^(-k
    复数域内的微分解法(温度扩散模型)
    将以前的温度扩散模型做些改变有:
    y'-ky=k*cos wx   (k为整数)
    在复数域内解答,先对左边部分采用标准解法有:
    u=A*e^(-kx)
    这样有:
    (yy*u)'=Re{ k*u*e^i*wx }
    GO
    (yy*u)'=Re{ k*A*e^(-kx)*e^i*wx }
    Go
    (yy*u)'=Re{ k*A*e^((iw-k)x) }
    GO
    yy*u=Re{ k*A/((iw-k)*e^((iw-k)x) }  +C   (c为常数)
    GO
    yy=1/A*e^(kx) * { Re{ k*A/((iw-k)*e^((iw-k)x) }  +C }
    Go
    yy= Re{ k*1/((iw-k)*e^(iwx) }  +C *1/A*e^(kx)
    GO
    yy= Re{ k*(iw+k)/{(iw+k)*(iw-k)}*e^(iwx) }  +C*e^(kx)   (c为新常数)
    Go
    yy= Re{ -k*(iw+k)/(w^2+k^2)*e^(iwx) }  +C*e^(kx)
    注意这里设置sin s=w/sqrt((w^2+k^2)),cos s=k/sqrt((w^2+k^2))
    GO
    yy= Re{ -k*sqrt((w^2+k^2))(cos s + i*sin s)/(w^2+k^2)*e^(iwx) }  +C*e^(kx)
    Go
    yy= Re{ -k*(cos s + i*sin s)/sqrt((w^2+k^2))*e^(iwx) }  +C*e^(kx)
    GO
    采用euler公式有:
    yy= Re{ -k*e^(s*i)/sqrt((w^2+k^2))*e^(iwx) }  +C*e^(kx)
    Go
    yy= Re{ -k/sqrt((w^2+k^2))*e^(i*(s+wx) }  +C*e^(kx)
    GO
    yy= Re{ -k/sqrt((w^2+k^2))*{cos (s+wx) + i*sin (s+wx) } }  +C*e^(kx)
    取实部可以得到:
    y=-k/sqrt((w^2+k^2))*cos (s+wx)  +C*e^(kx)
    将这个值代入原微分方程发现也是对的;
    在这里假设k=2,w=2,那么s=pi/4,为了保证y为正数,设置C=1,这时候y(0)=1/2=0.5








    下面写程序来证明:
    (setq  k  2)
    (setq  w  2)
    (setq  s  (/ pi  4))
    (setq  c  1)




    (defun pow (num count)
    (if (or (> count 1) (eq  count  1) )
          (* num 
             (pow num 
                  (- count 1) ) )
          1))


    (defun slayer ( count)
    (if (or (> count 1) (eq  count  1) )
          (* count 
             (slayer  
                  (- count 1) ) )
          1))


    (defun slayerex (num count)
    (if (or (> count 1) (eq  count  1) )
          (* num 
             (slayerex 
                  (-  num  1) 
                  (- count 1)))
          1))




    (setq  e  (calc  30  1))




    (defun  transform (x1)
    (calc  30
           (mymod   x1)))


    (defun  mymod  (x)
    (/ 
        (round  x  1)
        1))


    y'-ky=k*cos wx 


    (defun  expr (x1 y1 )
    (+  y1
        (*  0.01
            (+  (*  k  
                    y1)
                (*  k
                    (cos (* w 
                            x1)))))))


    (defun  calc (n x)
    (if  (eq  n  0)
           1.0
        (+ (calc (1- n)
                 x)
           (*  (pow  x  
                     n)
               (/    1
                     (slayer n))))))
          
    (defun  mysqrt (x)
    (calc  10
           (*  1/2 
               (log x))))




    y=-k/sqrt((w^2+k^2))*cos (s+wx)  +C*e^(kx)


    (defun  formula  (x)
    (+  (-  0 
            (*  (/  1  
                    (sqrt (+  (pow w 2)
                              (pow k 2))))
                 k 
                 (cos  (+  s
                           (*  w 
                               x)))))
        (*  c
            (pow e 
                 (* k x)))))




    (defun  exprhelp (x1 )
    (if (< (abs (-  x1  0))
           0.001)
            (formula  0)
        (expr  x1  
               (exprhelp  (-  x1  
                              0.01)))))                  


    (defun  test (n)
    (if (> n 0)
      (progn 
           (print (exprhelp n))
           (print  'compare)
           (print (formula n))      
           (test (- n  1)))
      (print 'over)))


    [40]> (test  10)


    3.9433894E8
    COMPARE
    4.8516576E8
    5.4430508E7
    COMPARE
    6.566004E7
    7513032.5
    COMPARE
    8886119.0
    1037021.75
    COMPARE
    1202605.6
    143139.28
    COMPARE
    162754.22
    19757.676
    COMPARE
    22026.627
    2727.7017
    COMPARE
    2981.5269
    375.8228
    COMPARE
    402.80917
    51.89857
    COMPARE
    54.546585
    7.8352995
    COMPARE
    8.051779
    OVER
    OVER
    从这里可以看出结果大体还是对的,虽然误差比较大;
    从这里获得的思维是凡是出现cos ,sin的地方就换成复数域内解答问题会比较好;
    展开全文
  • 现给定两个复数的 R 和 P,要求输出两数乘积的常规形式。 输入格式: 输入在一行中依次给出两个复数的 R​1​​ , P​1​​ , R​2​​ , P​2​​ ,数字间以空格分隔。 输出格式: 在一行中按照 A+Bi 的格式...

    复数可以写成 (A+Bi) 的常规形式,其中 A 是实部,B 是虚部,i 是虚数单位,满足 pow(i,2)=−1;也可以写成极坐标下的指数形式 (R×e​(Pi)​​ ),其中 R 是复数模,P 是辐角,i是虚数单位,其等价于三角形式 R(cos§+isin§)。现给定两个复数的 R 和 P,要求输出两数乘积的常规形式。

    输入格式:

    输入在一行中依次给出两个复数的 R​1​​ , P​1​​ , R​2​​ , P​2​​ ,数字间以空格分隔。

    输出格式:

    在一行中按照 A+Bi 的格式输出两数乘积的常规形式,实部和虚部均保留 2 位小数。注意:如果 B 是负数,则应该写成 A-|B|i
    的形式。

    输入样例:

    2.3 3.5 5.2 0.4

    输出样例:

    -8.68-8.23i

    分析

    用两个变量A和B分别存放实部和虚部,主要难点在于解决什么时候需要输出“+”号,什么时候不需要。以及printf四舍五入时会保留负号,这在输出中是不符合规范的。

    代码/C++

    #include<iostream>
    #include<cmath>
    using namespace std;
    
    int main()
    {
    	double R1,P1,R2,P2,A,B;
    	cin>>R1>>P1>>R2>>P2;
    	A=R1*R2*cos(P1)*cos(P2)-R1*R2*sin(P1)*sin(P2);
    	B=R1*R2*cos(P1)*sin(P2)+R1*R2*sin(P1)*cos(P2);
    	if(A>-0.005&&A<0)A=0;
    	if(B>-0.005&&B<0)B=0;
    	if(B>=0)printf("%.2f+%.2fi",A,B);
    	else printf("%.2f%.2fi",A,B);
    	return 0;
    }
    
    展开全文
  • 高数微分方程的解法: 套用第三个公式写出来零输入响应的解的形式,然后该求导求导,该联立方程组联立方程组。 线代的解法: 这里的λ就是你刚才解出来的特征根,整个意思是要你写成r(t)=c1e^λ1t+c2eλt的形式...

    问题如下:
    在这里插入图片描述
    要求解的是零输入响应及自然响应,可以看出下面是一个复数域的解。

    解法有二,均要求先会解复变函数的方程

    解p^2+2p+2得:λ1=1+i;λ2=1-i

    高数微分方程的解法:
    在这里插入图片描述

    套用第三个公式写出来零输入响应的解的形式,然后该求导求导,该联立方程组联立方程组。

    线代的解法:
    在这里插入图片描述

    这里的λ就是你刚才解出来的特征根,整个意思是要你写成r(t)=c1e^λ1t+c2eλt的形式,那个c1,c2求法如上,等号右侧关于λ的矩阵是一个范德蒙矩阵的逆矩阵,乘以一个关于初始值的向量——而这两者都是已知的。

    而不管如何奇怪,自然频率都是你解得的特征根

    展开全文
  • 记得在初中三年级就学过求解一元二次方程,万能求根公式就...两个复数根为x1,x2.根据韦达定理 x1+x2=−b,x1x2=c x_1 + x_2 = -b, x_1 x_2 = c x1​+x2​=−b,x1​x2​=c 假定存在一个复数z使得: x1=−b2+zx2=−
  • 针对传统近似非齐次灰建模可能出现参数复数问题, 提出无偏灰色GM(1,1) 模型递推解法, 从而减少由差分方程向微分方程跳跃而导致误差问题. 给出不同初始条件下非齐次无偏GM(1,1) 模型递推预测公式,并在此...
  • 目录一、python输入输出二、迭代2.1 输入与输出2.2 解法三、拷贝3.1 拷贝实例3.2 对象的赋值3.3 浅拷贝3.4 深拷贝3.5 拷贝例如四、set4.1 题4.2 set五、复数5.1 复数的表示5.2 复数相关知识六、判断6.1 try与except...
  • 解法 时间复杂度 空间复杂度 执行用时 Ans 1 (Python) O(1)O(1)O(1) O(1)O(1)O(1) 40ms (66.56%) Ans 2 (Python) Ans 3 (Python) 解法一: class Solution: def complexNumberMultiply(self, a: ...
  • 理论上,次代数方程在复数域内一定有个根(考虑重数)。而对于超越方程就复杂多,如果有解,其解可能是一个或几个,也可能是无穷多个。一般也不存在根解析表达式。因此需要研究数值方法求得满足一定精度要求...
  • 本题要求编写程序,计算2个复数的和、差、积、商。 输入格式: 输入在一行中按照a1 b1 a2 b2的格式给出2个复数C1=a1+b1i和C2=a2+b2i的实部和虚部。题目保证C2不为0。 输出格式: 分别在4行中按照(a1+b1i) 运算符 (a2...
  • bi-quadratics equation双二次方程解法 Bezout’s method解决x2^2 (ai x1^2 + bi x1 + di) + x2 (ei x1^2 + fi x1 + gi) + (hi x1^2 + ii x1 + ji) = 0, i=1,2 matlab基本语法:1.多项式计算相当于建立数组分别...
  • 注意:需要提交是一个很庞大的复数,不要填写任何多余内容。 */ public class B03 { public static void main(String[] args) throws FileNotFoundException { BigInteger a=BigInteger.valueOf(2)...
  • 目录 一、python输入输出 二、迭代 2.1 输入与输出 2.2 解法 三、拷贝 3.1 拷贝实例 ...5.1 复数的表示 5.2 复数相关知识 六、判断 6.1 try与except 6.2 except作用 七、全局变量 7.1 ...
  • 换言之,对于给定 n 个复数空间特征值 { a​1​​ +b​1​​ i,⋯,a​n​​ +b​n​​ i},它们模为实部与虚部平方和开方,而“谱半径”就是最大模。现在给定一些复数空间特征值,请你计算并输出这些...
  • 文章目录友情提示001 第几天一、题目描述二、题解002 方格计数一、题目描述二、题解003 复数幂一、题目描述二、题解004 测试次数一、题目描述二、题解005 快速排序一、题目描述二、题解006 递增三元组一、题目描述二...
  • 作者: 【日】笹部贞市郎编 蒋声 沈宗华 庄亚栋 宫德林 佟金铭译 ...在解答时,原则上只介绍一种最恰当的解法。在必要时,在“别解”的标题下,简略地介绍另一种解法。同时,对解法要点尽可能地予以解释说明。
  • 六种方法解答一道四边形中三角形面积最大值问题浙江省平阳中学洪一平解法一: (设角转化)解法二: (极坐标法)解法三: (向量坐标法)解法四: (复数法)解法五: (旋转法)解法六: (几何旋转法)(王举老师处理方法是:作△...
  • 实验一 离散系统时域分析;一实验目的 ;... 在信号与系统和数字信号处理课程中我们知道描述线性移不变离散时间系统数学模型是常系数差分方程它与系统结构流图之间可以互相推导迭代解法也称递推解法是求
  • 文中作者提及几种解法很优雅。这里谈谈我理解。下面理解比原文繁琐,不过更适合推广到一般情况。 最直接理解是f(x)=i*x;这里x是复数。但问题是输入参数是整数,f(x)就是复数了,无法再次作为参数输入。 我...
  • 代数本质

    2008-12-26 11:47:00
    作者按:简单的说,代数就是代数方程,代数即方程。由于方程中是用一个变量来代替一个未知数得名的吧(个人妄揣)...在古代,当算术里积累了大量的,关于各种数量问题的解法后,为了寻求有系统的、更普遍的方法,以解决
  • 第二章 自动控制系统数学模型习题 2-1 试建立图示电路动态微分方程 + + uC - (a) (b) (a) (b) 解a解法一直接列微分方程组法 解法二 应用复数阻抗概念求 1 2 联立式12可解得 微分方程为: b解法一直接列微分方程组...
  • 给定一个整型数组,在数组中找出由三个数组成最大乘积,并输出这个乘积。 示例1: 输入: [1,2,3] 输出: 6 示例2: 输入: [1,2,3,4] ...这个题吧,本来想用itertools但是我没引入进来。... b = []#用来存放复数
  • 复数的数学运算 问题 你写的最新的网络认证方案代码遇到了一个难题,并且你唯一的解决办法就是使用复数空间。再或者是你仅仅需要使用复数来执行一些计算操作。 解法 复数可以用使用函数 complex(real, imag) 或者是...
  • 9. Palindrome Number

    2017-04-02 09:28:56
    的解法:打败36%.. 主要是把int--->String---->StringBuffer 只有StringBuffer才有reverse()的方法 通过把给的数字reverse 然后进行比较 相同则为回文数 true 不同则为false 代码如下: public class Solution {...
  • 三、复数幂 测试 测试——输出到文件 解法解法二 四、测试次数 解法解法二 五、快速排序 六、递增三元组 解法解法二 七、螺旋折线 八、日志统计 九、全球变暖 十、堆计数 小结 竞赛大纲 ...
  • 1·6 复数的极坐标形式(复数的三角表示式) 1·7 复数的旋转 2.复数与图形 2·1 复数的四则运算的图示 2·2 复数的性质 2·3 映射 2·4 二直线的夹角 2·5 在图形上的应用 3.棣莫佛定理 3·1 棣莫佛定理 3·2 棣莫佛...
  • 1·6 复数的极坐标形式(复数的三角表示式) 1·7 复数的旋转 2.复数与图形 2·1 复数的四则运算的图示 2·2 复数的性质 2·3 映射 2·4 二直线的夹角 2·5 在图形上的应用 3.棣莫佛定理 3·1 棣莫佛定理 3·2 棣莫佛...

空空如也

空空如也

1 2 3 4
收藏数 68
精华内容 27
关键字:

复数的解法