国产乱精品一区二区三区_韩国一级特黄的一级毛片_日本精品视频在线播放_欧美熟妇淫乱视频_欧美日韩在线视频中文字幕_亚洲国产精品一区久_永久免费看擁有海量影視資源_人成无码区免费aⅤ片_午夜电影在线观看国产1区_777免费视频在线观看软件

普通會員

探路者

此用戶很神秘,沒有留下任何信息

6帖子
3回復
1513積分
ID:000045
用北太天元軟件對我們科研論文中的算法代碼復現(xiàn)如何?

因為我是數(shù)學專業(yè)的,想知道北太天元軟件用于優(yōu)化方向的算法支撐程度怎樣?想必很多科研工作者都需要這方面的支撐,各個專業(yè)需求不同,比如:工具箱、仿真、算法等。

2 2022-09-23
如何使用北太天元的繪圖功能

數(shù)據(jù)可視化(Data Visualization)是關于數(shù)據(jù)視覺表現(xiàn)形式的科學技術研究,指利用計算機圖形學和圖像處理技術,將數(shù)據(jù)轉換為圖形或圖像在屏幕上顯示出來,成為對人類視覺更為友好的圖形圖像的過程。


本文使用的北太天元版本為 Baltamatica 2.1.3.2 Windows版

1. 首先需要確保北太天元已經加載了 繪圖插件 graph, 可以在 幫助 》 插件 中查看,軟件安裝完成后會默認加載繪圖插件。

               

image_1.png


2. 在繪圖插件加載后,如何查看繪圖插件提供哪些函數(shù)呢?有兩個方法,一個是直接在命令行窗口輸入 plugin_help(‘graph’) 就可以查看目前繪圖插件提供的全部函數(shù),或者在命令行窗口輸入 help , 這個命令會返回北太天元里提供的所有內核提供的命令、腳本提供的命令和 插件 [graph(已授權)] 提供的命令。


如下圖所示

  image_2.png             

3. 如何查看某個繪圖函數(shù)的具體用法呢?

在命令行窗口直接輸入 help 函數(shù)名,例如help plot3

image_3.png               

使用 plot3 繪制三維螺旋線。

t=0:pi/50:10*pi;

plot3(sin(t),cos(t),t);

axis square;

以上代碼運行的結果如下圖所示。

image_4.png               


下面介紹一下北太天元提供的二維圖形


特殊二維圖形

1.  條形圖

bar(X,Y):X是坐標,Y是高度,條形的跨度是x坐標的最小間距

 bar(Y):對Y繪制條形圖。如果Y為矩陣,Y的每一行聚集在一起。橫

2.  區(qū)域圖

區(qū)域圖用于顯示向量或者矩陣中的元素在對應的x下,在所有元素中所占的比例。默認情況下,函數(shù)area將矩陣中各行的元素集中,將這些值繪成曲線,并填充曲線和x軸之間的空間。其調用語法如下。

area(Y):繪制向量Y。

area(X,Y):繪制 Y 中的值對 x 坐標 X 的圖。然后,該函數(shù)根據(jù) Y 的形狀填充曲線之間的區(qū)域:如果 Y 是向量,則該圖包含一條曲線。area 填充該曲線和水平軸之間的區(qū)域。如果 Y 是矩陣,則該圖對 Y 中的每列都包含一條曲線。area 填充這些曲線之間的區(qū)域并堆疊它們,從而顯示在每個 x 坐標處每個行元素在總高度中的相對量。

3.  餅形圖

在統(tǒng)計學中,經常要使用餅形圖來表示各個統(tǒng)計量占總量的份額,餅形圖可以顯示向量或矩陣中的元素占總體的百分比。在北太天元中可以使用pie函數(shù)來繪制二維餅形圖,其調用語法如下。

pie(X):使用 X 中的數(shù)據(jù)繪制餅圖。餅圖的每個扇區(qū)代表 X 中的一個元素。如果 sum(X) ≤ 1,X 中的值直接指定餅圖扇區(qū)的面積。如果 sum(X) < 1,pie 僅繪制部分餅圖。如果 sum(X) > 1,則 pie 通過 X/sum(X) 對值進行歸一化,以確定餅圖的每個扇區(qū)的面積。

