该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

在求解一微分方程时候,采用了ode45 当使用第二种初值的时候,可以完美运行求解,当使用第一种初值的时候,就会报错

报错和主程序如下, 希望大家能帮帮我

————————————————————————————————————

错误使用 erf

输入必须为实数完全数。

出错 new_gaussisan_00way_1 (line 10)

I101A=sqrt(2/PI)*(1/sqrt(x(4)))*(x(4)*(x(7)*x(9)+x(3))+x(2)*x(5))*exp(-x(8)^2/(2*x(4)))+(x(7)*x(5)+x(8)*x(3)+x(9)*x(2)+x(7)*x(8)*x(9))*erf(x(8)/(sqrt(2*x(4))));

出错 ode45 (line 263)

f(:,4) = feval(odeFcn,t+hA(3),y+f*hB(:,3),odeArgs{:});

出错 solve_00way_1 (line 12)

[tdata,xdata]=ode45('new_gaussisan_00way_1',tspan,X0);

————————————————————————————————————

主程序如下:

clear;clc;close all

t0=cputime;

tspan=0:0.01:10;

X0=[3.6672;5.5018;2.7499;8.2541;4.1256;2.0621;-1.915;-2.873;-1.436]; 【第一种初值】

X0=[0.02,0,0,0.02,0,0.08,0.1,0.1,0.2];【第二种初值】

[tdata,xdata]=ode45('new_gaussisan_00way_1',tspan,X0);

X1=xdata(:,1);

X2=xdata(:,2);

X3=xdata(:,3);

X4=xdata(:,4);

X5=xdata(:,5);

X6=xdata(:,6);

X7=xdata(:,7);

X8=xdata(:,8);

X9=xdata(:,9);

EXX=X1;EXY=X2;EXZ=X3;EYY=X4;EYZ=X5;EZZ=X6;EX=X7;EY=X8;EZ=X9;

t1=cputime-t0;

函数程序如下:

function dX=new_gaussisan_00way_1(t,x)

dX=zeros(9,1);

A=1;gama=0.1;beta=0.1;arf=0.1;w=1;ksai=0.05;

PI = 3.1415926;

I0 = 0.1;

z0=0;

I101A=sqrt(2/PI)*(1/sqrt(x(4)))*(x(4)*(x(7)*x(9)+x(3))+x(2)*x(5))*exp(-x(8)^2/(2*x(4)))+(x(7)*x(5)+x(8)*x(3)+x(9)*x(2)+x(7)*x(8)*x(9))*erf(x(8)/(sqrt(2*x(4))));

I101B=sqrt(2/PI)*(1/sqrt(x(6)))*(x(6)*(x(7)*x(8)+x(2))+x(3)*x(5))*exp(-x(9)^2/(2*x(6)))+(x(7)*x(5)+x(8)*x(3)+x(9)*x(2)+x(7)*x(8)*x(9));%*erf(x(9)/(sqrt(2*x(6))));

I011A=sqrt(2/PI)*sqrt(x(4))*(x(8)*x(9)+2*x(5))*exp(-x(8)^2/(2*x(4)))+(x(9)*(x(8)^2*x(4))+2*x(8)*x(5));%*erf(x(8)/(sqrt(2*x(4))));

I011B=sqrt(2/PI)*(1/sqrt(x(6)))*(x(6)*(x(8)^2+x(4))+x(5)^2)*exp(-x(9)^2/(2*x(6)))+(x(9)*(x(8)^2*x(4))+2*x(8)*x(5));%*erf(x(9)/(sqrt(2*x(6))));

I002A=sqrt(2/PI)*(1/sqrt(x(4)))*(x(4)*(x(9)^2+x(6))+x(5)^2)*exp(-x(8)^2/(2*x(4)))+(x(8)*(x(9)^2+x(6))+2*x(5)*x(9));%*erf(x(8)/sqrt(2*x(4)));

I002B=sqrt(2/PI)*(sqrt(x(6))*(x(8)*x(9)+2*x(5)))*exp(-x(9)^2/(2*x(6)))+(x(8)*(x(9)^2+x(6))+2*x(5)*x(9));%*erf(x(9)/sqrt(2*x(6)))

I001A=sqrt(2/PI)*sqrt(x(4))*x(9)*exp(-x(8)^2/(2*x(4)))+(x(8)*x(9)+x(5));%*erf(x(8)/sqrt(2*x(4)));

I001B=sqrt(2/PI)*sqrt(x(6))*x(8)*exp(-x(9)^2/(2*x(6)))+(x(8)*x(9)+x(5));%*erf(x(9)/sqrt(2*x(6)));

dX(1)=2*x(2);

dX(2)=x(4)-2*ksai*w*x(2)-arf*w^2*x(1)-(1-arf)*w^2*x(3)+w^2*(1-arf)*z0*x(7);

dX(3)=x(5)+A*x(2)-gama*I101A-beta*I101B;

dX(4)=-4*ksai*w*x(4)-2*arf*w^2*x(2)-2*(1-arf)*w^2*x(5)+2*w^2*(1-arf)*z0*x(9)+I0*1;

dX(5)=-2*ksai*w*x(5)-arf*w^2*x(3)-(1-arf)*w^2*x(6)+w^2*(1-arf)*z0*x(9)+A*x(4)-gama*I011A-beta*I011B;

dX(6)=2*A*x(5)-2*gama*I002A-2*beta*I002B;

dX(7)=x(8);

