
matlab科学计算
qq-120
这个作者很懒,什么都没留下…
展开
-
计算矩阵的任意次方
如何计算如下矩阵的任意次方(比如0.5次方)验证:References:原创 2022-07-10 18:34:02 · 2174 阅读 · 0 评论 -
微分方程组、无约束优化、线性规划、非线性规划、0-1规划、二次型规划
fprintf('解析解.\n');syms t x y[x,y] = dsolve('D2x=-2*x-3*Dx+exp(-5*t)',' D2y==2*x-3*y-4*Dx-4*Dy-sin(t)','x(0)=1','Dx(0)=2','y(0)=3','Dy(0)=4')x = simplify(x); y = simplify(y);fprintf('数值解.\n');[t1,x1] = ode45('myfun',[0,10],[1;2;3;4]);ezplot(x,[0,10]).原创 2022-05-05 19:02:51 · 558 阅读 · 0 评论 -
数据插值、数据拟合、最小二乘拟合、方程组解析解&迭代解法
(欠定方程)%解析解:A = [2 -9 3 -2 -1; 10 -1 10 5 0; 8 -2 -4 -6 3; -5 -6 -6 -8 -4];B = [-1 -4 0; -3 -8 -4; 0 3 3; 9 -5 3];[rank(A), rank([A B])]x0 = null(sym(A)); % 求AX=0的基础解x_analytical = sym(A)\B; syms a;x = a*[x0 x0 x0]+x_analyticalA*x - B输出:x = [ .原创 2022-05-05 18:48:19 · 803 阅读 · 0 评论 -
泰勒展开、级数求和、数值微分、数值积分
%inputsyms a x;f = exp(-5*x) * sin(3*x + pi/3);T = taylor(f,x,'Order', 5); pretty(T) % 此处展开到前 5 项T2 = taylor(f,x,a,'Order', 5); pretty(T2) % 此处展开到前 5 项%input%第一种方式syms n k; s = symsum(1/(1+k*pi/n^2),k,1,n) % 先求和limit(s/n,n,Inf) % 再求极限%第二种方式s.原创 2022-05-05 18:14:17 · 1077 阅读 · 0 评论 -
极限、隐函数导数、微分
%inputsyms x yf = (1-cos(x^2 + y^2))/((x^2 + y^2)*exp(x^2 + y^2));L = limit(limit(f,x,0),y,0)%outputL =0%inputsyms x y; f = atan(y/x)-log(x^2+y^2); pretty(-simplify(diff(f,x)/diff(f,y)))%output y + 2 x---------- 2 y + x%inputsyms t x.原创 2022-05-05 18:04:07 · 317 阅读 · 0 评论 -
三维图&等高线
以绘制sin(xy)在[-pi,pi]上的三维图和等高线为例:[x,y] = meshgrid(-pi:0.05:pi); % 设置网格z = sin(x.*y); % 计算函数值axis([-pi,pi,-pi,pi,min(min(z)),max(max(z))]) % 重新设置坐标系figure(1),surf(x,y,z) % 绘制三维表面图figure(2),contour3(x,y,z,200) % 三维等高线图% [x,y]=meshgrid(-pi:.05:pi);% sur原创 2022-05-05 17:57:12 · 651 阅读 · 0 评论 -
varargin的应用
编写一个矩阵相加函数,使其具体的调用格式为,要求该函数能接受任意多个矩阵进行加法运算。(注:varargin 变量的应用)%第一种方式function y = mat_add(varargin)y = varargin{1}; for m = 2:length(varargin) y = y+varargin{m}; endend%第二种方式function y = mat_add(varargin) y = sum(cat(3,varargin{:}),3); % 将变量放在第三维原创 2022-05-05 17:31:21 · 591 阅读 · 0 评论 -
解微分方程_matlab
(1)先计算右边式子的值;% Step 1syms t; u=exp(-5*t)*cos(2*t+1)+5;uu=5*diff(u,t,2)+4*diff(u,t)+2*u打印uu = 87*exp(-5*t)*cos(2*t + 1) + 92*exp(-5*t)*sin(2*t + 1) + 10(2)在计算左边式子的值;好像新版的matlab dsolve函数格式发生了一点点改变,使用dsolve函数时先help dsolve一下。% Step 2syms y(t)eqn .原创 2022-04-07 22:06:35 · 218 阅读 · 0 评论 -
矩阵的迹-trace
今天用matlab 2021b时发现这个版本的trace函数已经不存在了,原文档链接trace那怎么代替trace函数呢?我们首先需要知道矩阵的迹为该矩阵对角线元素之和,因而 trace_C = sum(diag©)。A = [1 -5 2; -3 7 9; 4 -1 6];trace_A = sum(diag(A))trace_A = 14...原创 2022-03-29 20:32:30 · 870 阅读 · 0 评论 -
单变量极限
一、定义 或 二、调用格式L = limit(fun,x,x0,'right'或'left')L = limit(fun,x,x0,'right')L = limit(fun,x,x0,'left')三、例子(1)试求解极限问题syms x a bf = x*(1+a/x)^x*sin(b/x);L = limit(f,x,inf) L = b*exp(a)(2)求解单边极限问题syms xlimit((exp(x^3)-1)/(1-co原创 2022-03-03 16:08:46 · 165 阅读 · 0 评论