4.  直方圖

直方圖用于直觀地顯示數(shù)據(jù)的分布情況。在北太天元中提供了兩個函數(shù)用于直方圖的繪制:hist和polarhistogram。hist主要是用于直角坐標系直方圖的繪制;polarhistogram主要用于極坐標系下直方圖的繪制。下文主要介紹hist函數(shù)的用法。hist函數(shù)的調用語法如下。

n=hist(Y):繪制Y的直方圖。

n=hist(Y,nbins):指定分格的數(shù)目。

5.  針狀圖

在北太天元中,可以使用函數(shù)stem生成二維離散圖形。stem函數(shù)調用語法如下:

stem(Y):繪制Y的數(shù)據(jù)序列,圖形起始于X軸,并在每個數(shù)據(jù)點處繪制一個小圓圈。

strm(X,Y):按照指定的X繪制數(shù)據(jù)序列Y。

6.  方向矢量圖和速度矢量圖

在北太天元中可以繪制方向矢量圖和速度矢量圖。quiver函數(shù)用來繪制箭狀圖或者速度矢量圖,其調用語法如下。

quiver(x,y,u,v):繪制矢量圖,參數(shù)x和y用于指定矢量的位置,u和v用于指定要繪制的矢量。

quiver(u,v):繪制矢量圖,矢量的位置為默認值。

梯度方向也就是速度方向,本例使用quiver函數(shù)即可達到目的。

7.  等高線的繪制

等高線用于創(chuàng)建、顯示并標注由一個或多個矩陣確定的等值線。北太天元中提供有一些函數(shù)用于繪制等高線:

contour 顯示矩陣Z的二維等高線圖

meshc 創(chuàng)建一個匹配有二維等高線圖的網格圖

contourf 顯示矩陣Z的二維等高線圖,并在各等高線之間用實體顏色填充

surfc 創(chuàng)建一個匹配有二維等高線圖的曲面圖

   

這里只介紹最常用的函數(shù)contour,其他函數(shù)請讀者自行查閱幫助文檔。contour函數(shù)用于繪制二維等高線圖,其調用語法如下。

contour(Z):繪制矩陣Z的等高線,繪制時將Z在x-y平面插值,等高線數(shù)量和數(shù)值由系統(tǒng)根據(jù)Z自動確定。

contour(X,Y,Z):繪制矩陣Z的等高線,坐標值由矩陣X和Y指定,矩陣X、Y、Z的維數(shù)必須相同。

contour(X,Y,Z,“ShowText”,“on”):繪制矩陣Z的等高線,坐標值由矩陣X和Y指定三維圖形,通過ShowText后的參數(shù)為“on”或者“off”,設置圖像是否顯示標注。

三維圖形

除了繪制二維圖形,北太天元還提供一系列三維圖形繪制函數(shù),下文將對這些函數(shù)進行詳細說明。

繪制三維曲線圖

在北太天元中,plot3函數(shù)用于繪制三維曲線圖。該函數(shù)的用法和plot類似,其調用語法如下。

plot3(X,Y,Z): 繪制三維空間中的坐標。要繪制由線段連接的一組坐標,請將 X、Y、Z 指定為相同長度的向量。要在同一組坐標軸上繪制多組坐標,請將 X、Y 或 Z 中的至少一個指定為矩陣,其他指定為向量。

plot3(X,Y,Z,LineSpec): 使用指定的線型、標記和顏色創(chuàng)建繪圖。

plot3(X1,Y1,Z1,...,Xn,Yn,Zn): 在同一組坐標軸上繪制多組坐標。使用此語法作為將多組坐標指定為矩陣的替代方法。

plot3(X1,Y1,Z1,LineSpec1,...,Xn,Yn,Zn,LineSpecn): 可為每個 XYZ 三元組指定特定的線型、標記和顏色。您可以對某些三元組指定 LineSpec,而對其他三元組省略它。

plot3(...,Name,Value): 使用一個或多個名稱-值對組參數(shù)指定 Line 屬性。

