這段代碼可以給出常用的4類正交多項式的具體表達式,后續將給出課自定義的任意正交多項式代碼
%%正交多項式%%此函數包括勒讓德正交多項式,切比雪夫正交多項式(兩類),拉蓋爾正交多項式,埃爾米特正交多項式,輸入項數應從1開始%%n是多項式的項數,n>=0,type是類型,分為Legendre、Chebyshev、Laguerre、Hermite,對應其正交多項式function OP = Orthogonal_polynomial(type)sym type;if strcmp(type,'Legendre') == 1 disp('目前輸出為勒讓德多項式'); disp('定義區間為:');[-1 1] N = input('請輸入勒讓德多項式的項數:'); L = Legendre(N); OP = simplify(L(N));elseif strcmp(type,'Chebyshev') == 1 disp('目前輸出為切比雪夫多項式'); disp('定義區間為:');[-1 1] disp('在這里,規定第一類切比雪夫多項式是以1/sqrt(1-x^2)作為權函數,第二類切比雪夫多項式以sqrt(1-x^2)作為權函數得到的'); class = input('請輸入需要輸出第幾類切比雪夫多項式(輸入1,2)即可:'); N = input('請輸入切比雪夫多項式的項數:'); Che = Chebyshve(N,class); OP = simplify(Che(N));elseif strcmp(type,'Laguerre') == 1 disp('目前輸出為拉蓋爾多項式'); disp('定義區間為:');[0 +inf] N = input('請輸入拉蓋爾多項式的項數:'); La = Laguerre(N); OP = simplify(La(N));elseif strcmp(type,'Hermite') == 1 disp('目前輸出為埃爾米特多項式'); disp('定義區間為:');[-inf +inf] N = input('請輸入埃爾米特多項式的項數:'); H = Hermite(N); OP = simplify(H(N));end%%勒讓德多項式 function L = Legendre(N) x = sym('x'); for i = 1:N Leg(i) = diff((x^2-1)^(i-1),i-1)/(factorial(i-1)*2^(i-1)); end L = Leg; end%%切比雪夫多項式 function C = Chebyshve(n,class) x = sym('x'); if class == 1 T = string([1 x]); T = sym(T); if n <=2 C = T(1:n); else for i = 2:n T(i+1) = 2*x*T(i)-T(i-1); end C = T(1:n); end elseif class ==2 U = string([1]); U = sym(U); U = [U 2*x]; if n <=2 C = U(1:n); else for i = 2:n U(i+1) = 2*x*U(i)-U(i-1); end C = U(1:n); end end end%%埃爾米特多項式 function H = Hermite(N) x = sym('x'); for i = 1:N He(i) = (-1)^N*exp(x^2)*diff(exp(-x^2),(i-1)); end H = simplify(He); end%%拉蓋爾多項式 function La = Laguerre(N) x = sym('x'); for i = 1:N Lag(i) = exp(x)*diff(x^(i-1)*exp(-x),(i-1)); end La = simplify(Lag); end%%階乘函數 function F = factorial(n) if n == 0 F = 1; else F = factorial(n-1)*n; end endend
%%正交多項式%%此函數包括勒讓德正交多項式,切比雪夫正交多項式(兩類),拉蓋爾正交多項式,埃爾米特正交多項式,輸入項數應從1開始%%n是多項式的項數,n>=0,type是類型,分為Legendre、Chebyshev、Laguerre、Hermite,對應其正交多項式function OP = Orthogonal_polynomial(type)sym type;if strcmp(type,'Legendre') == 1 disp('目前輸出為勒讓德多項式'); disp('定義區間為:');[-1 1] N = input('請輸入勒讓德多項式的項數:'); L = Legendre(N); OP = simplify(L(N));elseif strcmp(type,'Chebyshev') == 1 disp('目前輸出為切比雪夫多項式'); disp('定義區間為:');[-1 1] disp('在這里,規定第一類切比雪夫多項式是以1/sqrt(1-x^2)作為權函數,第二類切比雪夫多項式以sqrt(1-x^2)作為權函數得到的'); class = input('請輸入需要輸出第幾類切比雪夫多項式(輸入1,2)即可:'); N = input('請輸入切比雪夫多項式的項數:'); Che = Chebyshve(N,class); OP = simplify(Che(N));elseif strcmp(type,'Laguerre') == 1 disp('目前輸出為拉蓋爾多項式'); disp('定義區間為:');[0 +inf] N = input('請輸入拉蓋爾多項式的項數:'); La = Laguerre(N); OP = simplify(La(N));elseif strcmp(type,'Hermite') == 1 disp('目前輸出為埃爾米特多項式'); disp('定義區間為:');[-inf +inf] N = input('請輸入埃爾米特多項式的項數:'); H = Hermite(N); OP = simplify(H(N));end%%勒讓德多項式 function L = Legendre(N) x = sym('x'); for i = 1:N Leg(i) = diff((x^2-1)^(i-1),i-1)/(factorial(i-1)*2^(i-1)); end L = Leg; end%%切比雪夫多項式 function C = Chebyshve(n,class) x = sym('x'); if class == 1 T = string([1 x]); T = sym(T); if n <=2 C = T(1:n); else for i = 2:n T(i+1) = 2*x*T(i)-T(i-1); end C = T(1:n); end elseif class ==2 U = string([1]); U = sym(U); U = [U 2*x]; if n <=2 C = U(1:n); else for i = 2:n U(i+1) = 2*x*U(i)-U(i-1); end C = U(1:n); end end end%%埃爾米特多項式 function H = Hermite(N) x = sym('x'); for i = 1:N He(i) = (-1)^N*exp(x^2)*diff(exp(-x^2),(i-1)); end H = simplify(He); end%%拉蓋爾多項式 function La = Laguerre(N) x = sym('x'); for i = 1:N Lag(i) = exp(x)*diff(x^(i-1)*exp(-x),(i-1)); end La = simplify(Lag); end%%階乘函數 function F = factorial(n) if n == 0 F = 1; else F = factorial(n-1)*n; end endend
本文由 貴州做網站公司 整理發布,部分圖文來源于互聯網,如有侵權,請聯系我們刪除,謝謝!
網絡推廣與網站優化公司(網絡優化與推廣專家)作為數字營銷領域的核心服務提供方,其價值在于通過技術手段與策略規劃幫助企業提升線上曝光度、用戶轉化率及品牌影響力。這...
在當今數字化時代,公司網站已成為企業展示形象、傳遞信息和開展業務的重要平臺。然而,對于許多公司來說,網站建設的價格是一個關鍵考量因素。本文將圍繞“公司網站建設價...
在當今的數字化時代,企業網站已成為企業展示形象、吸引客戶和開展業務的重要平臺。然而,對于許多中小企業來說,高昂的網站建設費用可能會成為其發展的瓶頸。幸運的是,隨...
四川樂山到成都有多少公里?從樂山到成都開車總里程140.9公里,行車時間1小時37分,油費約89元,通過高速公路收費站總通行費約50元。還是比較快的。不開車的話,也可以選擇動車,挺好的,舒服又快。全程只需要一個小時,比開車還方便。成都到樂山開車要開多久?過路費多少?從成都開車到樂山有142.2公里。7座及以下乘用車收費55元,耗時2小時5分鐘,預計油費70元。樂山離四川市遠嗎?四川是一個省,樂山是...
命運絲線任務哪里接?,這個任務完全發生在奧林匹斯。如果你找到命運作家,你就能得到它。NPC位置的坐標是(20.4,50.2)。魔獸世界命運絲線?wow命運的絲線在哪里...達拉然商業區...達拉然商業區...問NPC要達拉然的布店~ ~ ~如果做劍柄任務,NPC在二樓陽臺。...魔獸世界9.0命運絲線怎么觸發?,首先我們開始游戲。2.然后我們進入登錄界面。3.然后我們 我們會找到塔爾的。4.和他談...
wps瀏覽記錄怎么恢復?第一步:先在wps中打開一個表單或文檔,然后點擊左上角的文件。第2步:選擇備份和恢復-備份中心步驟3:打開本地備份。第四步:可以查看歷史記錄。將鼠標移動到歷史文件上,會出現一個文件圖標。單擊它打開歷史文件并保存。wps運行完都還能找到記錄?wps運行后,記錄將保存在文件中。wps如何打開之前復制內容?wps左上角有復制按鈕和粘貼按鈕,也可以點擊鼠標右鍵找到復制粘貼。wps怎...