dX(8)=-2*ksai*w*x(8)-w^2*arf*x(7)-w^2*(1-arf)*x(9)+w^2*(1-arf)*z0*I0*1;

dX(9)=A*x(8)-gama*I001A-beta*I001B;

end

erf函数 matlab,关于ODE45初值问题和erf函数的问题相关推荐

  1. matlab怎么调用主函数,Matlab中一个函数调用另外一个函数的操作步骤

    原创Matlab中一个函数调用另外一个函数的操作步骤 编辑:小安 来源:PC下载网时间:2019-11-18 13:27:35 最近很多伙伴才刚刚安装入手Matlab这款软件,而本节就重点介绍了关于M ...

  2. matlab ode 初值,关于ODE45初值问题和erf函数的问题

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 在求解一微分方程时候,采用了ode45 当使用第二种初值的时候,可以完美运行求解,当使用第一种初值的时候,就会报错 报错和主程序如下, 希望大家能帮帮我 ...

  3. matlab ode45 初值,关于ODE45初值问题和erf函数的问题

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 在求解一微分方程时候,采用了ode45 当使用第二种初值的时候,可以完美运行求解,当使用第一种初值的时候,就会报错 报错和主程序如下, 希望大家能帮帮我 ...

  4. matlab if语句解函数,Matlab:if语句和abs()函数在变步长ODE求解器中

    我正在网上阅读这篇文章,其中提到使用"if语句"和"abs()"函数会在MATLAB的变步长ODE求解器(如ODE45)中产生负面影响.根据OP,它可以显着影响 ...

  5. matlab中nlfilter函数,matlab的一些关于块分类的函数~~~

    1. nlfilter(General sliding-neighborhood operations) B = nlfilter(A, [m n], fun),这是一个其中A是图像[m  n]是图像 ...

  6. matlab中ndims函数,matlab中的size(),length(),ndims()函数的用法

    1.size()用法: size(a)表示矩阵每个维度的长度 比如size([1 2 3;4 5 6]) 等于[2 3]: 表示他有2行3列. size([1 2 3]) 等于[1 3]: 表示他有1 ...

  7. Matlab自学笔记四:调用函数基本方法、传递参数、函数工作区、命令语法、调用匿名函数

    1.调用函数的基本方法 题目:创建函数y=x²+x+1 首先,使用上一篇的创建函数文件的方法(推荐先看上一篇:Matlab创建函数文件.函数语法定义.匿名函数.多元函数.局部函数等知识串联理解),创建 ...

  8. 【matlab中ode45函数使用的说明】

    matlab使用ode45解微分方程组 官方文档链接 使用方式: [t,y] = ode45(odefun,tspan,y0) 功能为:求微分方程组 y′=f(t,y) 从 t0 到 tf 的积分(y ...

  9. matlab ode45例子,matlab的ode45

    matlab ode45 解微分方程在用 odesolver(ode45, od... 在控制系统仿真中,常用的求微分方程数值解的函 数是ode23和ode45. 2 1. ode23 在MATLAB ...

  10. matlab中ode的用法,关于matlab 的ode45用法

    3.6.2 龙格- 库塔方法 改进的欧拉法比欧拉法精度高的原因在于,它在确定平均斜率时,多取了一个点的斜 率值.这样,如果我们在[Xi,X(i+1)]上多取几个点的斜率值,然后对它们作线性组合得到平均 ...

最新文章

  1. R语言使用caret包构建GBM模型:在模型最优参数已知的情况下,拟合整个训练集,而无需进行任何重采样或参数调优
  2. POJ2955Brackets[区间DP]
  3. Android开发高手课笔记--如何打造高质量应用?
  4. python结果输出到文件-python print输出到文件
  5. SpringBoot之二:部署Spring Boot应用程序方式
  6. ConcurrentHashMap的源码分析-为什么要做高低位的划分
  7. 同一网段计算机无法共享打印机,Win7同一个局域网内共享打印机不成功的修复方法...
  8. Complex类与运算符重载
  9. 网站服务器空间选择,网站服务器空间选择
  10. [转载] html转word table样式_[Python02] Python-docx包的使用,快速处理 Word 文件!
  11. JavaScript/jQuery 表单美化插件小结
  12. [2018.08.08 T1] 签到题
  13. 在mysql怎样查询地址和电话_手机号码怎么查找位置
  14. Java:Map转List (用stream实现)
  15. Allegro 使用一些总结
  16. python导入excel加入折线图_Python之openpyxl插入折线图方法
  17. wireshark、异常数据分析、常见RST介绍
  18. 一个k8s集群——跨云服务器部署
  19. NFC OMA 访问
  20. 【数据科学】5个数据讲故事技巧,用于创建更有说服力的图和表

热门文章

  1. 备件管理系统c语言,图书管理系统的设计与开发及体育用品库存管理系统设计.doc...
  2. unity直播推流方式_干货,抖音无人直播技术(建议收藏)
  3. NFC卡模拟之模拟卡ID
  4. golang对接paypal支付
  5. 计算机高级应用都有啥,计算机二级MS OFFICE高级应用都有什么题型?
  6. dell服务器自动部署,教你DELL服务器提高电源的转化效率,最高效的方式进行电源管理...
  7. 【软件定义汽车】SOA框架介绍
  8. 简易cad导出pdf程序源码
  9. Linux - 搭建LDAP统一认证服务
  10. 作业三-读书app原型设计