繪制三維曲面圖

在北太天元中,除了plot3函數(shù)可用于繪制三維圖形外,還有一些函數(shù)可以用來繪制三維網格圖和曲面圖。下面分別介紹這些函數(shù)。

1.  三維網格圖

mesh函數(shù)用于繪制三維網格圖,其調用語法如下。

mesh(X,Y,Z): 創(chuàng)建一個網格圖,該網格圖為三維曲面,有實色邊顏色,無面顏色。該函數(shù)將矩陣 Z 中的值繪制為由 X 和 Y 定義的 x-y 平面中的網格上方的高度。邊顏色因 Z 指定的高度而異。

mesh(Z): 創(chuàng)建一個網格圖,并將 Z 中元素的列索引和行索引用作 x 坐標和 y坐標。

mesh(Z,C): 進一步指定邊的顏色。

mesh(___,C): 進一步指定邊的顏色。

mesh(ax,___): 將圖形繪制到 ax 指定的坐標區(qū)中,而不是當前坐標區(qū)中。指定坐標區(qū)作為第一個輸入參數(shù)。

mesh(___,Name,Value): 使用一個或多個名稱-值對組參數(shù)指定曲面屬性。例如,'FaceAlpha',0.5 創(chuàng)建半透明網格圖。

2.  三維曲面圖

函數(shù)surf用來繪制三維表面圖形,其調用語法如下。

surf(X,Y,Z) 創(chuàng)建一個三維曲面圖,它是一個具有實色邊和實色面的三維曲面。該函數(shù)將矩陣 Z 中的值繪制為由 X 和 Y 定義的 x-y 平面中的網格上方的高度。曲面的顏色根據(jù) Z 指定的高度而變化。

surf(Z) 創(chuàng)建一個曲面圖,并將 Z 中元素的列索引和行索引用作 x 坐標和 y 坐標。


0 2022-12-21
【春節(jié)篇】使用北太天元畫燈籠

佳節(jié)臨近,今天給大家分享一下如何使用北太天元繪制一個燈籠



燈籠2.png




燈籠中有很多大面積的顏色區(qū)域,是需要使用北太天元的 fill 函數(shù)來完成,fill 函數(shù)的幫助如下:

>> help fill
填充的二維多邊形
語法:    fill(X,Y)
示例:    
    % 函數(shù)創(chuàng)建紅色多邊形。    
    % X 是頂點的x坐標,Y是頂點的y坐標    
    % 例如 一個三角形的三個頂點的坐標是p1(0,0), p2(1,0), p3(0.5,0.5)    
    % 畫出紅色的三角形    
    x = [0, 1, 0.5];    
    y = [0, 0, 0.5];    
    fill(x,y,'r')


為了調用 fill 函數(shù),我們需要先創(chuàng)建橢圓數(shù)據(jù)點生成函數(shù),用來生成橢圓和圓形的邊界的 X 和 Y 坐標


% 橢圓數(shù)據(jù)點生成函數(shù)
function [X,Y]=getEllipse(Mu,XR,YR,theta,pntNum)
  % Mu      |  中心點
  % XR,YR   |  旋轉前X,Y半軸長度
  % theta   |  旋轉角度
  % pntNum |  生成數(shù)據(jù)點個數(shù)
  tList = linspace(0,2*pi,pntNum);
  X = cos(tList).*XR;
  Y = sin(tList).*YR;
  rotateMat = [cos(theta),-sin(theta);sin(theta),cos(theta)];
  XY = rotateMat*[X;Y]+Mu(:);
  X = XY(1,:);
  Y = XY(2,:);
end


下面我們就可以開始燈籠的繪制了

clf
hold on
n = 0.4;
x = 1;
a = 0.1;
w = 2.7;h = 2.5; %燈籠主體橢圓的寬和高

% 繪制燈籠主體
[X0,Y0]=getEllipse([0,0],2.9,h,0,200);
fill(X0,Y0,[184,20,25]./255,'EdgeColor',[153,12,40]./255,'LineWidth',1.2)

