how to solve error using integral

2 ビュー (過去 30 日間)
Rabih Sokhen
Rabih Sokhen 2021 年 10 月 14 日
編集済み: Star Strider 2021 年 10 月 14 日
clear all
clc
qu=linspace(-2*pi,2*pi,126);
x=linspace(-2,2,126);
y=2*x;
psi=(-x./sqrt(qu/2)+sqrt(y)/sqrt(exp(-2*asinh(sin(qu/2)))+1));
ket=diff(psi);
bras=psi';
bras=bras(1:end-1);
for i=1:length(qu)-1
f(i)=bras(i)*ket(i);
end
phase=1i*integral(f,qu,-pi,pi)
% i am getting the following error:
Error using integral (line 82)
First input argument must be a function handle.
Error in test (line 15)
phase=1i*integral(f,qu,-pi,pi)
how can i solve this error?
thank you in advance

回答 (2 件)

Star Strider
Star Strider 2021 年 10 月 14 日
編集済み: Star Strider 2021 年 10 月 14 日
Not certain what the desired result is, however everything here are arrays or vectors, so use trapz instead, since there are no functions defined —
qu=linspace(-pi,pi,126);
x=linspace(-2,2,126);
y=2*x;
psi=(-x./sqrt(qu/2)+sqrt(y)/sqrt(exp(-2*asinh(sin(qu/2)))+1));
ket=gradient(psi,(x(2)-x(1))); % Use 'gradient' To Calculate The Numerical Derivative
bras=psi';
% bras=bras(1:end-1);
% for i=1:length(qu)-1
% f(i)=bras(i)*ket(i);
% end
f = bras .* ket;
% phase=1i*integral(f,qu,-pi,pi)
phase_columns = 1i*trapz(qu,f)
phase_columns =
0.7046 - 0.0743i 0.7075 - 0.0746i 0.7133 - 0.0752i 0.7193 - 0.0758i 0.7254 - 0.0765i 0.7317 - 0.0771i 0.7382 - 0.0778i 0.7448 - 0.0785i 0.7516 - 0.0792i 0.7586 - 0.0800i 0.7658 - 0.0807i 0.7732 - 0.0815i 0.7808 - 0.0823i 0.7886 - 0.0831i 0.7967 - 0.0840i 0.8051 - 0.0849i 0.8137 - 0.0858i 0.8226 - 0.0867i 0.8318 - 0.0877i 0.8413 - 0.0887i 0.8511 - 0.0897i 0.8613 - 0.0908i 0.8719 - 0.0919i 0.8829 - 0.0931i 0.8943 - 0.0943i 0.9061 - 0.0955i 0.9184 - 0.0968i 0.9313 - 0.0982i 0.9447 - 0.0996i 0.9587 - 0.1011i 0.9733 - 0.1026i 0.9887 - 0.1042i 1.0048 - 0.1059i 1.0217 - 0.1077i 1.0394 - 0.1096i 1.0582 - 0.1116i 1.0780 - 0.1136i 1.0989 - 0.1159i 1.1212 - 0.1182i 1.1448 - 0.1207i 1.1700 - 0.1233i 1.1969 - 0.1262i 1.2258 - 0.1292i 1.2568 - 0.1325i 1.2904 - 0.1360i 1.3268 - 0.1399i 1.3665 - 0.1441i 1.4100 - 0.1487i 1.4579 - 0.1537i 1.5111 - 0.1593i 1.5705 - 0.1656i 1.6376 - 0.1727i 1.7142 - 0.1807i 1.8026 - 0.1900i 1.9064 - 0.2010i 2.0305 - 0.2141i 2.1827 - 0.2301i 2.3757 - 0.2505i 2.6320 - 0.2775i 2.9971 - 0.3160i 3.5846 - 0.3779i 4.8494 - 0.5113i 7.2088 + 3.2068i 4.6396 + 6.3816i 0.5113 + 4.8494i 0.3779 + 3.5846i 0.3160 + 2.9971i 0.2775 + 2.6320i 0.2505 + 2.3757i 0.2301 + 2.1827i 0.2141 + 2.0305i 0.2010 + 1.9064i 0.1900 + 1.8026i 0.1807 + 1.7142i 0.1727 + 1.6376i 0.1656 + 1.5705i 0.1593 + 1.5111i 0.1537 + 1.4579i 0.1487 + 1.4100i 0.1441 + 1.3665i 0.1399 + 1.3268i 0.1360 + 1.2904i 0.1325 + 1.2568i 0.1292 + 1.2258i 0.1262 + 1.1969i 0.1233 + 1.1700i 0.1207 + 1.1448i 0.1182 + 1.1212i 0.1159 + 1.0989i 0.1136 + 1.0780i 0.1116 + 1.0582i 0.1096 + 1.0394i 0.1077 + 1.0217i 0.1059 + 1.0048i 0.1042 + 0.9887i 0.1026 + 0.9733i 0.1011 + 0.9587i 0.0996 + 0.9447i 0.0982 + 0.9313i 0.0968 + 0.9184i 0.0955 + 0.9061i 0.0943 + 0.8943i 0.0931 + 0.8829i 0.0919 + 0.8719i 0.0908 + 0.8613i 0.0897 + 0.8511i 0.0887 + 0.8413i 0.0877 + 0.8318i 0.0867 + 0.8226i 0.0858 + 0.8137i 0.0849 + 0.8051i 0.0840 + 0.7967i 0.0831 + 0.7886i 0.0823 + 0.7808i 0.0815 + 0.7732i 0.0807 + 0.7658i 0.0800 + 0.7586i 0.0792 + 0.7516i 0.0785 + 0.7448i 0.0778 + 0.7382i 0.0771 + 0.7317i 0.0765 + 0.7254i 0.0758 + 0.7193i 0.0752 + 0.7133i 0.0746 + 0.7075i 0.0743 + 0.7046i
phase_rows = 1i*trapz(qu,f,2)
phase_rows =
2.1086 - 3.3722i 2.0765 - 3.3401i 2.0441 - 3.3077i 2.0114 - 3.2750i 1.9785 - 3.2421i 1.9453 - 3.2088i 1.9117 - 3.1753i 1.8779 - 3.1415i 1.8438 - 3.1074i 1.8094 - 3.0730i 1.7747 - 3.0382i 1.7396 - 3.0032i 1.7041 - 2.9677i 1.6684 - 2.9320i 1.6322 - 2.8958i 1.5957 - 2.8593i 1.5588 - 2.8224i 1.5215 - 2.7851i 1.4838 - 2.7474i 1.4457 - 2.7092i 1.4071 - 2.6707i 1.3680 - 2.6316i 1.3285 - 2.5921i 1.2885 - 2.5521i 1.2480 - 2.5116i 1.2070 - 2.4706i 1.1654 - 2.4290i 1.1232 - 2.3868i 1.0805 - 2.3441i 1.0371 - 2.3007i 0.9930 - 2.2566i 0.9483 - 2.2119i 0.9029 - 2.1665i 0.8567 - 2.1203i 0.8097 - 2.0733i 0.7619 - 2.0255i 0.7132 - 1.9768i 0.6636 - 1.9272i 0.6130 - 1.8766i 0.5613 - 1.8249i 0.5086 - 1.7722i 0.4547 - 1.7182i 0.3994 - 1.6630i 0.3429 - 1.6065i 0.2848 - 1.5484i 0.2252 - 1.4888i 0.1638 - 1.4274i 0.1006 - 1.3642i 0.0352 - 1.2988i -0.0324 - 1.2312i -0.1026 - 1.1610i -0.1756 - 1.0880i -0.2519 - 1.0117i -0.3319 - 0.9317i -0.4163 - 0.8473i -0.5058 - 0.7578i -0.6014 - 0.6621i -0.7048 - 0.5588i -0.8181 - 0.4455i -0.9448 - 0.3188i -1.0914 - 0.1722i -1.2717 + 0.0081i -1.5336 + 0.2700i -1.5336 + 0.9856i -1.2717 + 1.2475i -1.0914 + 1.4278i -0.9448 + 1.5744i -0.8181 + 1.7011i -0.7048 + 1.8144i -0.6014 + 1.9178i -0.5058 + 2.0135i -0.4163 + 2.1029i -0.3319 + 2.1873i -0.2519 + 2.2673i -0.1756 + 2.3436i -0.1026 + 2.4167i -0.0324 + 2.4868i 0.0352 + 2.5545i 0.1006 + 2.6198i 0.1638 + 2.6831i 0.2252 + 2.7444i 0.2848 + 2.8041i 0.3429 + 2.8621i 0.3994 + 2.9187i 0.4547 + 2.9739i 0.5086 + 3.0278i 0.5613 + 3.0806i 0.6130 + 3.1322i 0.6636 + 3.1828i 0.7132 + 3.2324i 0.7619 + 3.2811i 0.8097 + 3.3289i 0.8567 + 3.3759i 0.9029 + 3.4221i 0.9483 + 3.4675i 0.9930 + 3.5123i 1.0371 + 3.5563i 1.0805 + 3.5997i 1.1232 + 3.6424i 1.1654 + 3.6846i 1.2070 + 3.7262i 1.2480 + 3.7672i 1.2885 + 3.8078i 1.3285 + 3.8478i 1.3680 + 3.8873i 1.4071 + 3.9263i 1.4457 + 3.9649i 1.4838 + 4.0030i 1.5215 + 4.0407i 1.5588 + 4.0780i 1.5957 + 4.1149i 1.6322 + 4.1515i 1.6684 + 4.1876i 1.7041 + 4.2234i 1.7396 + 4.2588i 1.7747 + 4.2939i 1.8094 + 4.3286i 1.8438 + 4.3631i 1.8779 + 4.3972i 1.9117 + 4.4310i 1.9453 + 4.4645i 1.9785 + 4.4977i 2.0114 + 4.5306i 2.0441 + 4.5633i 2.0765 + 4.5957i 2.1086 + 4.6278i
Experiment to get the desired result.
EDIT — (14 Oct 2021 at 12:42)
Originally forgot to multiply the trapz results by 1i, now included.
.

Mathieu NOE
Mathieu NOE 2021 年 10 月 14 日
hello
integral works on function (handles) not arrays
f is an array , not a function handle so use trapz to do numerical integration
clear all
clc
qu=linspace(-2*pi,2*pi,126);
x=linspace(-2,2,126);
y=2*x;
psi=(-x./sqrt(qu/2)+sqrt(y)./sqrt(exp(-2*asinh(sin(qu/2)))+1));
ket=diff(psi);
bras=psi;
bras=bras(1:end-1);
f = bras.*ket(1:length(qu)-1);
phase=1i*trapz(qu(1:length(qu)-1),f)

カテゴリ

Help Center および File ExchangeNumerical Integration and Differentiation についてさらに検索

タグ

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by