函数文件1:real_fun.m function f=real_fun(x0,t0) %精确解 f=4*x0*(1-x0)*sin(t0); 函数文件2:F.m function f=F(N,u,U,t,h1,h2) %非线性方程组 %h1是x的步长,h2是t的步长 %u表示迭代节点,上一时刻的数值解 %h表示时间节点上的步长 %N表示空间节点的步数 a0=0.5*t^4*h2*N^2; f(1,1)=a0*(U(2)^2-2*U(1)^2)+h2*fi(h1,t)+u(1)-U(1); f(…
函数文件1:real_fun.m function f=real_fun(x0,t0) f=(x0-x0^2)*exp(-t0); 函数文件2:fun.m function f=fun(x0,t0) f=(x0^2-x0)*exp(-t0)+2*exp(-t0); 函数文件3:fi.m function f=fi(x0) f=x0-x0^2; 脚本文件: tic; clc clear N=100; M=1000; t_h=1/M;%t的步长 x_h=1/N;%x的步长 x=0:x_h:1;%x的…
源代码见文末 部分源代码: % 符号变量 两种表达方式 a=sym('a'); class(a); syms b; b; % 符号常量 c=sym('); c; % 符号表达式 三种表达方式 f1='3*x+4'; % char类型,但是可以参与运算.所以这种形式是可以直接用的,比较方便 syms x f2=3*x+4; % sym类型 f3=sym('3*y+4'); % sym类型 % 符号四则运算 fadd1 = f1 + f2; fmu1 = f1*f2; % 符号表达式的化解 syms…
一.隐式Euler: 函数文件1: function b=F(t,x0,u,h) b(,)=x0()-h*x0()-u(); b(,)=x0()+*h*x0()/t+*h*(*exp(x0())+exp(x0()/))-u(); 函数文件2: function g=Jacobian(x0,t,h) g(,)=; g(,)=-h; g(,)=*h*(*exp(x0())+)/)); g(,)=+*h/t; 函数文件3: function x=newton_Iterative_method(t,u,…
题目传送门 题目描述:给出n,x,mod.求s[n]. s[n]=s[n-1]+(x^n)*(n^x)%mod; 思路:这道题是hdu5950的进阶版.大家可以看这篇博客hdu5950题解. 由于n很大,所以肯定是矩阵快速幂的题目,但是矩阵快速幂只能解决线性的问题,n^4在这个式子中是非线性的,后一项和前一项没有什么直接关系,这里要做一个转换,把n^4变成一个线性的,也就是和(n-1)^4有关系的东西,而这个办法就是: n^4=(n-1+1)^4=(n-1)^4+4*(n-1)^3+6*(n-1…
——转载网络 在科学计算和工程应用中,经常会遇到需要拟合一系列的离散数据,最近找了很多相关的文章方法,在这里进行总结一下其中最完整.几乎能解决所有离散参数非线性拟合的方法 第一步:得到散点数据 根据你的实际问题得到一系列的散点 例如: x=[3.2,3.6,3.8,4,4.2,4.8,5,5.4,6.2,6.4,6.6,6.9,7.1]';%加上一撇表示对矩阵的转置 y=[0.38,0.66,1,0.77,0.5,0.66,0.83,1,0.71,0.71,1,0.87,0.83]'; 第二步:…
转载自Here matlab的PDE工具箱的简单使用 问题选择 边界条件选择 菜单按钮和简单使用 命令行输入pdetool,打开GUI编辑界面如下: 注意到工具栏上,就是我们要用到的,从左到右依次使用每个工具,就完成了整个pde的求解过程.每个工具的含义如下: 简单地说,就是前面几个拿来画区域的,后面一个∂Ω\partial \Omega∂Ω拿来设置边界条件,带三角形的是拿来剖分以及加密的,等号是求解,最后那个带图的那个是画图. 工具栏上的菜单栏,我们常用到的有Option下的坐标轴显示网格,坐…
关于数据预处理的几个概念 归一化 (Normalization): 属性缩放到一个指定的最大和最小值(通常是1-0)之间,这可以通过preprocessing.MinMaxScaler类实现. 常用的最小最大规范化方法(x-min(x))/(max(x)-min(x)) 除了上述介绍的方法之外,另一种常用的方法是将属性缩放到一个指定的最大和最小值(通常是1-0)之间,这可以通过preprocessing.MinMaxScaler类实现. 使用这种方法的目的包括: 1.对于方差非常小的属性可以增强…
Scipy在Numpy的基础上则加了众多的数学计算,科学计算以及工程计算中常用的模块,例如线性代数,常微分方程的数值求解,信号处理,图像处理,系数矩阵等.在本章中,将通过实例介绍Scipy中常用的的一些模块.为了方便读者理解,在示例程序中使用matplotlib,TVTK以及Mayavi等扩展绘制二维以及三维图表. Scipy的special模块是一个非常完整的函数库,其中包含了基本数学函数,特殊数学函数以及Numpy中出现的所有函数. 伽马(gamma)函数γ时概率统计学中经常出现的一个函数,…
  关于数据预处理的几个概念 归一化 (Normalization): 属性缩放到一个指定的最大和最小值(通常是1-0)之间,这可以通过preprocessing.MinMaxScaler类实现. 常用的最小最大规范化方法(x-min(x))/(max(x)-min(x)) 除了上述介绍的方法之外,另一种常用的方法是将属性缩放到一个指定的最大和最小值(通常是1-0)之间,这可以通过preprocessing.MinMaxScaler类实现. 使用这种方法的目的包括: 1.对于方差非常小的属性可以…
(一)线性方程组求解 包含n个未知数,由n个方程构成的线性方程组为: 其矩阵表示形式为: 其中 一.直接求解法 1.左除法 x=A\b; 如果A是奇异的,或者接近奇异的.MATLAB会发出警告信息的. 2.利用矩阵的分解来求解线性方程组(比单单进行左除速度快) (1)LU分解(只有方阵可以使用) LU分解就是分解成一个交换下三角矩阵(也就是说进行一定的操作后才是下三角矩阵)和一个上三角矩阵(不需要变换)的乘积形式.只要A是非奇异的,就可以进行LU分解. MATLAB提供的LU分解函数对于矩阵进行…
1.最小二乘原理 Matlab直接实现最小二乘法的示例: close x = 1:1:100; a = -1.5; b = -10; y = a*log(x)+b; yrand = y + 0.5*rand(1,size(y,2)); %%最小二乘拟合 xf=log(x); yf=yrand; xfa = [ones(1,size(xf,2));xf] w = inv(xfa*xfa')*xfa*yf';%直接拟合得到的结果 参考资料: 1.http://blog.csdn.net/lotus_…
今天,我们学习了直方图.于是乎,回来我就用matlab代码实现一下.昨天受到道路检测老师课上一个内容的影响(对于道路裂缝的检测,我突发奇想,如果对于道路图像进行操作,是否能够让裂缝与道路分离,使得图像经过预处理以后在检测过程中能更加直观),于是所用图片是与道路裂缝有关的.(但是发现效果似乎很shi...) 结合上节课的图像点运算.今天的代码都将会囊括进来! 点运算,是用于改变图像灰度范围以及分布的一种运算,原图像与生成图像之间相应的像素值之间满足某种函数关系.可以是线性变换的,也可以是非线性变换…
1.最小二乘原理 Matlab直接实现最小二乘法的示例: close x = 1:1:100; a = -1.5; b = -10; y = a*log(x)+b; yrand = y + 0.5*rand(1,size(y,2)); %%最小二乘拟合 xf=log(x); yf=yrand; xfa = [ones(1,size(xf,2));xf] w = inv(xfa*xfa')*xfa*yf';%直接拟合得到的结果 参考资料: 1.http://blog.csdn.net/lotus_…
每次比赛都需要查一下,这次直接总结到自己的博客中. 以这个为例子: 2.线性方程的相关计算 x=[1,2,3,4,5]';%参数矩阵 X=[ones(5,1),x];%产生一个5行一列的矩阵,后接x矩阵 Y=[3.95,5.23,7.6,9.48,11.89]'; [b,bint,r,rint,stats]=regress(Y,X) %b为方程相关系数 %r表示残差 %rint表示置信区间 %stats适用于检验回归模型的统计量 得到 b = 1.5910 2.0130 bint = 0.448…
matlab中有专门的solve函数来解决方程组的(a-x)^2+(b-y)^2=e^2(C-x)^2+(D-y)^2=v^2已知a,b,c,d,e,v 值求解 X,Y 请问用 matlab 如何写,就是求2个园的交点问题.仿真程序为:global a b c d e v;>> a=1;b=0;c=-1;d=0;e=1.5;v=1.5;%设定你这几个未知数的值>> syms x y;%%%%%%x,y是变量>> [x,y]=solve('x^2+y^2-2*a*x-2*…
MATLAB实例:非线性曲线拟合 作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 用最小二乘法拟合非线性曲线,给出两种方法:(1)指定非线性函数,(2)用傅里叶函数拟合曲线 1. MATLAB程序 clear clc xdata=[0.1732;0.1775;0.1819;0.1862;0.1905;0.1949;0.1992;0.2035;0.2079;0.2122;0.2165;0.2208;0.2252;0.2295;0.2338;0.238…
2.1 案例背景 在工程应用中经常会遇到一些复杂的非线性系统,这些系统状态方程复杂,难以用数学方法准确建模.在这种情况下,可以建立BP神经网络表达这些非线性系统.该方法把未知系统看成是一个黑箱,首先用系统输入输出数据训练BP神经网络,使网络能够表达该未知函数,然后用训练好的BP神经网络预测系统输出. 本章拟合的非线性函数为\[y = {x_1}^2 + {x_2}^2\]该函数的图形如下图所示. t=-5:0.1:5; [x1,x2] =meshgrid(t); y=x1.^2+x2.^2; s…
MATLAB实例:多元函数拟合(线性与非线性) 作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 更多请看:随笔分类 - MATLAB作图 之前写过一篇博文,是关于一元非线性曲线拟合,自定义曲线函数. 现在用最小二乘法拟合多元函数,实现线性拟合与非线性拟合,其中非线性拟合要求自定义拟合函数. 下面给出三种拟合方式,第一种是多元线性拟合(回归),第二三种是多元非线性拟合,实际中第二三种方法是一个意思,任选一种即可,推荐第二种拟合方法. 1. MATLA…
1.      solve函数 ①求解单个一元方程的数值解 syms x; x0 = double(solve(x +2 - exp(x),x)); 求x+2 = exp(x)的解,结果用double显示. 使用过程中,也可以写作x+2 == exp(x),注意是'=='. 另外,若有多个解,该函数只返回一个的解. ②求解含有符号变量方程的解 syms x a b c; x0 = solve(a*x^2+b*x+c,x); 可以求得两个解. ③求解方程组 syms x y z; e1 = 2*x…
<线性代数>同济第五版第一章最后一节的内容,我都差点忘记了,在这里写个简单的例子记录一下. matlab代码如下: clear all; close all; clc; % A*x = b 求解x % *x1+*x2 = % *x1+*x2 = A=[ ; ]; b=[; ]; D = det(A); D1 = det([b A(:,)]); D2 = det([A(:,) b]); x1 = D1/D; x2 = D2/D;…
7.1 案例背景 7.1.1 RBF神经网络概述 径向基函数是多维空间插值的传统技术,RBF神经网络属于前向神经网络类型,网络的结构与多层前向网络类似,是一种三层的前向网络.第一层为输入层,由信号源结点组成:第二层为隐藏层,隐藏层节点数视所描述问题的需要而定,隐藏层中神经元的变换函数即径向基函数是对中心点径向对称且衰减的非负非线性函数,该函数是局部响应函数,而以前的前向网络变换函数都是全局响应的函数:第三层为输出层,它对输入模式作出响应.RBF网络的基本思想是:用RBF作为隐单元的“基”构成隐藏…
4.1 案例背景 \[y = {x_1}^2 + {x_2}^2\] 4.2 模型建立 神经网络训练拟合根据寻优函数的特点构建合适的BP神经网络,用非线性函数的输入输出数据训练BP神经网络,训练后的BP神经网络就可以预测函数输出.遗传算法极值寻优把训练后的 BP 神经网络预测结果作为个体适应度值,通过选择.交叉和变异操作寻找函数的全局最优值及对应输入值. 网络结构:2-5-1 训练数据:3900,测试数据:100 4.3 编程实现 %% 基于神经网络遗传算法的系统极值寻优 %% 清空环境变量 c…
3.1 案例背景 遗传算法(Genetic Algorithms)是一种模拟自然界遗传机制和生物进化论而形成的一种并行随机搜索最优化方法. 其基本要素包括:染色体编码方法.适应度函数.遗传操作和运行参数. 非线性函数:$y=x_{1}^{2}+x_{2}^{2}$ 3.2 模型建立 3.2.1 算法流程 遗传算法优化使用遗传算法优化BP神经网络的权值和阔值,种群中的每个个体都包含了一 个网络所有权值和阔值,个体通过适应度函数计算个体适应度值,遗传算法通过选择.交叉和变异操作找到最优适应度值对应个…
牛顿迭代法,又名切线法,这里不详细介绍,简单说明每一次牛顿迭代的运算:首先将各个方程式在一个根的估计值处线性化(泰勒展开式忽略高阶余项),然后求解线性化后的方程组,最后再更新根的估计值.下面以求解最简单的非线性二元方程组为例(平面二维定位最基本原理),贴出源代码: 1.新建函数fun.m,定义方程组 function f=fun(x); %定义非线性方程组如下 %变量x1 x2 %函数f1 f2 syms x1 x2 f1 = sqrt((x1-4)^2 + x2^2)-sqrt(17); f2…
LINK :http://blog.sina.com.cn/s/blog_49f037d60100ok8y.html…
拟合椭圆首先要知道各个点的坐标,然和带入如下公式: x = [59 136 58 137 57 137 56 137 55 138 54 139 53 140 52 141 51 142 51 143 51 144 50 145 50 146 50 147 50 148 49 149 49 150 49 151 49 152 49 153 50 154 50 155 50 156 50 157 51 158 51 159 51 160 52 161 52 162 53 163 54 164 54…
tic; clear clc M=[, ];%空间步数 N=*M;%时间步数 :length(M) h=/M(k);%空间步长 tau=/N(k);%时间步长 s=tau/h;%步长比 x=:h:; t=:tau:; y=inline('exp(x+t)','x','t');%真解函数 :length(x) :length(t) exact(i,j)=y(x(i),t(j));%真解 end end u=zeros(M(k)+,N(k)+);%数值解内存单元 :M(k) u(i,)=exp(x(…
tic; clear clc N=; M=*N; h1=/M; h2=/N; x=:h1:; y=:h2:; fun=inline('exp(x)*sin(pi*y)','x','y'); f=inline('(pi^2-1)*exp(x)*sin(pi*y)','x','y'); lamda1=inline(','y'); lamda2=inline('2*y','y'); lamda3=inline('2*x','x'); lamda4=inline('x^2','x'); kesai1=i…
tic; clear clc M=[,,,,,,];%x的步数 K=M; %时间t的步数 :length(M) hx=/M(p); ht=/K(p); r=ht/hx^; %网格比 x=:hx:; t=:ht:; numerical=zeros(M(p)+,K(p)+); numerical(:,)=exp(x); %初始值 numerical(,:)=exp(t); %边值 numerical(M(p)+,:)=exp(t+); %边值 a=-r/*ones(M(p)-,);b=(+r)*on…