% 繪制輻線
[X,Y]=getEllipse([0,0],w,h,0,200);plot(X,Y,'Color',[236,136,74]./255,'LineWidth',1.2)
[X,Y]=getEllipse([0,0],w-n,h,0,200);plot(X,Y,'Color',[236,136,74]./255,'LineWidth',1.2)
[X,Y]=getEllipse([0,0],w-2*n,h,0,200);plot(X,Y,'Color',[236,136,74]./255,'LineWidth',1.2)
[X,Y]=getEllipse([0,0],w-3*n,h,0,200);plot(X,Y,'Color',[236,136,74]./255,'LineWidth',1.2)
[X,Y]=getEllipse([0,0],w-4*n+0.05,h,0,200);plot(X,Y,'Color',[236,136,74]./255,'LineWidth',1.2)
[X,Y]=getEllipse([0,0],w-5*n+0.1,h,0,200);plot(X,Y,'Color',[236,136,74]./255,'LineWidth',1.2)
[X,Y]=getEllipse([0,0],w-6*n+0.1,h,0,200);plot(X,Y,'Color',[236,136,74]./255,'LineWidth',1.2)
plot([0,0],[-h,h],'Color',[236,136,74]./255,'LineWidth',1.2)

% 計算其它部件需要的邊界坐標
X1 = X0(abs(X0)<=x);
X2 = X1(1:size(X1,2)/2);
X3 = X1(size(X1,2)/2+1:end);
Y1 = Y0(abs(X0)<=x);
Y2 = Y1(1:size(Y1,2)/2);
Y3 = Y1(size(Y1,2)/2+1:end);
XX1 = X0(abs(X0)<=a);
XX2 = XX1(1:size(XX1,2)/2);
XX3 = XX1(size(XX1,2)/2+1:end);	
YY1 = ones(1,size(XX2,2)).*(-w-0.2);
YY2 = ones(1,size(XX2,2)).*(-h-2.5);
YY3 = ones(1,size(XX2,2)).*(-h-2);


% 繪制其它部分
Y4 = ones(1,size(Y2,2)).*(w+0.2);
fill(X1,[Y2,Y4],[76,24,38]./255,'EdgeColor',[236,136,74]./255,'LineWidth',1.2)

Y5 = ones(1,size(Y2,2)).*-(w+0.2);
fill(X1,[Y3,Y5],[76,24,38]./255,'EdgeColor',[236,136,74]./255,'LineWidth',1.2)

fill(XX1,[YY1,YY3],[76,24,38]./255,'EdgeColor',[236,136,74]./255,'LineWidth',1.2)
fill(XX1.+0.7,[YY1,YY3],[76,24,38]./255,'EdgeColor',[236,136,74]./255,'LineWidth',1.2)
fill(XX1.-0.7,[YY1,YY3],[76,24,38]./255,'EdgeColor',[236,136,74]./255,'LineWidth',1.2)
fill(XX1.+0.35,[YY1,YY3],[76,24,38]./255,'EdgeColor',[236,136,74]./255,'LineWidth',1.2)
fill(XX1.-0.35,[YY1,YY3],[76,24,38]./255,'EdgeColor',[236,136,74]./255,'LineWidth',1.2)
fill(XX1,[-YY1,-YY2],[76,24,38]./255,'EdgeColor',[236,136,74]./255,'LineWidth',1.2)

[X6,Y6]=getEllipse([0,h+1],0.2,0.2,0,200);
fill(X6,Y6,[184,20,25]./255,'EdgeColor')

% 調整坐標軸
axis([-5 5 -5 5])
hold off
title("新春快樂!")


0 2023-01-11
三體系統(tǒng)在北太天元上的模擬

三體.png

(文章靈感來自盧朓老師的B站視頻)

最近電視劇《三體》的大熱,引起了大家對三體系統(tǒng)的注意力,今天就讓我們在北太天元上面模擬一下三體系統(tǒng)的運動軌跡

首先,什么是三體系統(tǒng)呢?

三體(three-body problem)
天體力學中的基本力學模型。研究三個可視為質點的天體在相互之間萬有引力作用下的運動規(guī)律問題。
這三個天體的質量、初始位置和初始速度都是任意的。
----------------------------摘自百度百科

