MATLAB实现连带勒让德

  • 前言
    • 连带勒让德多项式
    • 说明

前言

突然想起来很久没有撰写博客了,今天恰好有点空闲的时间,补一篇博客,也是我之前在部分科研的时候撰写的,主要是实现连带勒让德多项式的,MATLAB里面其实有自带的连带勒让德多项式的函数,但是有点局限,不适合我们直接使用,所以我这里直接自己编写了一个,顺便记录一下自己在美化图线的一些操作

连带勒让德多项式

关于连带勒让德多项式的表达式,我这里就不想再去撰写了,感觉没有必要,大家随便找一下都能找到,而且说的比我详细,要是我自己现在写在博客里面,我估计还会偷懒。但是我需要强调的是,代码编写使用的多项式的表达式是使用微分表达式。话不多说,直接怼代码

% 函数基本说明:
% n:  表示勒让德多项式的阶数
% m:   表示勒让德多项式的级数
clear
close all%% =========================开始计算================================================================
% 计算的范围式0-pi/2
Theta = linspace(0,pi/2,50);
P1 = Legendreowncode(4,1,Theta);
P2 = Legendreowncode(2,1,Theta);
P3 = Legendreowncode(3,0,Theta);figure('name','勒让德多项式的计算');
h = plot(Theta,P1,Theta,P2,Theta,P3);
legend('\itn=\rm4, \itm=\rm1','\itn=\rm2, \itm=\rm1','\itn=\rm3, \itm=\rm0');
% 修改线形
h(1).Color = 'r';  %这里说明修改的颜色蓝色,可以使用RGB三原色
h(2).Color = '0 0.4470 0.7410';
h(3).Color = '0.4940 0.1840 0.5560';
h(1).LineWidth = 1.2;
h(2).LineWidth = 1.2;
h(3).LineWidth = 1.2;
h(1).Marker = '^';
h(2).Marker = '*';
h(3).Marker = 'o';
h(1).MarkerSize = 0.8;
h(3).MarkerSize = 3.5;ax = gca;  %获得坐标轴的属性
ax.XLim = [0,pi/2];
ax.YLim = [-3,3];
ax.XTick = 0:pi/2/9:pi/2;
ax.YTick = -3:1:3;
ax.XTickLabel = 0:10:90;
ax.YTickLabel = -3:1:3;
ax.FontSize = 12;
ax.LineWidth = 1.0;
ax.XColor =  '0 0 0';
ax.YColor  = '0 0 0';
ax.FontName = 'times new roman';
ax.XLabel.String = '\itx';
ax.XLabel.FontSize = 20;
ax.YLabel.String = '\ity';
ax.YLabel.FontSize = 20;
ax.Legend.Box = 'off';
ax.Legend.FontName = 'times new roman';
ax.Legend.Location = 'northwest';
ax.Legend.FontSize = 15;
ax.Color = [1 1 1];
% ax.View = [45 30];
% ax.Grid = 'on';
%% ===================
% 作为一个子函数进行表示
function P = Legendreowncode(n,m,Theta)
syms x y theta
% 计算表达式
%   首先第一步计算勒让德表达式
y = (x^2-1)^n;
Pn(x) = diff(y,x,n)/2^n/factorial(n);  %这里是表示勒让德表达式,微分形式if m>=0Pnm(x) = (-1)^abs(m)*(1-x^2)^(abs(m)/2)*diff(Pn(x),x,abs(m));  %这里表示的勒让德表达式dPnm_dx(x) = diff(Pnm(x),x,1);% 注意这里计算的式两个特殊函数,分别式pi和taopai = subs(Pnm(x)/sin(theta),'x',cos(theta));tao = subs(-sin(theta)*dPnm_dx(x),'x',cos(theta));
elsePnm(x) = (-1)^(abs(m))*factorial(n-abs(m))/factorial(n+abs(m))*(-1)^abs(m)*(1-x^2)^(abs(m)/2)*diff(Pn(x),x,abs(m));dPnm_dx(x) = diff(Pnm(x),x,1);pai = subs(Pnm(x)/sin(theta),'x',cos(theta));tao = subs(-sin(theta)*dPnm_dx(x),'x',cos(theta));
end
%===========第二次优化======================= =
% Theta  = linspace(0,pi/2,100);   %这里表示的是仰角%===========第三次优化算法====================%
% 首先把符号算式更改为句柄算式
% Pai = matlabFunction(pai);
% Tao = matlabFunction(tao);
Legendre = matlabFunction(Pnm(x));  %这里表示的是勒让德多项式的计算方式P = Legendre(cos(Theta));
end

说明

代码块的说明感觉没有什么特别需要说的,就是前面的美化我这里是用句柄的格式,主要是之前不用句柄,写完代码之后老长老长了,然后换行之后又很丑,所以这里使用句柄的方式惊醒坐标轴的操作。