簡單的說,就是我們需要模擬三個恒星組成的系統(tǒng)的三體運動。


詳細代碼如下,代碼摘自互聯(lián)網

%模擬三個恒星組成的系統(tǒng)的三體運動
clear
load_plugin("time"); 
%為了使用北太天元軟件的pause插件函數(shù)
close all
% 三個恒星的質量都是1
ms = 1 ;
mt = 1 ;
mj = 1 ;
% 無量綱后萬有引力常數(shù)設置為1
G = 1 ;
%初始條件 [xs,ys,xt,yt,xj,yj,vxs,vys,vxt,vyt,vjx,vjt]
CI = [0 -0.1 2 2 5 0 0 0 0 0 0 0];
%初始時刻to = 0;
%計算終止時刻t
f = 120; 
%由位置的導數(shù)速度,速度的導數(shù)是加速,牛頓第二定律
% 以及萬有引力定律得到常微分方程組
fxy = @(ps, pt, pj,ms,mt,mj) ...G*( mt.*(pt-ps)./norm(pt-ps).^3 ...+ mj.*(pj-ps)./norm(pj-ps).^3 );
F = @(t,Y) [Y(7);Y(8);Y(9);Y(10);Y(11);Y(12);...
      fxy(Y([1,2]),Y([3,4]),Y([5,6]),ms,mt,mj); ...
      fxy(Y([3,4]),Y([1,2]),Y([5,6]),mt,ms,mj); ...
      fxy(Y([5,6]),Y([3,4]),Y([1,2]),mj,mt,ms); ...];
%使用ode45求解常微分方程組的初值問題
[t,Y]=ode45(F,[to,tf],CI); 
%plot(Y(:,1),Y(:,2),'r',Y(:,3),Y(:,4),'g',Y(:,5),Y(:,6),'b')
yo = Y(1) ;
dto = 0.3 ;
plotmax = 100 ;
T=to ; 
xmin = min(min(Y(:,[1,3,5]))); 
%三個質點的x坐標(在所有時刻)的最小值
xmax = max(max(Y(:,[1,3,5])));
ymin = min(min(Y(:,[2,4,6]))); 
%三個質點的y坐標(在所有時刻)的最小值
ymax = max(max(Y(:,[2,4,6]))); 
clf
close all
figure('Position',[0 0 1550 800])
hold off
told = 0;
for i = 1:length(Y(:,1))
    dt = abs(Y(i,1)-yo)/abs(Y(i,7));
    if dt >= dto
        if i>plotmax
            shift = plotmax;
        else
            shift = i-1;
        end
        plot(...
            [xmin,xmax],[ymin,ymax], 'w', ... %畫一個白色的斜線代替axis([xmin,xmax,ymin,ymax])設置畫圖范圍
            Y(i-shift:i,1),Y(i-shift:i,2),'r','LineWidth',2, ... %畫第一個恒星在i-shift個時刻和第i個時刻件的軌跡
            Y(i,1),Y(i,2),'-or','LineWidth',4, ... %畫第一個恒星在第i個時刻所在的位置
            Y(i-shift:i,3),Y(i-shift:i,4),'g','LineWidth',2, ...
            Y(i,3),Y(i,4),'-og','LineWidth',4, ...
            Y(i-shift:i,5),Y(i-shift:i,6),'b','LineWidth',2, ...
            Y(i,5),Y(i,6),'-ob','LineWidth',4)
        title(sprintf('時間=%f',t(i)))
        T=[T;t(i)];
        yo = Y(i,1) ;
        vo = Y(i,7) ;
        end
 pause(0.01)
 end
 X=[0:1:length(T)-1];
 figure(2)
 plot(X,T)
 plot(Y(:,1),Y(:,2),'r', 'LineWidth',2, ...
 Y(:,3),Y(:,4),'g','LineWidth',2, ...
 Y(:,5),Y(:,6),'b', 'LineWidth',2)
 unload_plugin("time")


1 2023-02-10
Windows下使用MSYS2開發(fā)和SDK教程

首先是一些相關資源的分享:

1. Windows下MSYS2 開發(fā)環(huán)境的地址:打包好的MSYS2的百度云地址

2. SDK相關開發(fā)教程和視頻: 開發(fā)示例文檔 , 開發(fā)教程視頻


下面是如何在MSYS2 下編譯SDK:

  1. 項目的目錄結構可以參考下面:

將下載的sdk文件放到 include 目錄下

將需要開發(fā)的 cpp 文件放在 src 下面。

myproject:
    - include
        - bin
        - include
        - lib
    - src
        - main.cpp
        - *.cpp
    - CMakeLists.txt



2. SDK項目一般使用CMAKE 來進行編譯的, 下面就是一個CMAKE需要的 CMakeLists.txt 的示例模板

cmake_minimum_required(VERSION 3.10)
project(main VERSION 1.0.0)
# 將所有 .cpp 文件列出來
file(GLOB PLUGIN_SOURCE src/*.cpp)

# add_library 表示增加一個庫文件目標
# 由于是使用 dlopen() 載入,需要是 MODULE 類型
add_library(${PROJECT_NAME} MODULE ${PLUGIN_SOURCE})
# 插件的文件名總是 main
set_target_properties(${PROJECT_NAME} PROPERTIES OUTPUT_NAME "main")
# module 類型的庫不需要 lib 前綴
set_target_properties(${PROJECT_NAME} PROPERTIES PREFIX "")

# 鏈接 bex
add_library(bex SHARED IMPORTED)
set_target_properties(bex PROPERTIES INTERFACE_INCLUDE_DIRECTORIES ${PROJECT_SOURCE_DIR}/include/include)
set_target_properties(bex PROPERTIES IMPORTED_LOCATION ${PROJECT_SOURCE_DIR}/include/bin/libbex.dll)
set_target_properties(bex PROPERTIES IMPORTED_IMPLIB ${PROJECT_SOURCE_DIR}/include/lib/libbex.dll.a)

target_link_libraries(${PROJECT_NAME} bex)


3. 如何使用 msys2 構建

打開 msys2 版的 mingw64 窗口(解壓后 msys64-tmp 目錄下的 mingw64.exe),進入到 SDK的開發(fā)目錄層后新建一個 build 目錄用于存儲編譯的文件

cd <my_project> 
mkdir build && cd build


進行 configure

cmake .. -G "MinGW Makefiles"


進行編譯


為了方便可以設置一下 bash alias,將mingw32-make命名為make

nano ~/.bashrc

在最后一行添加:

alias make='mingw32-make'

重新加載bash信息

. ~/.bashrc

進行編譯:

make -jN # N 表示開啟的線程數(shù)

編譯結束后會看到 main.dll 


在北太天元的安裝目錄下的 plugins 文件夾下 新建一個文件夾,名字為 你開發(fā)插件的名字,例如 myplugin


然后在北太天元的 

幫助 -> 插件

加載



---------------------------------------------------------------

示例中用到的所有文件附件:

附件

0 2023-03-21
FAME2.0使用教程

三維光子晶體能帶結構計算的快速算法(FAME,F(xiàn)ast Algorithms for Maxwell's Equations)

作者:南京應用數(shù)學中心林文偉教授團隊及東南大學李鐵香教授團隊

用途:光通訊、光子集成器件設計及國防科技等領域的研究


4.0版本的北太天元更新了FAME到FAME2.0,包括Windows版本和Ubuntu22.04版本。

FAME2.0 需要 CUDA環(huán)境才能正常加載和使用,推薦 NVIDIA? GeForce? GTX 1050、Tesla? K40、Quadro? P1000 及以上顯卡,并推薦安裝 CUDA 10 及以上版本。


FAME2.0配套的CUDA環(huán)境可以在網盤上下載,下載對應的系統(tǒng)的庫文件后放到 軟件安裝目錄/plugins/FAME目錄下



通過網盤分享的文件:FAME2.0依賴庫

鏈接: https://pan.baidu.com/s/1MQVk8xjzHclt19gpFxmI9Q?pwd=j26v 提取碼: j26v



0 2024-11-19