MATLAB实现连带勒让德多项式的绘制相关推荐

  1. 【数字信号处理】卷积编程实现 ( Matlab 卷积和多项式乘法 conv 函数 | 使用 matlab 代码求卷积并绘图 )

    文章目录 一.Matlab 卷积和多项式乘法 conv 函数 二.使用 matlab 代码求卷积并绘图 一.Matlab 卷积和多项式乘法 conv 函数 Matlab 文档地址 : https:// ...

  2. 基于MATLAB的全局多项式插值法(趋势面法)与逆距离加权(IDW)法插值与结果分析

    基于MATLAB的全局多项式插值法(趋势面法)与逆距离加权(IDW)法插值与结果分析 1 背景知识 2 实际操作部分 2.1 空间数据读取 2.2 异常数据剔除 2.3 验证集筛选 2.4 最小二乘法 ...

  3. matlab离散型数据求和,MATLAB程序设计教程(6)---MATLAB数据分析与多项式计算

    第6章 MATLAB数据分析与多项式计算 6.1 数据统计处理 6.2 数据插值 6.3 曲线拟合 6.4 离散傅立叶变换 6.5 多项式计算 6.1 数据统计处理 6.1.1 最大值和最小值 MAT ...

  4. 【转】MATLAB的polar函数 极坐标绘制最大半径怎样设置

    https://zhidao.baidu.com/question/262590480477498125.html MATLAB的polar函数 极坐标绘制最大半径怎样设置,类似于plot用axis( ...

  5. plotcylinder matlab,Matlab在任意两点之间绘制三维圆柱

    Matlab在任意两点之间绘制三维圆柱 Matlab在任意两点之间绘制三维圆柱 此函数可能存在一些不足,请多多指教! function plotcylinder(u1,u2,color_a,r) L= ...

  6. matlab 绘制符号函数,DAY8 MATLAB学习笔记—simulink入门、MATLAB符号函数的图形绘制...

    如何打开simulink: 启动simulink: 先打开MATLAB软件界面 第一步打开simulink 第二步在command windows输入 simulink然后enter,等待 有很多模块 ...

  7. MatLab中的多项式拟合(lsqcurvefit函数的非线性曲线拟合)

    MatLab中的多项式拟合(lsqcurvefit函数的非线性曲线拟合) lsqcurvefit函数 函数原型 x=lsqcurvefit(fun, x0, xdata, ydata) == 其中的参 ...

  8. matlab多项式计算题目,MATLAB数据分析与多项式计算-习题答案

    <MATLAB数据分析与多项式计算-习题答案>由会员分享,可在线阅读,更多相关<MATLAB数据分析与多项式计算-习题答案(4页珍藏版)>请在人人文库网上搜索. 1.第6章 M ...

  9. 多项式在matlab中的应用,matlab的应用-多项式函数及多项式拟合

    matlab的应用-多项式函数及多项式拟合 Matlab 的应用- 多项式函数及多项式拟合 本节将向大家简要介绍 matlab 在多项式处理方面的应用. 多项式函数主要有: roots 求多项式的根 ...

最新文章

  1. GPU上的基本线性代数
  2. linux 创建crontab文件位置,[基础教程]linux系统的crontab计划任务添加和删除
  3. python的none是什么-python中stream=None什么意思?
  4. zabbix工作流程(自定义添加监控项目)
  5. php post 500 ajax,php – Laravel 5:Ajax Post 500(内部服务器错误)
  6. .NET Core开发日志——WCF Client
  7. 在硒中按TagName定位元素
  8. windows c语言 redis,windows上使用VS2012 C++语言调用Redis的解决方案
  9. split出现得问题
  10. 治理软件供应链安全要打“团体赛” 共同建立供应链安全体系
  11. 递归 人理解循环 神理解递归
  12. [C++]头文件(Header Files)和命名空间(Namespace)
  13. EF Code First 中使用Jarek Kowalski's Provider的方法1
  14. R-CNN学习笔记3:Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition(SPP-net)
  15. 解决办法:NVIDIA驱动,Ubuntu16.04 用户登录界面死循环
  16. 西安集训B层Day1 test 问题 A: 旅行日记
  17. Android 11 开机动画资源
  18. 【金九银十】Java微服务面试题,看到你就是赚到
  19. wp8.1 java_巨硬的内部比较——WP8.1版本与WP10系统对比(以lumia640为例)
  20. Oracle中的LOB字段解读

热门文章

  1. ubuntu16无线网卡型号查询及驱动安装,联想G400 BCM43142网卡wifi
  2. java 定时任务时间设置
  3. linux服务~软件
  4. 荣耀9i 鸿蒙,荣耀9i和荣耀9青春版哪个好 哪个性价比更高?
  5. 千锋逆战班,网络编程应用
  6. Vegas视频剪辑界面中的窗口不见了怎么办?
  7. Python图片模糊过滤器:让模糊变清晰!
  8. 醉了,Vue 3.0 公开代码之后……
  9. 【Kay】HQL利用身份证号判断性别
  10. iOS @2x 与@3x 图的详解